현대 HTTP 규칙에서 쿼리 문자열이 응답을 캐시할 수 없게 만들지는 않습니다. /catalog?page=2 같은 공개 리소스는 의도한 신선도를 직접 명시할 수 있습니다.

Cache-Control: public, max-age=60

이것은 공개 콘텐츠를 위한 예시 정책입니다. 응답은 여전히 다른 캐시 가능성 요구 사항을 충족해야 합니다. 개인화된 결과는 프록시 운영자가 더 나은 적중률을 원한다는 이유만으로 공유 캐시를 얻어서는 안 됩니다.

쿼리는 캐시 키에 사용되는 대상 URI의 일부로 남습니다. 페이지 2와 페이지 3은 서로 다른 요청입니다. URL이 비슷해 보이도록 쿼리를 제거하면 한 결과를 다른 결과 대신 제공할 수 있지만, 결과가 동등해지는 것은 아닙니다.

쿼리 URL에 대한 휴리스틱 신선도에 관한 HTTP의 오래된 제한은 구현이 부실하다고 밝혀진 후 제거되었습니다. 명시적 신선도는 캐시의 추측에 의존하지 않게 하며, 로컬 프록시 규칙은 특정 URL을 여전히 제외할 수 있습니다.

일반적인 HTTPS CONNECT 트래픽은 리소스와 그 캐시 정책을 TLS 내부에 둡니다. 터널링 포워드 프록시는 URL이 쿼리를 사용한다는 이유만으로 해당 페이지에 대한 객체 캐시를 얻지 않습니다.

관련 글