2011年6月7日火曜日

S3で"If-Modified-Since"ヘッダを確認

スズキです。

"If-Modified-Since"ヘッダはHTTPリクエスト時に追加できるヘッダで、
そのヘッダで指定した時刻以降に対象コンテンツに更新があった場合は、
コンテンツをそのまま返し、そうでない場合は、304ステータスコード(Not Modified)
が返ってくることが期待されるものです。

実際、S3に対して下記のようにTelnetを試してみると、
期待通り、304ステータスコード(Not Modified)が返ってきました。

# telnet s3.amazonaws.com 80
Trying 207.171.185.200...
Connected to s3.amazonaws.com.
Escape character is '^]'.
GET /cdn.suz-lab.com/sample.txt HTTP/1.1
Host: s3.amazonaws.com
If-Modified-Since: Wed, 01 Jun 2011 23:00:00 GMT
Connection: close

HTTP/1.1 304 Not Modified
x-amz-id-2: x5+dCWznmNVjIEBjW2yiFwJxuNJtS6h2NXcBR+cd0F99pBJolcdfW0J2Rf3oVh6v
x-amz-request-id: E36587D39C2F3B4C
Date: Tue, 07 Jun 2011 07:55:57 GMT
Last-Modified: Wed, 01 Jun 2011 14:49:24 GMT
ETag: "5e8ff9bf55ba3508199d22e984129be6"
Server: AmazonS3

Connection closed by foreign host.

ちなみに"If-Modified-Since"に未来の日付を設定すると、
不正な値として処理されるようで、その場合は、コンテンツがそのまま返ってきます。

AWSを語るには、HTTPにも精通してないといけないのかも...
--------
http://www.suz-lab.com

0 コメント: