IE でのブラウザーのキャッシュ動作を理解しようとしています。css を含むテスト ページがあり、次の操作を行います。
編集:明確ではありませんでした.test.cssファイルへのリンクを含むtest.htmlファイルがあります。test.html ファイルは毎回再送信され、test.css ファイルのみがキャッシュされます。
IE9:
- ページに移動して現在のファイルを取得する
- css ファイルは 19:58 の Last-Modified ヘッダーで返されます
- cssファイルを変更
- URL バーをクリックして Enter キーを押します
- css ファイルの 304 not modified を取得する
次のヘッダーがリクエストで送信されます。
Request GET /test.css HTTP/1.1
Accept text/css
Referer http://10.0.0.60/test.html
Accept-Language en-US
User-Agent Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Accept-Encoding gzip, deflate
Host 10.0.0.60
応答の Last-Modified ヘッダーは 19:58 です (ファイルが変更される前と同じ)
同じページまたは同じ css ファイルを使用する別のページへのリンクをクリックすると、同じことが行われます。
Ctrl+R は、If-Modified-Since ヘッダーを送信し、更新されたファイルを取得します。
だから私の質問は、ブラウザーがキャッシュされたバージョンを使用する必要があることを決定しているのは何ですか? If-Modified-Since ヘッダーがない場合、サーバーが 304 を返すのはなぜですか?
サーバーは IIS 7 です