공유 프록시 캐시에서 Vary: * 가 의미하는 것
Vary: * 가 있는 저장된 응답이 일반적인 공유 캐시 선택으로 이후 요청과 일치할 수 없는 이유를 이해합니다.
Vary: * 를 포함한 저장된 응답은 항상 일반 Vary 일치 검사에서 실패합니다. 프록시는 URL과 보이는 헤더가 비슷해 보인다는 이유만으로 이후 요청이 같은 표현을 받을 자격이 있다고 결론 내릴 수 없습니다.
이와 다음을 비교해 보세요.
Vary: Accept-Encoding
이것은 캐시가 비교할 수 있는 요청 필드를 지목합니다. 와일드카드는 이런 헤더 비교로는 충분하지 않다고 말합니다. 신선도나 캐시 크기를 늘려도 빠진 선택 정보는 채워지지 않습니다.
구분은 저장과 재사용 사이에 있습니다. 캐시는 검증에 유용한 정보를 보관할 수 있지만, 저장된 와일드카드 변형은 다음 요청을 만족시킬 수 있는 정상적인 일치 응답이 되지 않습니다. 보통 프록시는 대신 원본 서버에 연락해야 합니다.
응답 정책이 애플리케이션을 설명하게 하라
원본 서버를 관리하고 표현이 정말로 식별 가능한 요청 헤더에만 따라 달라진다면 그 필드를 정확히 지정하세요. 그 예시가 캐시 가능하다는 이유만으로 와일드카드를 Accept-Encoding으로 바꾸지 마세요. 애플리케이션은 언어, 인증 또는 그 헤더 밖의 정보에 따라 달라질 수도 있습니다.
콘텐츠가 비공개이거나 저장되어서는 안 된다면 해당 캐시 정책으로 그것을 표현하세요. Vary를 제거한다고 개인화된 콘텐츠가 공유하기에 안전해지는 것은 아닙니다.
Squid의 vary_ignore_expire 설정은 다양한 응답의 만료 처리와 역사적 HTTP 동작에 관한 것입니다. 와일드카드를 일치시키는 스위치가 아닙니다.