아파치 톰캣 서버를 사용하고 웹 응용 프로그램에서 여러 개의 js, css 및 이미지 파일을 렌더링하고 있습니다. 나는이 파일들이 매번 요청되지 않도록 브라우저에 의해 캐시되고 있는지 확인하고 싶다. 그러나 일부 파일은 캐시되는 반면 다른 파일은 캐시되지 않는 것으로 나타났습니다. 나는 앱의 응답 헤더가 Expires : "1969 년 12 월 31 일 오후 7시"라는 것을 알았습니다. this을 통과 한 후 헤더를 성공적으로 제거한 web.xml에서 tomcat 보안 제한 조건을 제거했습니다. 또한 앱에서 Expires 헤더를 1 주일 전에 구성했습니다. 그것도 페이지가 캐시되었는지 확인하지 못했습니다.페이지가 브라우저에 캐싱되지 않습니다.
다음은 캐시 제어 헤더를 1 주로 설정된 최대 연령으로 공용으로 구성한 것입니다. 이러한 변화가 나를 돕지 못합니다. 또한, 페이지는 캐시 받고 아래와 같은 헤더가 캐시 가져 오지 :
HTTP/1.1 200 OK
Cache-Control: max-age=604800, public
ETag: 240983
Last-Modified: Fri, 09 Sep 2016 18:49:42 GMT
Date: Wed, 01 Feb 2017 07:34:25 GMT
via: HTTP/1.1 ab-d-klt-tom1
Expires: Wed, 08 Feb 2017 07:35:29 GMT
Content-Type: application/x-javascript
Transfer-Encoding: chunked
Content-Encoding: gzip
Vary: Accept-Encoding
X-FRAME-OPTIONS: SAMEORIGIN
X-Powered-By: Servlet/3.0
X-UA-Compatible: IE=edge
Server: Apache
이 외에도에서 나는 또한 운없이 설명
here로 ExpiresFilter을 시도합니다.
EDIT : Tomcat 및 SSL이없는 Windows 환경에 배포하면 내 브라우저의 모든 파일이 성공적으로 캐싱됩니다.
그러나 Tomcat이있는 Linux 환경에서 앱을 배포하면 SSL은 파일을 캐싱하지 않습니다. SSL로 인해 발생 했습니까?
는 당신이 우리 HTTP를 브라우저에 의해 캐시되지 않은 자원의 요청 헤더를 보여줄 수 : 자세한 내용은
는 아래 크롬 문제를 확인? –
@LeonidVasilyev 위의 게시물을 편집했습니다. SSL로 인해이 문제가 발생할 수 있습니까? 다음과 같이 –
요청 헤더는 다음과 같습니다 GET /html/en/default/***.css HTTP/1.1 호스트 : 10.62.137.70 연결 : 연결 유지 사용자 에이전트 : 모질라/5.0 (윈도우 NT 6.1; WOW64) AppleWebKit/537.36 (Gecko와 같은 KHTML) Chrome/55.0.2883.87 Safari/537.36 수락 : text/css, */*; q = 0.1 참조 : *** 수락 인코딩 : gzip, deflate, sdch, br 수락 언어 : ko, ko, ko = 0.8 쿠키 : _ga = GA1.1.794081272.1485321205; _gat = 1; JSESSIONID = *** –