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