2015-02-03 4 views
0

잔뜩 이미지를 제공합니다.다른 브라우저에서 캐시 제어가 다르게 작동합니까?

Cache-Control: max-age:3000 및 구체적으로는 ETag을 HTTP 응답 헤더에 설정합니다.

클라이언트가 동일한 파일을 요청할 때 나는 단지 이미지 파일이며 동일하므로 304으로 응답합니다.

는 아마도 내가 캐싱을 오해하지만 :

  1. 만 최대 사용 기간 기간이 완료된 후 새 파일을 확인하기로 클라이언트 아닌가?
  2. 서버에서 304을 받으면 클라이언트가 이미지를 캐시하고 캐시에서 표시해야합니까?

Firefox에서는 아무 것도하지 않습니다. Chome에서는 최대 연령 이전에 파일을 요청하지만 응답이 304 일 때 캐시에서 이미지를 표시합니다.

서버는 노드 서버입니다. 관련 코드를 공유 할 수 있습니다. 도움이된다면 도움이 될 것입니다. ,이 시점에서 나는 포인터/힌트를 무엇이 잘못되었을 지에 관해서 찾고있다.

나는 뭔가 잘못하고 있지만 무엇을 알아낼 수없는 것 같습니다.

답변

1

구문이 잘못되었습니다. "max-age = 3000"

+0

Ty. 그것을 바로 잡았습니다. 그래도 여전히 작동하지 않습니다. 리소스를 요청하는 동안 무언가를해야합니까? 리소스를 다시 가져 오려고 시도하는 요청 헤더에는'cache-control : no-cache'가 있는데, 내가 잘못하고있는 것입니까? – anu

1

HTTPS를 사용하고 이전 버전의 Firefox를 사용하는 경우 문제는 응답 헤더에 Cache-Control : public이 없기 때문에 발생할 수 있습니다. 그러나, 이것은 몇 년 전 수정되었습니다 :

https://bugzilla.mozilla.org/show_bug.cgi?id=531801

캐시 - 제어 : 요청 헤더에는 캐시 (예를 들어 윈도우에서 Ctrl + F5를 사용하여) 파이어 폭스에서 강제 새로 고침을 나타냅니다. 페이지를 새로 고치거나 Firefox의 새로운 인스턴스에서 페이지를 다시 방문 하시겠습니까?

Firefox 캐시에서 'about : cache'로 이동하거나 HttpWatch 같은 도구를 사용하여 이미지 상태를 확인할 수 있습니다.

+0

사실, 나는 페이지를 새로 고침해야한다. 불행히도 "한 라운드"의 활동이 완료되고 사용자가 다른 활동을 원할 경우 재설정해야합니다. 원래 상태로 돌아가려면 javascript를 사용할 수 있지만 location.reload (true);는 다른 활동을 위해 원래 상태로 돌아가는 것이 훨씬 쉽습니다. 그게 파이어 폭스를 혼란스럽게하는거야? 강제로 다시로드하면 Chrome이 영향을받지 않습니다. – anu

관련 문제