If-Unmodified-Since ヘッダー
Baseline
広く利用可能
この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2015年7月以降、すべてのブラウザーで利用可能です。
HTTP の If-Unmodified-Since リクエストヘッダーは、リクエストを条件付きにします。
サーバーはリソースが指定された日時以降に変更されていない場合のみ、要求されたリソースを返信したり、 POST などの安全ではないメソッドをの場合はそれを受け付けたりします。
リソースが指定された日時以降に変更されていた場合は、レスポンスは 412 Precondition Failed エラーになります。
If-Unmodified-Since ヘッダーは、一般的に次のような状況で使用されます。
- 安全ではないメソッド、たとえば
POSTなどとの組み合わせで、一部のウィキで行われているような楽観的並行性制御を実装するために利用することができます。この場合、元の文書を受け取った後で、保存されている文書が変更されていると、編集が拒否されます。 If-Rangeヘッダー付きの範囲付きリクエストとの組み合わせで、断片をリクエストする際に文書が変更されていないことを確認するために使用することができます。
| ヘッダー種別 | リクエストヘッダー |
|---|---|
| 禁止リクエストヘッダー | いいえ |
構文
http
If-Unmodified-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 で表され、決して現地時間で表されることはありません。
例
http
If-Unmodified-Since: Wed, 21 Oct 2015 07:28:00 GMT
仕様書
| 仕様書 |
|---|
| HTTP Semantics> # field.if-unmodified-since> |
ブラウザーの互換性
関連情報
- HTTP 条件付きリクエストガイド
Last-ModifiedIf-Range,Range範囲リクエストヘッダーIf-Match,If-Modified-Since,If-None-Match条件付きリクエストヘッダー304 Not Modified,412 Precondition Failedレスポンスステータスコード