13.1.1 Cache Correctness

올바른 캐시는 다음 조건 중 하나를 충족하는 요청(섹션 13.2.5, 13.2.6 및 13.12 참조)에 적합한 캐시가 보유한 가장 최신 응답으로 요청에 응답해야 합니다.

  1. It has been checked for equivalence with what the origin server would have returned by revalidating the response with the origin server (section 13.3);
  2. It is "fresh enough" (seesection 13.2). 기본적으로 클라이언트, 원본 서버, 캐쉬의 least restrictive freshness requirement를 만족해야 한다(seesection 14.9); if the origin server so specifies, it is the freshness requirement of the origin server alone.

저장된 응답이 클라이언트와 원본 서버 모두의 가장 제한적인 신선도 요구 사항에 의해 "fresh enougn"하지 않은 경우 캐시는 여전히 적절한 경고 헤더와 함께 응답을 반환할 수 있습니다(섹션 13.1.5 및 14.46 참조). 이러한 응답이 금지되지 않는다면 (예: "no-store" 캐시 지시문 또는 "no-cache" 캐시 요청 지시문에 의해, 섹션 14.9 참조). 3. It is an appropriate 304 (Not Modified), 305 (Proxy Redirect), or error (4xx or 5xx) response message.

13.1.2 Warnings

캐시가 first-hand 도 아니고 "fresh enougn" 도 아닐 경우, 응답을 반환할 때마다(섹션 13.1.1의 조건 2에서) Warning general header를 사용하여 해당 효과에 경고를 첨부해야 합니다.

Warning headerthe currently defined warnings는 섹션 14.46에 설명되어 있다. 이 경고를 통해 클라이언트는 적절한 조치를 취할 수 있습니다.

warningcache-related와 그렇지 않은 다른 것 애도 사용될 수 있습니다. 오류 상태 코드(error status code)가 아닌 warning를 사용하면 이러한 응답을 실제 실패와 구분할 수 있습니다.

warning code 형식

첫번째 자리: (revalidation 이 성공한 이후)저장된 cache로부터 warning 이 삭제되어야 하는지

1xx : 응답의 freshness 또는 revalidation status 나타내는 코드로 반드시 삭제되어야 한다. 캐시된 항목의 유효성을 검사할 때만 캐시에 의해 생성되며, 클라이언트에서는 생성하면 안 된다.

2xx: 재검증에 의해 수정되지 않고(예: entity bodies의 손실 압축) 성공적인 재검증 후에 삭제되어서는 안 되는 entity body 또는 entity header의 일부 측면을 설명하는 경고입니다.

코드 정의 참고 (섹션 14.46)