8.3 프록시 캐시, 캐시 무효화

dd_ddong·2023년 7월 6일
0

HTTP 웹 기본 지식

목록 보기
21/21

원 서버 직접 접근

orgin 서버

  • 직접 접근 시 응답속도가 너무 느리다 -> 머니까

프록시 캐시 서버 도입

  • 응답 시간 빨라짐
  • 처음 데이터에 접근하는 클라이언트는 응답 느릴 수 있다 -> 아직 캐시 되지 않았으니까

Cache-Control

캐시 지시어(directives) - 기타

  • 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 -> 다 넣어야함!
    • no-cache : 캐시해도 되지만 원 서버에 검증하고 사용
    • no-store : 민감한 정보 있으므로 저장하면 안됨
    • must-revalidate : 캐시 만료 후 최초 조회시 원 서버에 검증해야한다. 캐시 유효 시간이면 캐시를 사용한다.
  • Pragma: no-cache
    • HTTP 1.0 하위호환

must-revalidate 사용 이유

no-cache 면 다 검증하는 거 아닌가??

  • no-cache의 기본 동작
  • 원 서버 검증 계속 한다

no-cache의 경우

  • 원서버와의 네트워크 오류 시
  • 프록시 서버에서 Error or 200 OK를 보낸다 -> 오래된 데이터라도 보내주자
  • 원서버 접근 없지만 오류 안날 수도...

must-revalidate

  • 원 서버와의 네트워크 오류 시
  • 원 서버에 접근할 수 없는 경우 항상 오류가 발생한다!
  • 돈 관련된 정보같은 중요한 정보인 경우

0개의 댓글