If-Unmodified-Since

HTTP の If-Unmodified-Since リクエストヘッダーは、リクエストを条件付きにします。サーバーはリソースが指定された日時以降に変更されていない場合のみ、要求されたリソースを返信したり、 POST などの安全ではないメソッドをの場合はそれを受け付けたりします。リソースが指定された日時以降に変更されていた場合は、レスポンスは412 (Precondition Failed) エラーになります。

一般的な使用例は2つあります。

  • POST のような安全ではないメソッドとの組み合わせで、一部のウィキで行われているような楽観的並行性制御を実装するために利用することができます。この場合、元の文書を受け取った後で、保存されている文書が変更されていると、編集が拒否されます。
  • If-Range ヘッダー付きの範囲付きリクエストとの組み合わせで、断片をリクエストする際に文書が変更されていないことを確認するために使用することができます。
ヘッダー種別 リクエストヘッダー
禁止ヘッダー名 いいえ

構文

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 における時刻は常にグリニッジ標準時で表され、ローカル時刻になることはありません。

If-Unmodified-Since: Wed, 21 Oct 2015 07:28:00 GMT

仕様書

仕様書 題名
RFC 7232, セクション 3.4: If-Unmodified-Since Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests

ブラウザーの対応

BCD tables only load in the browser

関連情報