2012-09-24 2 views
1

브라우저와 서버 간의 네트워크 통신을 모니터링하는 동안 흥미로운 점을 발견했습니다. 그것은 캐싱과 관련이 있습니다.캐싱 및 HTTPS

CSS 파일 http://domain.com/main.css (보안되지 않은 페이지에서 사용됨)이 https://domain.com/main.css (보안 된 페이지에서 사용됨)을 통해 액세스 할 수 있습니다.

  1. 보안되지 않은 페이지를 처음로드 할 때 CSS 파일은 200 OK이됩니다. 페이지를 새로 고침하거나 다른 보안되지 않은 페이지로 이동하면 304 Not Modified이 표시됩니다.
  2. 안전한 페이지로 처음 이동하면 https 소스의 CSS 파일이 200 OK이됩니다. 내가 페이지를 다시로드 (또는 다른 보안 페이지로 이동했을 때, 나는 304 Not Modifie를 얻을.
  3. 내가 보안되지 않은 페이지로 돌아가, CSS 파일이 여전히 304 Not Modified 가져옵니다.
  4. 나는 보안 페이지로 돌아 가면 CSS 파일은 캐시 된 복사본에 일어난 어떤 200 OK. 은? 어떻게 그것을 캐시 할 수 얻는다?

답변

1

This 귀하의 질문에 대답 수 있습니다. 그것은 당신의 웹 사이트를 정의하여 비 cacheble으로이 자원을 정의하는 경우가 있습니다 이 :

Cache-Control private, must-revalidate, max-age=0 

(예 : https://www.google.com/ncr에 액세스 할 때) 브라우저가 캐시하지 못하게합니다. 응답 헤더를보기 위해 Fire-bug \ Fiddler 또는 비슷한 것을 가지고 있습니까?

+0

내 .htaccess에는 ExpiresByType text/css 액세스 + 10 년 "이 있고 응답 헤더의 만료 시간은 Expires : Thu, 22 Sep 2022 22:25:51 GMT입니다. Expires와 Cache-Control을 지정하는 것은 중복되므로 Expires 만 사용합니다. – StackOverflowNewbie

+0

전체 헤더 (응답 및 요청)를 붙여주십시오. – Scis

+0

신경 쓰지 마십시오. 나는 Firebug를 잘못 읽고 있었다. 캐시에서 자원을 확보 했음에도 불구하고 200 OK라고했습니다. – StackOverflowNewbie