HTTP 캐시
- 특정 요청에 대한 응답을 저장해두어 재사용하는 것
- 서버까지 도달하지 않아도 클라이언트가 빠르게 응답을 받을 수 있음
- 캐시를 저장할 때는 URL 을 기준으로 저장함
- 기본적으로 GET method 에 한해서 캐싱함
HTTP 캐시 종류
private cache
- 사용자의 웹 브라우저에 존재
- 개인 브라우저에 내장되어 있기 때문에 다른 사용자는 접근 불가능
- 사용자의 개인화된 캐시를 저장할 수 있음
Authorization
****헤더에 있는 내용은 캐싱되지 않음
shared cache
- proxy
- 중계자 역할
- 클라이언트와 서버 사이에서 HTTP 메시지를 전달해주는 역할을 함
- 개발자가 직접 제어할 수는 없음
- http header 에 어떻게 관리하라고 설정하는 방법밖에 없음
- managed
캐시 유효기간
Date
: 응답 메시지를 생성한 시간
Cache-Control
: 캐싱된 정보가 유효한 기간
- 예) 604800 초(일주일)만큼까지 유효함
fresh
: 유효기간 내에 속해있는 메시지
stale
: 유효기간이 지난 메시지
Expires
: 응답 메시지가 더이상 유효하지 않다고 처리해야 하는 시간을 의미
재검증
- 유효기간이 지난 캐시를 다시 사용해도 되는지 서버에 확인하는 작업
- 오래된 정보를 갱신해야 하는지 확인하는 작업
- 유효성 검증(validation) 또는 재검증(revalidation)
- 조건부 요청(conditional request)
- If-Modified-Since : 유효기간이 지났는데 갱신해야 하는지 확인하는 방법
- ETag/If-None-Match :
ETag
를 이용하여 갱신해도 되는지 확인하는 방법