ブラウザキャッシュの無効/有効

ブラウザキャッシュは意識して設定しないと簡単に無効になったり有効になったりしてしまいます。
必ず無効にしたい or 必ず有効にしたいというポリシーがあるなら、きちんとした設定が必要です。

・ブラウザキャッシュを無効する方法
http://blog.knockoutmarch.com/2008/02/06/2323.html
より引用
[html]






[/html]

・ブラウザキャッシュを有効にする方法

そもそも、あるリンクをクリックした後のブラウザキャッシュ挙動には2パターンあることに注意
1. キャッシュしてあるコンテンツが新しくなっていないかwebサーバに問い合わせる。新しくなってなければキャッシュを使う。 (Last-Modified & If-Modified-Since & 304 status)

2. webサーバに問い合わせず、キャッシュをそのまま使う (Expires or Cache-Control: max-age)

しかも、ブラウザによってhttpレスポンス/リクエストヘッダのLast-Modified, Expiresなどの解釈や優先順位が違うことに注意。
http://labs.cybozu.co.jp/blog/kazuho/archives/2006/02/utilizing_cache.php
http://fdays.blogspot.com/2007/11/ie6cache-controlcache.html

以上を踏まえると、PHPコンテンツに対して、ブラウザキャッシュを上記2番の方法で一定時間有効にしたいときは下記のようにしとけば良さそう ( $interval 秒だけキャッシュを有効にしたいとする)
[PHP]
header( “Expires: ” . gmdate( “D, d M Y H:i:s”, time() + $interval ) . ” GMT” );
header( “Cache-Control: max-age=” . $interval);
header( “Pragma: cache”); // no-cache以外にすればOK
[/PHP]

キャッシュを無効にしたい場合も、有効にしたい場合も、同じようなhttpリクエスト項目を複数指定する必要があるのがだるい・・・