Cache-Controlに関連するクエリがいくつかあります。
静的html/js/images/cssファイルにCache-Control max-age=3600, must-revalidate
を指定し、HTTPヘッダーに最終変更ヘッダーが定義されている場合:
a)サーバーにこのヘッダーが含まれている場合:
Cache-Control "max-age=3600, must-revalidate"
クライアントキャッシュとプロキシキャッシュの両方に、コンテンツが古くなった(3600秒以上)場合、コンテンツを提供する前にOriginサーバーで再検証する必要があることを伝えています。これはキャッシングシステムのデフォルトの動作であるはずですが、must-revalidate
ディレクティブはこの要件を明確にします。
b)クライアントは再検証する必要があります。 ETagでIf-Match
またはIf-None-Match
ヘッダーを使用して再検証するか、日付でIf-Modified-Since
またはIf-Unmodified-Since
ヘッダーを使用します。
a。 このページ の[統計]タブを見て、何が起こるかを確認します。
b。有効期限が切れると、ブラウザはサーバーでファイルが更新されているかどうかを確認します。そうでない場合、サーバーは304 Not Modified
ヘッダーと何もダウンロードされません。
Firebugまたは同様のツールの[Net]パネルを見ると、この動作を自分で確認できます。アドレスバーにURLを再入力し、HTTP要求の数とキャッシュが空の場合の要求の数を比較します。
少なくとも2019年のWebブラウザでは、与えられた答えは間違っています。
「有効期限が切れると、ブラウザはファイルが更新されたかどうかをサーバーで確認します」<-trueではない
「Cache-Control:public、must-revalidate、max-age = 864000」で提供される静的ファイルがあり、両方ChromeとFirefoxは毎回リクエストを実行します(そして304 Not Modifiedを取得します毎回戻る)。