캐시와 조건부 요청 헤더 (정리)

이경영·2022년 9월 29일
0

HTTP

목록 보기
13/14

캐시 제어 헤더

  • Cache-Control : 캐시 제어
  • Pragma : 캐시 제어(하위 호환)
  • Expires : 캐시 유효기간(하위 호환)

Cache-Control (제일 중요💕)

: 캐시 지시어

  • Cache-Control:Max-age
    • 캐시 유효 시간, 초단위
  • Cache-Control:no-cache
    • 데이터는 캐시해도 되지만, 항상 원(origin) 서버에 검증하고 사용
      (: 캐시를 쓰기전에 if modified since나 조건부 요청을 통해
      파일이 바뀌었는지 여부를 검증하고 사용하라는 뜻)
      (:원서버라는 단어 사용하는 이유 : 눈에 보이지 않지만 캐시 프록시 서버라는것을 거쳐서 메인 서버에 도달하기 때문에)
  • Cache-Control:no-store
    • 데이터에 민감한 정보가 있으므로 저장하면 안됨.
      (메모리에서 사용하고 최대한 빨리 삭제)

Pragma 캐시제어(하위호환)

  • Pragma : no-cache
  • HTTP 1.0 하위호환

Expires 캐시 만료일 지정(하위 호환)

  • expires : Mon, 01 Jan 1990 00:00:00 GMT
    : 초단위로 설정하는게 훨씬 유연함
  • 캐시 만료일을 정확한 날짜로 지정
  • HTTP 1.0부터 사용
  • 지금은 더 유연한 Cache-Control:max-age 권장
  • Cache-Control : max-age와 함께 사용하면 Expires는 무시됨.

(정리) 검증 헤더 (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 값 사용

profile
꾸준히

0개의 댓글