캐시와 조건부 요청 헤더, 프록시 캐시, 캐시 무효화

gotcha!!·2023년 8월 28일
0

HTTP

목록 보기
27/29

Cache-Control(캐시 제어)

  • Cache-Control: max-age
    캐시 유효 시간, 초 단위

  • Cache-Control: no-cache
    데이터는 캐시해도 되지만, 항상 원(origin)서버에 검증하고 사용
    이 말은 중간에 있는 프록시 캐시에서 캐시를 검증하는 것이 아닌 원서버에서 검증하란 뜻

  • Cache-Control: no-store
    데이터에 민감한 정보가 있으므로 저장하면 안됨

검증 헤더와 조건부 요청 헤더

  • 검증 헤더(Validator)
    ETag:"v1.0", Etag:"asid93jkrh2l"
    Last-Modified: Thu, 04 Jun 2020 07:19:24 GMT
  • 조건부 요청 헤더
    If-Match, If-None-Match: ETag 값 사용
    If-Modified-Since, If-Unmodified-Since: Last-Modified 값 사용

프록시 캐시

  • Cache-Control: public
    응답이 public 캐시에 저장됨
  • Cache-Control: private
    응답이 해당 사용자만을 위한 것, private 캐시에 저장(기본값)
  • Cache-Control:s-maxage
    프록시 캐시에만 적용되는 max-age
  • Age: 60(HTTP 헤더)
    오리진 서버에서 응답 후 프록시 캐시 내에 머문 시간(초)

캐시 무효화

절대로 캐시가 되면 안되는 화면 같은 경우..

  • Cache-Control:no-cache, no-store, must-revalidate
  • Pragma:no-cache
    HTTP 1.0 하위 호환
    을 넣어준다.
  • Cache-Control: no-cache
    데이터는 캐시해도 되지만, 항상 원 서버에 검증하고 사용
  • Cache-Control: no-store
    데이터에 민감한 정보가 있으므로 저장하면 안됨
  • Cache-Control: must-revalidate
    캐시 만료 후 최초 조회시 원 서버에 검증해야함
    원 서버 접근 실패시 반드시 오류가 발생해야함 : 504(Gateway Timeout)
    must-revalidate는 캐시 유효시간이라면 캐시를 사용함
  • Pragma:no-cache
    HTTP 1.0 하위 호환

no-cache, must-revalidate

no-cache 기본 동작

must-revalidate

profile
ha lee :)

0개의 댓글