확실하게 캐시를 무효화 하려면??
- cache 설정안하면, cache 저장 안되는거 아닌가요???……..
아니다
캐시를 따로 저장하지 않아도, 브라우저들이 get요청으로 보내온것을 임의로 cache를 해버린다.
- 만약 이 페이지는 절대로 캐시가 되면 안돼! 라고 했을때 정보를 넣어줘야한다. (현재 사용자의 통장잔고 등)
- Cache-Control : no-cache, no-store, must-revalidate
- Pragma : no-Cache 이렇게 까지 넣어주면 된다.
- 이 정보들을 넣어준다.
- 아니……
Cache-Control : no-cache
도 원서버에 어차피 검증을 해야하는 건데, Cache-Control : must-revalidate
는 왜 있는거지? 라고 생각이 들 수도 있다.
no-cache VS Must-revalidate
- no-cache일때
- 클라이언트에서 no-cache옵션과 ETag를 요청헤더에 전송
- 프록시 캐시서버에서 no-cache옵션을 확인후 이것은 원서버까지 가야한다고 판단.
- 원서버까지 가서 검증후 응답
만약 no-cache를 받고 프록시 캐시 서버에서 원 서버로 요청을 하는데, 순간 네트워크 단절 된다면??
- 프록시 캐시 서버에서 오류가 나는것보다 오래된 데이터를 보여주는게 낫다고 판단하여,
must-revalidtae Option일때
- must-revalidate 옵션을 주고 프록시 캐시 서버에서 받아서 원서버로 요청을 하는데 순간 네트워크 단절이 된다면 프록시 캐시서버에서
504 Gateway Timeout
을 응답한다.