サイズが3kbくらいの小さな画像がたくさんあり、CSSとjsファイルがたくさんあります。最初のリクエストがブラウザにキャッシュされた後、ページをリロードすると、ブラウザは(If-Modified-Sinceなどを設定して)キャッシュされたコンテンツの新鮮さをチェックしようとしており、レスポンス304は変更されません。この検証要求のそれぞれは、ページの読み込み時間を大幅に増加させます(たとえば、20回の300ms)。ブラウザでアセットを新鮮にして、キャッシュの新鮮度チェックリクエストをキャンセルします。
ブラウザからこのサーバーのキャッシュの最新性チェックをキャンセルするにはどうすればよいですか?再検証や、その期間のリロードごとにローカルキャッシュの最新性をリモートサーバーでチェックせずに、特定の時間(たとえば1時間)ローカルキャッシュファイル/イメージを使用するようブラウザに指示するにはどうすればよいですか?
レスポンスヘッダ
HTTP/1.1 304 Not Modified
Server: nginx/0.7.67
Date: Thu, 10 Nov 2011 17:53:33 GMT
Connection: keep-alive
Via: 1.1 varnish
X-Varnish: 1968827848
Last-Modified: Tue, 08 Nov 2011 07:36:04 GMT
Cache-Control: public, max-age=31536000
Etag: "5bda917d22f8a144c293f3f19723dbc6"
リクエストヘッダ
GET /assets/icons/flash_close_button-5bda917d22f8a144c293f3f19723dbc6.png HTTP/1.1
Host: ???.heroku.com
User-Agent: Mozilla/5.0 (X11; Linux i686; rv:6.0.1) Gecko/20100101 Firefox/6.0.1
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Connection: keep-alive
Referer: http://???.heroku.com/
Cookie: ???
If-Modified-Since: Tue, 08 Nov 2011 07:36:04 GMT
If-None-Match: "5bda917d22f8a144c293f3f19723dbc6"
Cache-Control: max-age=0