본문 바로가기

StoreHouse/Java

Java 동적 내용의 캐싱 방지

동적 내용의 캐싱 방지
웹 브라우저 및 프록시 서버가 동적으로 생성된 웹 페이지(즉, JSP 파일과 Servlet의 처리로 인해 발생한 동적 출력)를 캐싱하지 않도록 방지하려면, 다음 코드를 사용하여 HTTP 응답에 헤더를 설정하십시오.
response.setHeader("Pragma", "No-cache");
response.setDateHeader("Expires", 0);
response.setHeader("Cache-Control", "no-cache");
HTTP 헤더를 설정하는 것은 태그에 해당하는 것들을 사용하여 브라우저 캐싱을 제어하는 방법에 비해 더 효과적입니다. 예를 들어, 는 첫 번째 HTTP 헤더 설정과 같습니다. 다음과 같은 이유에서 HTTP 헤더를 설정하는 것이 좋습니다.
일부 브라우저는 태그를 동등한 HTTP 헤더 설정과 같은 방식으로 처리합니다.
일부 브라우저의 경우, callPage() 메소드를 사용하여 태그가 들어 있는 JSP 파일을 로드할 때 태그가 작동하지 않습니다.
페이지가 캐싱되도록 하되 프록시 서버에서 여러 사용자가 캐싱된 페이지에 액세스하지 못하도록 하려는 경우가 있을 수 있습니다. 예를 들어, 사용자 Servlet이 세션 추적을 사용하지 않지만 사용자 입력이 들어 있는 웹 페이지를 생성하는 경우, 개인 정보를 유지하려면, 다른 사용자가 캐싱된 페이지에 액세스하지 못하도록 해야 할 것입니다. 포록시 서버가 캐싱된 페이지를 공유하지 못하도록 하려면, 다음 코드를 사용하십시오.

response.setHeader("Cache-Control", "private");
캐싱을 방지하기 위해 이 헤더를 세 가지 권장 헤더와 결합할 수 있습니다.