株式会社エスロジカル
株式会社エスロジカル
セキュリティプロダクツ提供
Web開発、システム開発、UNIXシステム構築
個人情報保護方針

技術ドキュメント

技術ドキュメント目次 -> HTTPプロトコル -> If-Modified-Sinceヘッダ

本技術ドキュメントは、ここしばらくメンテナンスをしておりません。
内容が古くなっている可能性などございますこと、ご理解を頂けますようお願いいたします。


[弊社運営] SSL証明書の格安販売。(RapidSSL 3,000円、ジオトラスト 11,500円、シマンテック 49,800円 など)
[オススメ] EV証明書ではサイバートラストも人気。 SSLアフィリエイトプログラムも実施中です。

◆ If-Modified-Sinceヘッダ

httpのクライアント(IE等のWebブラウザ)は、サーバに対してリクエストを行うとき、
If-Modified-Since ヘッダを、
リクエストのヘッダに付加して送信することができます。

If-Modified-Since の付加は必須ではないので、
If-Modified-Since をつけていないリクエストをサーバーに対して行っても、
まったく問題ありませんが、このヘッダは、
下記の条件を満たしている場合、多くのブラウザが標準で送信しています。

クライアント側に目的のコンテンツのキャッシュが存在していて、
なおかつ、クライアントがそのコンテンツが最後に更新された時間がいつであるか
を把握している。

クライアントはすでにキャッシュを持っているので、
次のようなリクエストを行うことが可能になり、
その更新時間の指定を、If-Modified-Since ヘッダで行っています。

「/some.html のコンテンツをください。ただし、x年x月x日x時x分x秒よりも後に
 そのコンテンツが更新されていなかった場合は、更新されていない旨だけを
 教えてください。更新されていない場合はキャッシュを使ってコンテンツを表示
 します。」

もし、コンテンツファイルが更新されていなければ、サーバーはその旨を、
304 Not Modified
というレスポンスヘッダを返すのみで通知できるので、
(コンテンツのデータは返しません。)
トラフィックの削減を行うことができます。

以下、
/some.html というファイルに対してGETのリクエストを行う時に、
If-Modified-Since のヘッダをつけた場合とつけなかった場合とで、
どのような違いがレスポンスに現れるか、telnetコマンドを使って
確認した結果を挙げておきます。

なお、/some.html は、”Sun, 09 Jun 2002 02:24:43 GMT”に更新されています。

 
If-Modified-Since を付加していないリクエスト

$ telnet localhost 80
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
GET /some.html HTTP/1.0

HTTP/1.1 200 OK
Date: Sun, 09 Jun 2002 02:26:27 GMT
Server: Apache/1.3.24 (Unix)
Last-Modified: Sun, 09 Jun 2002 02:24:43 GMT
ETag: "1e5143-3f-3d02bc6b"
Accept-Ranges: bytes
Content-Length: 63
Connection: close
Content-Type: text/html

<html>
<head></head>
<body>
This is some.html.
</body>
</html>
Connection closed by foreign host.
$


If-Modified-Since を付加したリクエスト

$ telnet localhost 80
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
GET /some.html HTTP/1.0
If-Modified-Since: Sun, 09 Jun 2002 02:24:43 GMT

HTTP/1.1 304 Not Modified
Date: Sun, 09 Jun 2002 02:28:42 GMT
Server: Apache/1.3.24 (Unix)
Connection: close
ETag: "1e5143-3f-3d02bc6b"

Connection closed by foreign host.
$




■ HTTPプロトコル についての他のドキュメント


■ 他のグループのドキュメント

Apache  /  Linux  /  FreeBSD  /  OpenSSL  /  Perl  /  HTTPプロトコル  /  Jakarta Tomcat  /  Java  /  NetBSD  /  Oracle  /  PostgreSQL  /  UNIX の C言語  /  UNIX のコマンド  /  Windows  /  bind  /  システム運用TIPS

アンケートにご協力をお願いいたします。

1. この技術ドキュメントへの評価をご選択ください。
大変良い  良い  普通  悪い  大変悪い  ノーコメント

2. ご感想をご自由にお書きください。



自社運営サイト: SSL証明書 / 改ざん検出 / 秘密分散法 / 暗号化ソフト / OpenIDサイト一覧 / IPアドレス表示 / リンク切れチェック / RapidSSL / ジオトラスト / ベリサイン / SSL

Copyright (C) 2006-2008 Slogical Corporation. All Rights Reserved.
ご意見などは、こちらのお問い合わせ用ページ からお願いいたします。

本サイト上の文書で記載または紹介している会社名、商品名は一般に各社の商標または登録商標です。
本サイト上の文書中では、TM マークおよび R マークを明記していない場合があります。