프록시 캐시
-
원 서버가 미국에 있을 경우 느리기 때문에 한국 어딘가에 프록시 캐시 서버를 두고, 해당 서버를 거쳐서 올 수 있도록 한다.
-
그러면 웹브라우저가 프록시 캐시 서버에 접근하게 된다.
-
응답 시간이 훨씬 빨라진다.
-
프록시 캐시는 public, 로컬 캐시는 private
캐시 지시어
Cache-Control: 이런식으로 사용한다.
- private: 응답이 해당 사용자만을 위한 것이므로 로컬에만 저장되어야 한다.
- public: 응답이 public 캐시에 저장되어도 된다.
- s-maxage: 프록시 캐시에만 적용되는 max-age이다.
캐시 무효화
- Cache-Control 캐시 지시어: no-cache,no-store,must-revaildate 필수
- no-cache: 항상 원 서버에 검증하고 사용해야 한다.
- no-store: 데이터에 민감한 정보가 있으므로 저장하면 안된다. 메모리에서 사용하고 최대한 빨리 삭제해야 한다.
- must-revalidate:
- 캐시 만료 후에 최초 조회 시 원 서버에 검증해야한다. 원 서버 접근 실패 시에 반듯이 504 타임아웃 오류가 발생해야 한다.
- no cache는 프록시 캐시 서버로 가는데, 원 서버에 요청을 하고 원 서버에서 검증을 하게 된다. 304 not modified로 응답을 하게 된다. 순간적으로 네트워크 단절되어 원 서버 접근이 불가능할 경우, 프록시 캐시에서 오류보다도 오래된 데이터로 보여주도록 세팅을 하게 되면 그렇게도 가능하게 정책이 되어 있다.
- must-revalidate: 네트워크 단절되어 원 서버 접근 불가능한 경우 항상 오류가 발생되어 504 오류가 발생해야 한다.
- Pragma: no-cache, 과거 브라우저 HTTP 1.0 하위 호환이 가능하다.