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にも精通してないといけないのかもしれません。

こちらの記事はなかの人(suz-lab)監修のもと掲載しています。
元記事は、こちら