웹 기반 응용 프로그램을 사용자 정의 웹 서버에 작성하고 이미지, 스타일 시트 및 JavaScript를 캐싱하지 않는 웹킷 브라우저에 문제가 있습니다.max-age 및 Last-Modified 헤더가 모두 제공 될 때 캐싱하지 않는 웹킷
Cache-Control : max-age와 Last-Modified 사이의 관계를 추적했습니다. 둘 다 지정되면 Webkit은 max-age 헤더를 무시하고 리소스가 사용될 때마다 파일이 수정되었는지 확인합니다. 사이트에는 첫 번째 페이지에 iframe이 있으며 스타일 시트 등이 초 이내에 두 번 요청됩니다.
Last-Modified를 제거하면 파일은 다음 날까지 다시 요청되지 않습니다. 그러나 서버가 304 헤더 대신 모든 것을 다시 보내야하는 요청 일 경우 다음 날 요청은 더 이상 수정되지 않을 것입니다.
IE9에서 Firefox 10.0 및 Opera 11.61은 브라우저가 올바르게 캐시되고 이미지를 다시 요청하지 않고 Cache-Control : no-cache 헤더 속성이있는 HTML 만 다시 요청합니다.
Chrome 16.0.912.77 m 및 Safari 5.1.2 (7534.52.7)에서는 매번 모든 페이지의 모든 이미지에 대해 조건부 요청이 이루어집니다. 서버는 최대 헤더 속성을 포함하는 304 헤더로 응답하지만 둘 다 요청을 계속합니다.
내가 응답으로 보낸다 예 HTTP 헤더는 다음과 같습니다
HTTP/1.1 200 OK
Date: Mon, 06 Feb 2012 15:12:12 GMT
Cache-Control: max-age=86400
Content-length: 708
Content-type: image/gif
Last-Modified: Fri, 6 Jan 2012 14:39:07 GMT
Server: Webspring
내 캐시 헤더를 존중
사람이 내가 모든이 브라우저를 얻을 수있는 방법의 제안이 있습니까?
모든 브라우저는 Win7 Pro x64에서 실행되며 위의 HTTP 헤더는 Fiddler의 원시 출력이므로 브라우저에서 정확히 수신합니다.
참고 : 이전 질문은 헤더 필드 간의 상호 작용임을 알기 전에 질문했습니다. 이전 질문을 더 이상 정확하지 않게 삭제했습니다.
감사
모그
혹시 원인을 진단했거나이 문제에 대한 해결책을 찾았습니까? 웹킷 기반 (Chrome/Safari) 브라우저에서는 Mac OS X 10.8.2의 모든 이미지에 조건부 GET 요청이 반복적으로 표시되지만 Firefox 캐시는 올바르게 캐시됩니다. –
Chrome과 Safari의 마지막 수정 된 속성을 실제로 제거하여 적어도 캐싱을 수행합니다. 더 좋은 해결책을 찾지 못했습니다. – Mog0