回答:
Cache-Control
はHTTP / 1.1で導入され、よりも多くのオプションを提供していますExpires
。これらは同じことを行うために使用できますが、のデータ値Expires
はHTTP日付ですが、Cache-Control
max-ageでは相対的な時間を指定できるため、「ページがリクエストされてからX時間」を指定できます。
HTMLキャッシュコントロールは非常によく似た質問であり、ほとんどの質問に答えるキャッシングチュートリアルへの良いリンクがあります(例:http://www.mnot.net/cache_docs/#EXPIRES)。ただし、要約するExpires
とCache-Control
、画像などの静的リソースや、キャッシュの方法をより詳細に制御する必要がある場合に推奨されます。
CDN(Cloud Delivery Network)を使用している場合は、秒単位の最大エージングタイムでCache-Controlを使用することをお勧めします。たとえば、Cache-Control:max-age = 604800。これにより、オリジンサーバーへのリクエストピークを回避できます。「Expires Wed、30 Oct 20xx 04:37:07 GMT」を使用すると、すべてのブラウザが同時にリクエストを送信します。
cache-control
。動作はと同じです。したがって、使用時にリクエストのピークが発生する理由がわかりませんExpires:
このGoogle Developersの記事によれば、HTTPキャッシング:
Cache-Controlヘッダーは、HTTP / 1.1仕様の一部として定義され、応答キャッシュポリシーの定義に使用されていた以前のヘッダー(Expiresなど)に取って代わります。最新のブラウザはすべてCache-Controlをサポートしているため、これで十分です。
Cache-ControlはHTTP / 1.1で定義され、サーバーからクライアントへのすべてのキャッシュメカニズムに、このオブジェクトをキャッシュできるかどうかを伝えます。秒単位で測定されますCache-Control: max-age=3600
。
Expires
ヘッダフィールドはレスポンスが古くなったとみなされた後、日付/時間を与えます。Expires値は、HTTP日付のタイムスタンプですExpires: Tue, 18 Jul 2017 16:07:23 GMT
。
応答にディレクティブのあるCache-Control
フィールドが含まれている場合、max-age
受信者はExpires
フィールドを無視する必要があります。
あなたがまだ興味があるなら、私はグーグルの男の子から直接この推薦を残します。 https://developers.google.com/speed/docs/insights/LeverageBrowserCaching 彼らはCache-ControlよりもExpires beforeを好む