これは私のアマゾンバケットからの応答例です。
$ curl -I http://amazon_bucket/image.jpg
HTTP/1.1 200 OK
x-amz-id-2: Tmr9SynKe8ztlB/Jix1hNrclwyc/k4NVHyqK3B0vNKUoPFIxfzwALi0XQRwEjhzO
x-amz-request-id: DCFDBCF510988AFB
Date: Wed, 27 Mar 2013 13:06:34 GMT
Cache-Control: public, max-age=2629000
Expires: Wed, 26 Mar 2014 23:00:00 GMT
Last-Modified: Wed, 27 Mar 2013 13:00:19 GMT
ETag: "52dd53ea738c7824b3f67cfea6a3af2a"
Accept-Ranges: bytes
Content-Type: image/jpeg
Content-Length: 627046
Server: AmazonS3
ブラウザが画像をキャッシュし、キャッシュから提供することを期待します。代わりに、ページをリロードすると、ブラウザがリクエストを実行し、304の変更されていない応答が生成されます。must-revalidate
オプションが渡されたように動作するのはなぜですか?ブラウザがキャッシュから直接画像を提供しないのはなぜですか?S3クライアントからイメージに構成したオプションは次のとおりです。
Cache-Control: public, max-age=2629000
Expires: Wed, 26 Mar 2014 23:00:00 GMT
S3ファイルに渡す必要がある他のオプションはありますか?ばかげた答えかもしれませんが、これらの写真を取得するためにブラウザが行うリクエストにはすべて、次のヘッダーが含まれていることがわかります。
Cache-Control:no-cache
Pragma:no-cache
なぜ私のブラウザはそれらを送信するのですか?