본문 바로가기
네트워크/HTTP

[HTTP] HTTP 헤더 - 프록시 캐시와 캐시 무효화

by drCode 2022. 8. 18.
728x90
반응형

원 서버 직접 접근

origin 서버

프록시 캐시 도입

첫 번째 요청

Cache-Control

캐시 지시어(directives) - 기타

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

 

캐시 무효화

이 페이지는 캐시가 되면 안된다! 싶을 때 아래 것을 넣어야 함

 

Cache-Control

확실한 캐시 무효화 응답

  • Cache-Control: no-cache, no-store, must-revalidate
  • Pragma: no-cache
    • HTTP 1.0 하위 호환

※ 웹브라우저들이 Get요청인 경우 임의로 캐시에 데이터를 넣는다고 함

 

캐시 지시어(directives) - 확실한 캐시 무효화

  • 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 vs must-revalidate

no-cache 기본 동작

must-revalidate

 

728x90
반응형

댓글