キャッシュ制御ヘッダー「no-cache、must-revalidate、private」を使用すると、ブラウザーはリソースをキャッシュできますが、条件付きリクエストで再検証を強制します。これは、FF、Safari、およびChromeで期待どおりに機能します。
ただし、IE7 + 8は条件付きリクエストを送信しません。つまり、リクエストヘッダーに「If-Modified-Since」がないため、サーバーはHTTP/304ではなくHTTP/200で応答します。
サーバーの完全な応答ヘッダーは次のとおりです。
Last-Modified: Wed, 16 Feb 2011 13:52:26 GMT
Content-type: text/html;charset=utf-8
Content-Length: 10835
Date: Wed, 16 Feb 2011 13:52:26 GMT
Connection: keep-alive
Cache-Control: no-cache, must-revalidate, private
これはIEのバグのようですが、Webで関連するものは何も見つかりませんでした。別のヘッダーがないか存在するために、IEが奇妙に動作するのではないかと思います。
no-cacheとmax-ageの違いについての良い議論:Cache-Control:max-age = 0とno-cacheの違いは何ですか?