Network - HTTP Header Proxy Cache

iseon_u·2022년 6월 25일
0

Network

목록 보기
31/31
post-thumbnail

HTTP Header Proxy Cache


원 서버 직접 접근

origin 서버

  • 원서버에서 직접 데이터를 가져오기 때문에 비교적 느리다.

프록시 캐시 도입

  • 프록시 캐시 서버에서 데이터를 가져오기 때문에 빠르다.

Cache-Control

캐시 지시어 (directives)

  • Cache-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 하위 호환

캐시 지시어 (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 기본 동작

no-cache

  • 원 서버에 접근할 수 없는 경우 서버 설정에 따라서 캐시 데이터를 반환할 수 있다.
  • Error or 200 OK

must-revalidate

  • 원 서버에 접근할 수 없는 경우 항상 오류가 발생해야 한다.
  • 504 Gateway Timeout
profile
🧑🏻‍💻 Hello World!

0개의 댓글