2010-06-28 4 views
1

Chrome 및 Safari에서 내 사이트에 포함 된 원격 이미지는 서버가 적절한 정보를 반환 함에도 불구하고 캐싱 관련 헤더 (If-Modified-Since 등)로 요청 된 적이없는 것 같습니다. 반면에 로컬 자원은 이러한 헤더로 요청됩니다. 반면 파이어 폭스는 원격 리소스를 캐싱하기 쉬운 헤더로 요청한다.WebKit는 타사 리소스를 캐시합니까?

나는 그것이 S3에 고유 한 생각하지 않습니다하지만 이것은 S3에 대한 이미지입니다 ...

업데이트 :가 여기에 내가 크롬 자원 패널을 통해보고 있어요 실제 요청합니다.

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 

, 원정 여행). 반면, 빠르게 파이어 폭스에서 새로 고침하면 다음 나에게 제공합니다

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이 콘텐츠를 캐싱합니다. 이상한 ... 나는이 질문을 닫고 마크에게 대답을 할 것이다.

답변

1

서버가 나중에 "Expires"헤더를 다시 보내면 브라우저는 콘텐츠가 캐시에서 충분히 신선한 것으로 결정할 수 있으며 캐시를 만들지 않아도됩니다. 서버에 요청하십시오. 서버에서 보낸 헤더를 검토하여 적절한 값으로 설정되어 있는지 확인하십시오. 자세한 내용은 ETag vs Header Expires을 참조하십시오. 질문을 실제 URL 또는 서버에서 다시 전송 된 헤더로 자유롭게 업데이트하십시오.

+0

고마워, 마크,하지만 크롬이 실제로 추가 요청을한다고 생각합니다. 원래 질문을 Chrome 및 Firefox의 요청 - 응답 주기로 업데이트했습니다. – pr1001

+0

매우 이상합니다. 두 번째 요청에서 Chrome이 "If-Modified-Since"또는 "If-None-Match"헤더를 보내지 않아 서버에서 파일을 다시 보냈다는 것을 알 수 있습니다. Chrome 구성이 기본값으로 설정되어 있습니까? –

+0

그리고 오늘은 그들을 보내겠다고 결정했습니다. 내 유일한 추측은 내 '최대 연령'지침과 관련이 있으며, 마지막으로 '최대 연령'기간 내에 사이트를 마지막으로 방문한 것입니다. – pr1001

관련 문제