2012-02-13 4 views
3

내 이미지는 푸른 blob 저장소에 저장되고 내 azure CDN을 사용하여 웹 응용 프로그램을 통해 참조됩니다. 그러나 모든 이미지는 304 응답 헤더를 반환합니다. 이상적으로는 브라우저가 항상 캐시를 사용하는 대신 모든 요청에 ​​대해 유효성을 확인하기 위해 브라우저를 CDN으로 되돌리려 고합니다. - 이미지 캐시의 수명이 다되었습니다.304 Azure Blob 저장소에서 호스팅되는 내 Azure CDN 이미지의 상태 코드

캐싱에 대한 제한된 지식으로 캐시에서 ETag 값을 사용하여 요청할 때 이미지의 버전이 동일한 지 비교하는 것을 이해합니다. 이 경우 CDN은 304 응답을 반환합니다. 하지만 CacheControl 헤더가 public으로 설정되었으므로 max-age = 2592000은 브라우저가 이미지의 캐시 된 복사본을 사용하기를 바랍니다. ETag 값을 제거하기 때문에 200 응답을 반환하는 호스트 된 서비스 끝점이있는 다른 CDN 설치가 있습니다.

이 문제에 도움을 주시면 매우 감사하겠습니다.

+0

몇 가지 질문이 있습니다. '최대 - 세트'대신 '최대 연령'을 의미 했습니까? Expires 헤더도 응답에 있습니까? 우리가 여기서 무슨 브라우저를 말하는거야? – brettw

+0

은 최대 평균 연령을 의미했습니다. Expires 헤더가 응답에없고 파이어 폭스에서 firebug로 작업하는 im입니다. – Christo

답변

1

ETag "트리거"304 응답 => 브라우저가 If-None-Match 요청을 서버에 보냈습니다. 이것은 일반적으로 max-age이 경과 한 후에 수행됩니다.

그것도 언급 할 가치가있다 https://stackoverflow.com/a/500103/2550808

, 파이어 폭스 브라우저의 설정을 기본값으로 설정해야합니다 : about:config 페이지로 이동하여 확인이 설정 : http://kb.mozillazine.org/Browser.cache.check_doc_frequency

돌아가서이 여기의 좋은 설명을 찾을 수 귀하의 질문에 뭔가 캐시 컨트롤 헤더 서버가 브라우저로 돌아갑니다 잘못되었을 수도 있습니다.

https://www.mnot.net/cache_docs/ : 여기 캐싱에 관한 헤더의 꽤 좋은 설명은,

Cache-Control: max-age=3600, must-revalidate 

어쨌든 내 겸손한 개인적인 경험에서 내가 헤더의 명시 적 public 버전을 발생하지 않은, 그냥이 더 가능성이있을 것 또한

고려해야 할 끊임없는 재 검증을위한 다른 이유가있을 수 있습니다 :

  • 서버의 2 헤더를 변경 00 응답이 캐싱에 영향을 줄 수 있습니다.
  • JavaScript가 위치 객체에 reload를 호출하고 bReloadSource에 TRUE를 전달합니다.
관련 문제