HTTP에서 보이는 공유 캐시를 거치는 이미지 응답에는 명시적인 수명과 검증자를 게시합니다. 이미지를 사용자 간에 재사용해도 안전할 때의 예시 응답 헤더는 다음과 같습니다.

Cache-Control: public, max-age=604800
ETag: "image-v4"

수명은 초 단위이며 604800은 일주일입니다. public은 사용자 간 재사용을 목적으로 한 콘텐츠에만 사용합니다.

브라우저와 공유 프록시가 서로 다른 수명을 필요로 하면 s-maxage가 공유 캐시의 수명을 지정합니다. 예를 들어 max-age=3600과 s-maxage=604800을 함께 쓰면 공유 캐시에 더 긴 신선도 기간이 주어집니다.

Expires는 기간이 아니라 날짜입니다

Expires는 HTTP 날짜 형식의 타임스탬프를 받습니다. max-age는 그 필드를 덮어쓰고, 공유 캐시에서는 s-maxage가 우선합니다. 응답을 생성할 때 임의의 Expires 날짜를 생성하십시오.

새로고침은 검증을 요청할 수 있습니다

Cache-Control: no-cache를 포함한 요청 은 저장된 응답을 재사용하기 전에 원본에서의 성공적인 검증을 요구합니다. 이는 응답의 일반적인 신선도 정책이 다른 경우 재사용을 허용하더라도 발생할 수 있습니다.

검증자는 캐시가 변경되지 않은 이미지를 효율적으로 확인하게 해 줍니다. 304 응답은 원본에서 이미지 바이트를 다시 전송하지 않고 저장된 표현을 확인할 수 있습니다. 따라서 원본으로 향하는 트래픽 자체가 캐시된 객체가 폐기되었음을 뜻하지는 않습니다.

정책을 검토할 때 일반적인 재사용과 명시적인 새로고침을 비교하십시오.

관련 글