캐시가 운영체제의 cache 그 느낌임. 없으면 매번 가져오고 느리겠지.

아래처럼 cache-control: max-age=60 으로 캐시에 저장하게끔 할 수 있음. 그럼 클라의 다음 GET요청은 cache에서 가져옴.

image.png

그래서 웹브라우저 들어갔던 곳 들어가면 굉장히 빨리 열림.

캐시 만료후에도 서버에서 데이터를 변경하지 않았다면?(즉 캐시가 만료되었다는 이유만으로 서버에서 같은 내용을 또 가져올 필요는 없다!)

데이터를 또 전송하는 대신에 저장해 두었던 캐시를 재사용 할 수 있다.

단 클라이언트의 데이터와 서버의 데이터가 같다는 사실을 확인할 수 있는 방법 필요.

그래서 나온 것이 검증헤더 : 캐시 데이터와 서버 데이터가 같은지 검증하는 데이터

아래 사진 보면 마지막 수정 시간(Last-Modified)를 헤더에 추가하고 있다!

image.png

두번째 GET요청에서 if-modified-since로 이전에 서버에서 받은 마지막 리소스 수정시간을 서버에게 알려주고, 서버에게 “이 시간 이후에 수정된 것들이 있으면 줘” 라고 요청. 바뀌지 않았으면 304 Not Modified