前回からの続きです。
httpd.confに
-
FileETag None
を付与するとレスポンス内容は以下の通り、Etagが返却されなくなる。
-
HTTP/1.x 200 OK
-
Date: Tue, 08 May 2007 06:39:22 GMT
-
Server: Apache/2.2.4 (Unix)
-
Last-Modified: Sat, 20 Nov 2004 20:16:24 GMT
-
Accept-Ranges: bytes
-
Content-Length: 44
-
Connection: close
-
Content-Type: text/html
Etagが返却されないので、次回以降のリクエストには「If-None-Match:」も
当然付与されなくなる。
FileETagの記載方法は以下のようなパターンが考えられます。
- /usr/local/apache2/htdocs/images配下のコンテンツにはETagを付けない
- 画像ファイルの拡張子を持つコンテンツにはETagを付けない
- すべてのコンテンツにETagを付けない
結局どのように設定すべきなのかということですが
動的ページについてはそもそもファイルではないのでいずれにせよEtagは返却されません。
なので関係ありません。
静的コンテンツについては負荷分散サーバーの振り分け論理によって替わってきます。
1)ラウンドロビン等、毎回異なるWWWサーバーへアクセスする可能性がある場合
FileETag None
か
FileETag MTime Size
とすべきです。
2)ソースIPアドレス等で一貫性のある振り分け論理の場合
基本的に同一ユーザは同一WWWサーバーに振り分けられるので、初期設定のままでかまわないはずです。
あと、もう少しだけmod_cacheを深追いしてみる という記事に、Firefox 1.5/2.0、IE7が以下のケースでどんなリクエストを送信するのか整理されていました。
- 通常のページロード
- リロードボタン
- 強制リロード(Firefoxの強制リロードはCtrl+Reload、IE7の強制リロードはShift+Reload)
このページ の記事全体がとてもためになります。




