1
在Chrome和Safari中,尽管服务器返回了适当的信息,但我的网站上包含的远程图像似乎从未得到缓存友好标头(If-Modified-Since等)的请求。另一方面,使用这些标题请求本地资源。相比之下,Firefox使用缓存友好的头文件来请求远程资源。WebKit缓存第三方资源?
这是在S3上的图像,尽管我不认为这是唯一的S3 ...
更新:下面是我通过Chrome的资源面板看到实际的请求。
Request URL:http://mobtest.s3.amazonaws.com/4MKHZL-114.png
Request Method:GET
Status Code:200 OK
请求头
Accept:application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Cache-Control:max-age=0
Referer:http://mobtest.s3.amazonaws.com/4MKHZL-114.png
User-Agent:Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.86 Safari/533.4
响应头
Cache-Control:public, max-age=86400
Content-Length:4074
Content-Type:image/png
Date:Wed, 30 Jun 2010 12:15:42 GMT
ETag:"7e4739d5527ada6bb327f1e27ee656ef"
Last-Modified:Tue, 29 Jun 2010 13:40:08 GMT
Server:AmazonS3
x-amz-id-2:MKTS28Zu4zTsWFjXUTzvmRY214TO9LTKTxtgW1psWKa/JY2pnwmO9rxs8fyHd/O/
x-amz-request-id:F6047ADD0FD6D885
x-amz-version-id:O2OTsDbU4uKOwze7rbK_Do39U_Xhpnyp
重复请求不导致通过浏览器发送的任何附加头(并如前文所述,苹果浏览器)。相反,在Firefox的快速刷新给了我下面的:
Status: 304 Not Modified
响应头
x-amz-id-2 IbhwfAP7FhIN7jtn2FrsjOkVZ8sIKJjv5llevKgw04y2xM+29GSFdGyQNXjiBaMY
x-amz-request-id 258F30A4CC2AC870
Date Wed, 30 Jun 2010 12:19:55 GMT
Cache-Control public, max-age=86400
Last-Modified Tue, 29 Jun 2010 13:40:08 GMT
x-amz-version-id O2OTsDbU4uKOwze7rbK_Do39U_Xhpnyp
Etag "7e4739d5527ada6bb327f1e27ee656ef"
Content-Type image/png
Content-Length 4074
Server AmazonS3
请求头
Host mobtest.s3.amazonaws.com
User-Agent Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language en-us,en;q=0.5
Accept-Encoding gzip,deflate
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive 300
Connection keep-alive
If-Modified-Since Tue, 29 Jun 2010 13:40:08 GMT
If-None-Match "7e4739d5527ada6bb327f1e27ee656ef"
Cache-Control max-age=0
更新2:现在我明白了Chrome缓存内容。奇怪......我要结束这个问题并给Marc一个答案。
谢谢Marc,但我相信Chrome实际上是在提出额外的要求。我已经在Chrome和Firefox中更新了我的原始问题,请求响应周期。 – pr1001 2010-06-30 12:26:00
这很奇怪 - 看起来Chrome甚至没有在第二个请求中发送“If-Modified-Since”或“If-None-Match”标头 - 这将保证服务器再次发送文件。您的Chrome配置是否设置为默认值? – 2010-06-30 16:27:54
今天它决定发送它们......我唯一的猜测就是它必须与我的'max-age'指令有关,而且我最后一次在'max-age'时间范围内访问了该网站。 – pr1001 2010-07-02 08:01:01