[34] If-Modified-Since:
ヘッダーや
If-Unmodified-Since:
ヘッダーは、
対象資源の最終更新日時が指定した時刻の前後いずれかによって要求メソッドの処理を実行するか否かを指定するものです。
[8] If-Modified-Since:
ヘッダーや
If-Unmodified-Since:
ヘッダーは、
GET
や HEAD
の要求を選択された表現の最終変更日時に関する条件付き要求とします
>>12, >>25。
[18] If-Modified-Since:
は、
キャッシュされている実体タグを持たない表現を効率的に更新するために使うことができます
>>12。
[20] キャッシュの更新に使う時は普通はキャッシュされた Last-Modified:
の値を使って If-Modified-Since:
を生成します。
時計の同期が不十分な場合や何らかの理由で鯖側の Last-Modified:
が過去に戻った時のために鯖が時刻を完全一致にしているような場合があるので、
これが最も相互運用性が高い動作です。しかし、Last-Modified:
がない場合に Date:
や手元の時計の時刻を使うなどして、
それ以外の時刻を生成する場合もあります。 >>12
[19] If-Modified-Since:
は、
Web の探索を最近の変更のみに限定するために使うことができます >>12。
[21] 利用者エージェントは取得の時間範囲を限定する場合には手元の時計の次オックを使ったり、
以前の応答の Date:
を使ったりします。
起源鯖が Last-Modified:
との完全一致を行っていると、
このような利用者エージェントでのデータ転送の削減の役には立ちません。 >>12
[27] If-Unmodified-Since:
は、
POST
、PUT
、
DELETE
のような状態を変更する要求メソッドにおいて、
別の利用者エージェントが並列に加えた変更を上書きしてしまう「lost update」
問題を避けるために使われます。 >>25
[28] If-Unmodified-Since:
は、
安全なメソッドにおいて、選択された表現が既に一部または全部が蓄積されているものと一致しない時に要求を中断するために使うこともできます。
>>25
[13] If-Modified-Since:
ヘッダーと
If-Unmodified-Since:
ヘッダーの値は、
HTTPの日時形式 (HTTP-date
) です >>12, >>25。
[26] 受信者は、If-Modified-Since:
や
If-Unmodified-Since:
の値を起源鯖の時計に照らして解釈しなければなりません
>>12, >>25。
[14] 選択された表現の最終変更日時が If-Modified-Since:
ヘッダーで指定された値と同じかそれ以前なら、
同ヘッダーの条件は真と判断しないべきです。 >>12
[33] 選択された表現の最終変更日時が If-Unmodified-Since:
ヘッダーで指定された値よりも最近なら、同ヘッダーの条件は真と判断してはなりません
>>25。
[305] Request Headers in the HTTP protocol ( ( 版)) <http://www.w3.org/Protocols/HTTP/HTRQ_Headers.html#if-modified-since>
length
引数[6] 90年代後半のWebブラウザーは length
引数を If-Modified-Since:
ヘッダーに含めることがありました。
[5] >>4 WinIE3.02 と NC 4.01 では確かに length
引数がつきました。
[307] Last-Modified が If-Modified-Since と一致すると IE6 は他がなにあってもキャッシュを使っちゃう。 ETag とか Vary とかつけてみたけど無視される。
[413] ウェブマスター向けガイドライン - ウェブマスター ツール ヘルプ ( ( 版)) <https://support.google.com/webmasters/answer/35769?hl=ja>
[414] RFC 2660 - The Secure HyperText Transfer Protocol ( ( 版)) <http://tools.ietf.org/html/rfc2660#section-5.2.5>