这是我的亚马逊水桶的示例回复。
$ 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
为什么我的浏览器会发送这些内容?
答案 0 :(得分:2)
我正在刷新,显然,这总是会触发If-Modified-Since
请求。如果您正常访问该页面,则资产将从浏览器缓存中提供。