책 REST practice을 읽고 캐시에서 웹 스케일 아웃 기본에 대해 더 잘 이해하십시오. 하지만 스프링 부트 프로젝트에 http 캐시 컨트롤을 추가하려고하면 캐시 컨트롤에 특별한 것이 없다는 것을 발견했습니다. 내가 가진 유일한 리소스는 ResponseEntity : javadoc입니다. ETag에서 가장 유용한 기사는 http://www.baeldung.com/etags-for-rest-with-spring입니다.왜 Spring MVC에서 http 캐시 제어가 제대로 지원되지 않습니까?
이렇게하면 혼란 스럽습니다 ... 캐시 컨트롤이 정말 좋은 이유는 Etag 생성 및 캐시 제어 리소스를 거의 지원하지 않는 이유입니다. 아니면 지금 가장 좋은 방법이 아닐까요?
는 지금 내 구현은 다음과 같습니다
@RestController
public class Api {
@GetMapping("/with-cache")
public ResponseEntity cache() throws InterruptedException {
HttpHeaders httpHeaders = new HttpHeaders();
httpHeaders.setCacheControl("max-age=3600");
httpHeaders.setETag("\"3Rstthw\"");
Thread.sleep(1000);
return new ResponseEntity<>("Hello", httpHeaders, HttpStatus.OK);
}
}
은 매우 우아하지 보인다. 희망이 어떤 사람이 대답을 줄 수 있습니다.
"이유"가 중요합니까? 참고로 Q & A 사이트이며 토론 게시판이 아닙니다. –
"더 나은"지원은 무엇이라고 생각하십니까? --- etags는 "생성되지"않습니다. 문제의 리소스 버전 *을 나타냅니다. 예 : 이것은 [Wikipedia] (https://en.wikipedia.org/wiki/HTTP_ETag)가 다음과 같이 구는 방법입니다. * ETag는 URL에서 발견 된 리소스의 특정 버전에 웹 서버에 의해 할당 된 불투명 식별자입니다. *. 해당 URL의 리소스 표현이 변경되면, 새롭고 다른 ETag가 할당됩니다. * Spring은 응답의 페이로드가 어디서 왔는지 알지 못하기 때문에 Spring은 그 페이로드의 버전을 어떻게 알 수 있습니까? – Andreas