「すべて」のキャッシュとブラウザで機能する最小限のヘッダーセットを見つけたい([〜#〜] https [〜#〜]!)
私のWebサイトには、3種類のリソースがあります。
例:0A470E87CC58EE133616F402B5DDFE1C.cache.html( GWTにより自動生成 )
これらのファイルは、コンテンツを変更すると(MD5に基づいて)新しい名前が自動的に割り当てられます。
HTTPSを使用している場合でも、可能な限りキャッシュする必要があります(したがって、Cache-Control: public
、特にFirefoxの場合?
コンテンツが変更された場合、検証のためにクライアントにサーバーへの往復を要求するべきではありません。
例:index.html、mymodule.nocache.js
これらのファイルは、新しいバージョンのサイトが展開されると、URLを変更せずにコンテンツを変更します。
それらはキャッシュできますが、おそらく毎回再検証するために往復が必要になるでしょう。
例:JSONレスポンス
各タイプにどのヘッダーを使用するかについての一般的な考えはありますが、欠落している可能性のあるものが常にあります。
私はおそらくこれらの設定を使用します:
Cache-Control: max-age=31556926
–リプレゼンテーションはどのキャッシュでもキャッシュできます。キャッシュされた表現は、1年間新鮮であると見なされます:応答を「無期限」としてマークするために、Originサーバーは応答が送信されてから約1年後にExpires日付を送信します。 HTTP/1.1サーバーは、1年以上先にExpires日付を送信すべきではありません。
Cache-Control: no-cache
–リプレゼンテーションはどのキャッシュでもキャッシュできます。ただし、キャッシュは、キャッシュされたコピーをリリースする前に、検証のためにリクエストをOriginサーバーに送信する必要があります。Cache-Control: no-store
–キャッシュは、どのような条件下でも表現をキャッシュしてはいけません。詳細については、 Mark Nottingham’sCaching Tutorial を参照してください。