반응형
밑에 설정들은 캐시 방지용이지 기존에 있던 캐시를 삭제하는 기능은 아니다.
기존에 있던 캐시를 무시하는건 쿼리스트링에 ver을 넣어 호출하는 방법이 있다.
(이렇게 하면 스크립트 버전을 관리해야하기 때문에 불편해질수 있다.)
HTML 파일에 설정 :
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" /> |
JSP 파일에 설정 :
<% response.setHeader("Cache-Control","no-store"); response.setHeader("Pragma","no-cache"); response.setDateHeader("Expires",0); if (request.getProtocol().equals("HTTP/1.1")) response.setHeader("Cache-Control", "no-cache"); %> |
Spring MVC Controller methods 설정 :
@Controller public class TheController { @RequestMapping(value = "/test") public String handle1 (HttpServletResponse response) { response.setHeader(HttpHeaders.CACHE_CONTROL, "no-cache, no-store, max-age=0, must-revalidate"); return "myView"; } } |
Spring MVC WebContentInterceptor 설정 :
밑에 설정은 잘 안되는 듯하다?? 테스트 필요 <mvc:interceptors> <beans:bean id="webContentInterceptor" class="org.springframework.web.servlet.mvc.WebContentInterceptor"> <beans:property name="cacheSeconds" value="0" /> <beans:property name="useExpiresHeader" value="true" /> <beans:property name="useCacheControlHeader" value="true" /> <beans:property name="useCacheControlNoStore" value="true" /> </beans:bean> </mvc:interceptors> 또는… // interceptor 에 등록 @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(webContentInterceptor()); } // webContentInterceptor bean 등록 @Bean public WebContentInterceptor webContentInterceptor() { WebContentInterceptor webContentInterceptor = new WebContentInterceptor(); webContentInterceptor.addCacheMapping(CacheControl.noStore().noCache().mustRevalidate(), "/api/**"); return webContentInterceptor; } // Filter에 등록 // =>> 필터에 등록하는걸 추천. js나 css는 interceptor까지 호출이 안되는 듯하다. //예제는 밑에 첨부한다. response.setHeader(HttpHeaders.CACHE_CONTROL, "no-cache, no-store, max-age=0, must-revalidate"); |
위 설정들이 잘 됐는지 확인은 브라우저 디버깅모드에서 response 헤더에
Cache-Control(Http 1.1인경우) 또는 Pragma(Http 1.0인경우) 확인
만약을 위해 둘다 설정 추천.
참고사이트 : https://jookting.tistory.com/m/79
반응형
'웹개발 > 기타' 카테고리의 다른 글
spring modleAndView 404 OR tomcat 404 페이지를 못찾는 경우. (0) | 2022.11.24 |
---|---|
네이버 (웹에디터) 스마트 에디터 (0) | 2022.11.23 |
이클립스에서 변경된 소스 자동으로 refresh 하기 (0) | 2022.10.17 |
Spring + MyBatis 쿼리 수정 시 재 시작 없이 반영하기 (0) | 2022.07.26 |
쿠키의 보안 취약점 (0) | 2022.02.18 |
댓글