원 서버 직접 접근
orgin 서버
- 직접 접근 시 응답속도가 너무 느리다 -> 머니까
프록시 캐시 서버 도입
- 응답 시간 빨라짐
- 처음 데이터에 접근하는 클라이언트는 응답 느릴 수 있다 -> 아직 캐시 되지 않았으니까
Cache-Control
캐시 지시어(directives) - 기타
- Cache-Control: public
- Cache-Control: private
- 응답이 해당 사용자만을 위한 것임, private 캐시에 저장해야 함(기본값)
- Cache-Control: s-maxage
- Age: 60(HTTP 헤더)
- 오리진 서버에서 응답 후 프록시 캐시 내에 머문 시간(초)
캐시 무효화
확실한 캐시 무효화 응답
- Cache-Control: no-cache, no-store, must-revalidate -> 다 넣어야함!
- no-cache : 캐시해도 되지만 원 서버에 검증하고 사용
- no-store : 민감한 정보 있으므로 저장하면 안됨
- must-revalidate : 캐시 만료 후 최초 조회시 원 서버에 검증해야한다. 캐시 유효 시간이면 캐시를 사용한다.
- Pragma: no-cache
must-revalidate 사용 이유
no-cache 면 다 검증하는 거 아닌가??
- no-cache의 기본 동작
- 원 서버 검증 계속 한다
no-cache의 경우
- 원서버와의 네트워크 오류 시
- 프록시 서버에서 Error or 200 OK를 보낸다 -> 오래된 데이터라도 보내주자
- 원서버 접근 없지만 오류 안날 수도...
must-revalidate
- 원 서버와의 네트워크 오류 시
- 원 서버에 접근할 수 없는 경우 항상 오류가 발생한다!
- 돈 관련된 정보같은 중요한 정보인 경우