Expires
使い方
Expires ヘッダーは、キャッシュされたレスポンスが鮮度を失う時点を示す絶対タイムスタンプを提供します。キャッシュはこのタイムスタンプを現在時刻と比較し、保存したコピーがまだ使えるかどうかを判断します。
両方が存在する場合は、Cache-Control の max-age ディレクティブが Expires に優先します。max-age は絶対的な日付ではなく相対的な秒数を使うため、サーバーとキャッシュの間の時計のずれの問題を回避できます。現代のキャッシュポリシーは主要な鮮度の仕組みとして Cache-Control に依存し、Expires は max-age をサポートしない古いキャッシュ向けのフォールバックとして機能します。
値が 0 または不正な日付の場合、そのレスポンスはすでに古いというシグナルになります。キャッシュはそのエントリを直ちに期限切れとして扱い、次のリクエストで再検証または新規取得を強制します。
タイムスタンプは Date ヘッダーと同じ IMF-fixdate 形式に従います。
Expires: <day-name>, <day> <month> <year>
<hour>:<minute>:<second> GMT
注意
同じレスポンス内に Cache-Control: max-age が存在する場合、Expires の値は無視されます。新規の実装では max-age を優先してください。
例
水曜日の 08:00 UTC に期限切れとなるレスポンスです。指定時刻を過ぎてこのレスポンスを保持しているキャッシュは、そのコピーを古いものとして扱います。
Expires: Wed, 04 Jun 2025 08:00:00 GMT
すでに期限切れとしてマークされたレスポンスです。値を 0 に設定すると、キャッシュはリクエストのたびに再検証を強制されます。
Expires: 0
後方互換性のために Cache-Control と組み合わせた Expires ヘッダーです。max-age ディレクティブが優先されるため、Expires のタイムスタンプに関係なくレスポンスの鮮度は 1 時間になります。
Cache-Control: max-age=3600
Expires: Thu, 01 Jan 1970 00:00:00 GMT