모든 개발자를 위한 HTTP 웹 기본 지식

Ch08. HTTP 헤더(캐시와 조건부 요청) - 캐시 무효화

webmaster 2022. 2. 28. 12:52
728x90
  • 확실한 캐시 무효화 응답
  • 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 VS must-revalidate

  • No-cache
  • 기본동작

정상 동작

  • 프락시 캐시 - 원서버 네트워크 단절

프록시 캐시 - 원서버 네트워크 오류

  • 프락시 서버에 오래된 데이터라도 보여주는 설정을 할 수 있다.
  • must-revalidate
  • 장애 발생

원 서버에 접근할 수 없을경우 항상 오류가 발생해야한다.

  • 프락시 캐시에 있는 옛날 데이터를 보여주면 안 된다.
  • 무조건 원서버에 접근할 수 없다면 항상 오류가 발생해야 한다.
728x90