스프링 부트 1.0.2를 사용하여 REST 서버를 구현했습니다. HTTP 캐싱을 사용하지 못하게하는 HTTP 헤더를 설정하지 못하게하는 데 문제가 있습니다.스프링 부트에서 HTTP 응답 캐싱을 사용하는 방법
내 컨트롤러는 다음과 같습니다 :
@Controller
public class MyRestController {
@RequestMapping(value = "/someUrl", method = RequestMethod.GET)
public @ResponseBody ResponseEntity<String> myMethod(
HttpServletResponse httpResponse) throws SQLException {
return new ResponseEntity<String>("{}", HttpStatus.OK);
}
}
모든 HTTP 응답은 다음과 같은 헤더가 포함되어
-
: 나는 그 헤더를 제거하거나 변경하려면 다음을 시도했습니다
- 컨트롤러에서
setCacheSeconds(-1)
으로 전화하십시오. - 컨트롤러의
httpResponse.setHeader("Cache-Control", "max-age=123")
으로 전화하십시오. setCacheSeconds(-1)
에 대해WebContentInterceptor
을 반환하는@Bean
을 정의하십시오.- 속성을
spring.resources.cache-period
으로 설정하거나 -1을 양수로 설정하면application.properties
이됩니다.
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Expires: 0
Pragma: no-cache
을
위의 것들 중 아무 것도 영향을 미치지 않았습니다. Spring Boot의 모든 요청이나 개별 요청에 대해 어떻게 헤더를 비활성화하거나 변경합니까?
나는 생각하지 않는다 봄 부트는 않습니다 (어쨌든 시도한 샘플 중 하나에 포함되지 않음). 응답에 이러한 헤더가있는 최소한의 프로젝트를 공유 할 수 있습니까? –
당신이 옳습니다. 범인은 봄 보안으로 밝혀졌습니다. –