カスタムWebサーバーを使用してWebベースのアプリケーションを作成していますが、Webkitブラウザーが画像、スタイルシート、およびJavaScriptをキャッシュしないという問題があります。
Cache-Control:max-ageとLast-Modifiedの間の関係まで追跡しました。両方が指定されている場合、webkitはmax-ageヘッダーを無視し、リソースが使用されるたびにファイルが変更されているかどうかを確認しているようです。サイトの最初のページにiframeがあり、1秒以内にスタイルシートなどが2回要求されます。
Last-Modifiedを削除すると、ファイルは翌日まで再リクエストされません。ただし、翌日のリクエストはif-modified-sinceリクエストではなくなり、サーバーは304ヘッダーだけでなくすべてを再送信する必要があります。
IE9、Firefox 10.0、およびOpera 11.61では、ブラウザーは正しくキャッシュし、画像を再要求せず、Cache-Control:no-cacheヘッダー属性を持つHTMLのみを再要求します。
Chrome 16.0.912.77mおよびSafari5.1.2(7534.52.7)では、すべてのページのすべての画像に対して、毎回条件付きリクエストが行われます。サーバーは304ヘッダーで応答します。これもmax-age属性を含みますが、どちらも要求を続けます。
応答とともに送信するHTTPヘッダーの例は次のとおりです。
HTTP/1.1 200 OK
Date: Mon, 06 Feb 2012 15:12:12 GMT
Cache-Control: max-age=86400
Content-length: 708
Content-type: image/gif
Last-Modified: Fri, 6 Jan 2012 14:39:07 GMT
Server: Webspring
これらのブラウザがすべて私のキャッシュヘッダーを尊重するようにする方法について誰かが提案を持っていますか?
すべてのブラウザーはWin7Prox64で実行されており、上記のHTTPヘッダーはFiddlerの生の出力であるため、ブラウザーが受信しているのはまさにそれです。
注:これがヘッダーフィールド間の相互作用であることに気付く前に、前の質問をしました。前の質問は正確ではなくなったため、削除しました。
ありがとう
モグ