UGA Boxxx

つぶやきの延長のつもりで、知ったこと思ったこと書いてます

【HTTP】Etag 304

Etag 304 というワードを使っている人がいてEtagは知っていた気になっていたが、304?となったので調査

ETag(エンティティタグ)は、HTTPにおけるレスポンスヘッダの1つで、RFC2068のHTTP/1.1で追加された

シーケンシャルな更新日時と違って、ファイルに関連するハッシュ値を使って比較する

2度目以降のダウンロード時に、クライアントはIf-None-Matchヘッダーにダウンロード済みのキャッシュについてたETagの値をつけてリクエストし、サーバーはファイルのETagと比較し、最後のリクエストからページに変更がないと判断すると、空のボディと共に304 (Not Modified)返す

これが304の由縁だった

ETagの罠

転送量とサーバーへの負荷を低減する手法の一つだが、ETAGをつけておけばキャッシュコントロールは全てOKといえないと以下の記事にあった

blog.redbox.ne.jp

ETagの効果はサーバーが1つの場合で、複数のサーバーがあるとETagが異なるためキャッシュ対策にならないとのこと

他参考

https://tools.ietf.org/html/rfc2068