If-Modified-Since ヘッダー
Baseline
広く利用可能
この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2015年7月以降、すべてのブラウザーで利用可能です。
HTTP の If-Modified-Since リクエストヘッダーは、リクエストを条件付きにします。
サーバーは最後にリソースが変更された時刻が、If-Modified-Since の日時よりも後の場合にのみ、リクエストされたリソースを 200 ステータスと共に返却します。
それ以降にリソースが変更されていなければ、レスポンスは本文を持たない 304 になります。前回のリクエストの Last-Modified レスポンスヘッダーは、最後にリソースが変更された日時を含みます。
If-Unmodified-Since とは異なり、 If-Modified-Since は GET または HEAD でのみ使用できます。
If-None-Match との組み合わせで使用された場合は、サーバーが If-None-Match に対応していない場合を除き無視されます。
最も一般的な使用方法は ETag に関連付けられていない、キャッシュされたリソースを更新するために用いることです。
| ヘッダー種別 | リクエストヘッダー |
|---|---|
| 禁止リクエストヘッダー | いいえ |
構文
If-Modified-Since: <day-name>, <day> <month> <year> <hour>:<minute>:<second> GMT
ディレクティブ
<day-name>-
Mon、Tue、Wed、Thu、Fri、Sat、Sunのいずれか(大文字小文字を区別)。 <day>-
2 桁の日番号。例えば "04" または "23"。
<month>-
Jan、Feb、Mar、Apr、May、Jun、Jul、Aug、Sep、Oct、Nov、Decのいずれか(大文字と小文字を区別)。 <year>-
4 桁の年の数字。たとえば "1990" または "2016"。
<hour>-
2 桁の時の数字。たとえば "09" または "23"。
<minute>-
2 桁の分の数字。たとえば "04" または "59"。
<second>-
2 桁の秒の数字。たとえば "04" または "59"。
- GMT
-
グリニッジ標準時。HTTP の日付は常に GMT で表され、決して現地時間で表されることはありません。
例
If-Modified-Since: Wed, 21 Oct 2015 07:28:00 GMT
仕様書
| 仕様書 |
|---|
| HTTP Semantics> # field.if-modified-since> |
ブラウザーの互換性
関連情報
ETagIf-Match,If-None-Match,If-Unmodified-Since条件付きリクエストヘッダー304 Not Modified,412 Precondition Failedレスポンスステータスコード