-
캐시와 조건부 요청 헤더cs/HTTP 2023. 12. 2. 20:55
캐시 제어 헤더
- Cache-Control: 캐시 제어
- Pragma: 캐시 제어(하위 호환)
- Expires: 캐시 유효 기간(하위 호환)
Cache-Control 캐시 제어
- Cache-Control: max-age
- 캐시 유효 시간, 초 단위
- Cache-Control: no-cache
- 데이터는 캐시해도 되지만, 항상 원(origin) 서버에 검증하고 사용
- Cache-Control: no-store
- 데이터에 민감한 정보가 있으므로 저장하면 안됨
(메모리에서 사용하고 최대한 빨리 삭제)
원서버란, 이전에도 말했듯이 서버가 하나만 존재하는 것이 아니라 여러개의 노드처럼 구성되어 있을 수도 있다
중간에 캐시 서버에서 캐시를 하는 등의 역할이 나뉘어져 있는데,
no-cache가 붙을 경우 반드시 원서버에 가서 검증을 해야한다는 뜻이다
이는 다음 내용인 프록시 캐시에서 더욱 자세하게 다룬다고 한다
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와 함께 사용하면 Expired는 무시
정리
검증 헤더와 조건부 요청 해더
- 검증 헤더 (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 값 사용