2013-09-30 3 views
4

보안 HTTPS 연결을 통해 조건부 GET 요청에 HTTP 캐싱을 사용할 수 있습니까? 비보안 HTTP를 통해 캐싱 작업을 수행하고 있지만 HTTPS로 전환하면 브라우저가 if-none-match 및 if-modified-since 헤더를 보내지 않으므로 캐싱이 중단됩니다. 나는 공개, 최대 연령 = 3600과 그 밖의 주사위와 같은 다양한 Cache-Control 설정을 시도했다.Etags 및 https SSL을 통한 마지막 수정?

이것은 Safari와 Chrome에서 모두 발생하므로 SSL이 어떻게 든 깨뜨리고 있다고 가정합니다. SSL을 통한 캐싱이 허용되지 않습니까?

그리고 단지 명확하게 할 수는 서버는 요청에-이후 수정 한 경우-, 따라 실제로 제대로 경우 - 없음 - 경기 및 전송되지 않은 ETAG와 마지막으로 수정 된 헤더하지만 브라우저 설정입니다 Chrome 개발자 도구

도움 주셔서 감사합니다.

답변

10

알아 냈어! 신뢰할 수있는 인증서가 있어야합니다. SSL HTTPS 용 자체 서명 테스트 인증서를 사용하고있었습니다. 내 키 체인에 추가하고 녹색으로 바꾸면 캐싱 작업이 수행됩니다.

+0

똑같은 것으로 나타났습니다. 크롬이 일부 리소스에 대해 etags를 서버에 보내지 않습니다. 테스트 사이트에서 내 프로덕션 SSL 인증서를 사용하고 있으므로이를 통해 큰 크로스가 있습니다./etc/hosts 항목을 추가하고 프로덕션 도메인 이름으로 시도해야합니다. – TomWardrop

+1

Chrome에 자체 서명 된 인증서를 추가 했으므로 녹색 자물쇠가 생겼지 만 Chrome 33의 경우 여전히 수정 됨 (FF27로 잘 작동 함) - 자체 서명 된 인증서는 여전히 메시지를 표시합니다. "하지만 그렇지 않습니다. 공개 감사 기록 ​​있음 "- SSL 오류 (예 : https://code.google.com/p/chromium/issues/detail?id=110649 –

+0

)의 경우 Chrome에서 캐시되지 않는 것 같습니다 ... 방금 다시 시작했습니다. 내 크롬 33 그리고 지금은 모두 잘되고있어! 그래서 녹색 자물쇠는 "공개 감사 기록이 없습니다"라고해도 괜찮습니다. –