2012-02-13 20 views
3

私のイメージは、紺碧のBLOBストレージに保存され、私の青いCDNを使用してWebアプリケーションから参照されます。しかし、すべての画像は304応答ヘッダを返す。理想的には、ブラウザが常にキャッシュを使用するのではなく、ブラウザがCDNに戻ってすべての要求で妥当性をチェックしたいとは思わない。 - まあ、イメージキャッシュの寿命です。304 Azure BlobストレージでホストされているMy Azure CDNイメージのステータスコード

私の限られたキャッシュ知識では、キャッシュはETag値を使用して、要求されたときにイメージのバージョンが同じかどうかを比較することを理解しています。この場合、CDNは304応答を返します。しかし、CacheControlヘッダーはpublic、max-age = 2592000に設定されているので、ブラウザが画像のキャッシュされたコピーを使用することを希望します。 ETag値を削除するため、200応答を返すホストされたサービスエンドポイントを持つ別のCDNセットアップがあります。

これについてのお手伝いがあれば幸いです。

+0

ごくわずかです。あなたは 'max-set'ではなく 'max-age'を意味しましたか? Expiresヘッダーも応答にありますか?ここではどんなブラウザを話していますか? – brettw

+0

は平均最大年齢でした。 Expiresヘッダーはレスポンスではなく、imはfirefoxのfirebugで作業しています。 – Christo

答えて

1

ETag "トリガー" レスポンス=>ブラウザがIf-None-Match検証リクエストをサーバーに送信しました。これは、通常、max-ageが経過した後に行われます。あなたがここにこの良い説明を見つけることができる:

https://stackoverflow.com/a/500103/2550808

を、それはまた、言及する価値がある、Firefoxブラウザの設定がデフォルトに設定する必要があります。about:configページに移動し、この設定をチェック:http://kb.mozillazine.org/Browser.cache.check_doc_frequency

は戻ってあなたの質問には、サーバーがブラウザに戻るCache-Controlヘッダーで何かが間違っている可能性があります。私のささやかな個人的な経験では、私は、ヘッダーの明示的publicバージョンに遭遇していなかった、それだけで、この可能性が高くなります

Cache-Control: max-age=3600, must-revalidate 

とにかく、ここでのキャッシングに関連するヘッダのかなり良い説明は次のとおりです。

https://www.mnot.net/cache_docs/また

、考慮すべき絶え間ない再検証のための他の理由があるかもしれません:

  • は、サーバーの2のヘッダーを変更00の応答がキャッシングに影響を与える可能性があります。
  • JavaScriptはlocationオブジェクトにreloadを呼び出し、bReloadSourceにTRUEを渡します。
関連する問題