home ホーム search 検索 -  login ログイン  | reload edit datainfo version cmd icon diff delete  | help ヘルプ

日記/2007/05/04/Etag, If-Modified-Sinceヘッダーメモ(1)

日記/2007/05/04/Etag, If-Modified-Sinceヘッダーメモ(1)

日記 / 2007 / 05 / 04 / Etag, If-Modified-Sinceヘッダーメモ(1)
id: 268 所有者: msakamoto-sf    作成日: 2007-05-04 13:53:12
カテゴリ: Web ネットワーク 

If-Modified-Since/Last-Modifiedのペアの取り扱いは割かし楽だった。Studying HTTPの解説と、若干のPHP関数のマニュアル見るだけでどうにかできた。(filemtime関数は盲点だった・・・。fstatしてたよ、畜生。)

で、まあ基本はこれで行けそうなんだけど、ずっと前にキャッシュ周りで調べてたときにちらっと気になった "Etag" というヘッダフィールドについて調べてみた。

実はこれ、Studying HTTP には載っていない。では非標準ヘッダーか?と調べてみたら、
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html
にあるように、RFC2616で規定されている。

で、ざっとぐぐってみたところ。まずは@ITにヒット。

まあ上記は、画像やstatic-HTML, CSS, JavaScriptなどがメインの話になってくるのでしょう。Apacheだと"FileEtag"というので、どの情報を基にEtagを生成するのかを指定できるみたい。Apache本家のマニュアルはこちら。
http://httpd.apache.org/docs/2.2/ja/mod/core.html

@ITの記事では、逆にFileEtagを画像などでも無効化する対策が載ってるけど、
http://dsas.blog.klab.org/archives/50602499.html
では単にMtimeとSizeだけを元に生成するよう調整している。確かに、静的ファイルは自らLast-Modified吐いたりするわけじゃないので、FileEtagがあるに越したことはない。
CVSとか使ったり、最悪、mtimeならtouchコマンドで偽造できる。Sizeはコピーしたなら一緒だろう。なので、FileMatchで静的ファイルにのみ自動でEtagを付けるようにするのは、割かし効果的な気がする。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2009-03-29 23:07:12
md5:5052f6193653a653a83988c662919a86
sha1:da068192ebdc67614e691bae6ade4f9321b05811
コメント
コメントを投稿するにはログインして下さい。