서버에서 기존 데이터를 변경하지 않음
클라이언트의 데이터와 서버의 데이터가 같다는 사실을 확인 할 수 있는 방법 필요
만약 캐시 시간이 초과가 안되면 브라우저 캐시에서 갖고 온다.
캐시 시간이 초과된다면 위 사진과 같이 요청을해서 서버의 데이터 최종 수정일과 같다면 수정이 안되었기 때문에 밑의 사진처럼 클라이언트에게 전송한다.
이때 body부분이 없기에 서버에서 보낼 데이터의 용량이 작다.
클라이언트는 캐시에 저장되어있는 데이터 재활용
Last-Modified, If-Modified-Since는 1초 미만 단위로 캐시조정이 불가능
같은 데이터를 수정해서 날짜가 다르지만 결과물은 같아도 다른 데이터로 취급 받음
주석과 같은 영향이 없는 캐시를 유지하고 싶은 경우에 문제가 있음
이를 보완하기 위해 ETag(Hash를 이용)를 사용
단순하게 ETag만 보내서 같으면 유지, 다르면 다시 다운
캐시 제어 로직을 서버에서 완전히 관리
클라이언트는 단순히 이 값을 서버에 제공(캐시 메커니즘 모름)
origin server
Cache-Control: no-cache
Cache-Control: must-revalidate
no-cache
must-revalidate
*참고) 김영한님의 강의자료