用語「If-Modified-Since」について
If-Modified-Since (いふもでぃふぁいどしんす)
話題 : HTTP
HTTP要求ヘッダ のフィールドのひとつです。
ブラウザがあるリソースのキャッシュを持っているとします。改めてそのリソースにアクセスするとき、リソースがキャッシュ取得時刻以降に更新されていれば、新しい内容が欲しいと思うでしょう。しかし、更新されていなければキャッシュをそのまま使えば良いわけですから、わざわざ内容を送ってもらう必要はありません。
そんなときに、この If-Modified-Since フィールドが利用されます。このフィールドで時刻を指定してリクエストを送ると、その時刻以降に更新があったら内容を返し、そうでなければ 304 が返る……という挙動が期待されます。
たとえば、以下のようなリクエストを送ったとします。
GET http://exapmle.com/foo HTTP/1.1
Host: example.com
If-Modified-Since: Fri, 01 May 2003 12:00:00 GMT
これを見たサーバは、そのリクエストされたリソースの更新日を見て、それが 2003年5月1日の 12:00:00 (日本時間では同日 19:00:00) 以降であれば、200 OK を返してそのリソースの内容を渡します。更新日がそれ以前だった場合、304 Not Modified を返し、リソースの内容は返しません。
……という挙動が期待されます。
ちなみに、たいていのブラウザにはキャッシュの設定項目の中に、「ページの更新を確認」というような項目があって、If-Modified-Since つきのリクエストを送るタイミングを調整することができるようになっています。
- 「If-Modified-Since」にコメントを書く