[解決済み] リソースの種類に応じた理想的なHTTPキャッシュコントロールヘッダ
質問
すべてのキャッシュとブラウザで動作する、最小限のヘッダを見つけたいのです。 HTTPS !)
私のWebサイトでは、3種類のリソースを用意することにしています。
(1) 永遠にキャッシュ可能なもの(公開/全ユーザに等しい)
例:0A470E87CC58EE133616F402B5DDFE1C.cache.html ( GWTによって自動生成される )
-
これらのファイルは、内容が変更されると、自動的に新しい名前が割り当てられます(MD5 に基づいています)。
-
HTTPS を使用しているときでも、できるだけキャッシュされるべきです (ですから、私が想定しているのは
Cache-Control: public
を設定する必要があります(特にFirefoxの場合?)。 -
コンテンツが変更された場合、クライアントが検証のためにサーバーに往復することを要求すべきではないでしょう。
(2) たまに変更する(公開/全ユーザーに等しい)
例:index.html、mymodule.nocache.js
-
これらのファイルは、サイトの新しいバージョンがデプロイされたときに、URLを変更することなくその内容を変更します。
-
これらはキャッシュすることができますが、おそらく毎回再バリデーションのためのラウンドトリップが必要です。
(3) 各リクエストの個別 (プライベート/ユーザー固有)
例 JSONレスポンス
- これらのリソースは、いかなる状況下でも暗号化されていないディスクにキャッシュされるべきではありません。(キャッシュされる可能性のある、いくつかの特定の要求がある場合を除きます)。
それぞれのタイプでどのヘッダーを使うか、だいたいの見当はつきますが、常に何か見落としている可能性があります。
どのように解決するのですか?
私なら、この設定を使うと思います。
-
Cache-Control: max-age=31556926
- 表現は,どのキャッシュによってもキャッシュされることができる。キャッシュされた表現は1年間新鮮であるとみなされる。レスポンスに "期限なし "とマークするために、オリジンサーバは 期限切れ を送信します。 を送信します。HTTP/1.1 サーバーは 期限切れ を送信してはなりません。 を送信してはなりません。
-
Cache-Control: no-cache
- Representation はどのキャッシュにもキャッシュされることが許されています。しかし、キャッシュはキャッシュされたコピーを解放する前に、検証のためにオリジンサーバにリクエストを提出しなければなりません。 -
Cache-Control: no-store
- キャッシュはいかなる状況下でも表現をキャッシュしてはいけません。
参照 マーク・ノッティンガムの キャッシュチュートリアル を参照してください。
関連
-
[解決済み] ウェブサイト制作のためのChromeキャッシュの無効化
-
[解決済み] updateとdeleteのHTTPステータスコード?
-
[解決済み] カスタムHTTPヘッダー:命名規則
-
[解決済み] リソースが既に存在する場合の POST に対する HTTP レスポンスコード
-
[解決済み] 検証失敗または重複が無効な場合のREST HTTPステータスコード
-
[解決済み] HTTP DELETE リクエストにエンティティボディは許されますか?
-
[解決済み] HTTPヘッダーの大文字と小文字は区別されますか?
-
[解決済み] Cache-Control: max-age=0とno-cacheの違いは何ですか?
-
[解決済み] Google ChromeでHTTPヘッダーを表示するにはどうすればよいですか?
-
[解決済み] JavaScriptでウェブページのHTTPヘッダーにアクセスする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
HTTPプロトコルの古典的な面接の質問と回答
-
[解決済み] HTTPヘッダーの大文字と小文字は区別されますか?
-
[解決済み] PUT、DELETE、HEADなどのメソッドは、ほとんどのウェブブラウザで利用可能ですか?
-
[解決済み] OPTIONSリクエストを送信する理由と、それを無効にする方法を教えてください。
-
[解決済み] application/x-www-form-urlencoded or multipart/form-data?
-
[解決済み】サーバーサイドアプリケーション(PHP、Ruby、Pythonなど)でURLのハッシュ部分を読み取ることはできますか?)
-
[解決済み】Accept* HTTPヘッダのq=0.5とは何ですか?
-
[解決済み】Webブラウザはhttpsでコンテンツをキャッシュするか?
-
[解決済み] 304 Not Modified」は具体的にどのように機能するのですか?
-
[解決済み] HTTPのPOSTメソッドをキャッシュすることは可能ですか?