
모든 개발자를 위한 HTTP 웹 기본 지식 강의 수강 후, 정리한 글입니다.
캐시(cache)는 데이터나 값을 미리 복사해 놓는 임시 장소다. 캐시에 데이터를 복사해놓으면 데이터 계산이나 접근 시간없이 빠른 속도로 데이터에 접근할 수 있다.
아래 사진은 캐시를 사용하지 않을 때, 요청과 응답이다. star.jpg 크기를 1.1M으로 가정하면, 서버는 HTTP 헤더(0.1M) + HTTP 바디(1.0M) = 1.1M을 보내고 클라이언트는 이 데이터를 다운받는다.

이 과정은 요청을 한 번 하든, 두 번하든, 횟수에 상관없이 매번 똑같은 과정이 이루어진다. 그래서 다음과 같은 단점이 있다.
cache-control은 캐시가 유효한 시간(초)으로 클라이언트가 응답을 받은 시점부터 max-age 시간(초)동안 캐시가 유효함을 설정하는 헤더이다.
캐시 유효시간을 60초로 설정하여 서버가 응답을 보내내면, 웹 브라우저가 응답받은 데이터를 브라우저 캐시에 저장한다.

다시 start.jpg가 필요하면, 캐시를 먼저 확인하여 캐시 유효 시간을 검증한다. 유효한 데이터라면, 캐시에서 조회하여 사용한다.

만약 캐시를 먼저 확인하였을 때, 유효 시간이 초과되었다면? 서버에 요청하고, 데이터를 응답받아서 처음 요청한 것처럼 캐시에 데이터를 저장한다.
