웹 캐시(Web-cache)는 웹에서 사용하는 캐시를 뜻한다. 캐시가 뭘까?
캐시란? 데이터나 값을 미리 복사해두어 사용하는 장소를 뜻한다. 어떤 값을 다시 계산하는 시간을 줄이기 위해 캐시를 사용한다. - https://ko.wikipedia.org/wiki/캐시
캐시가 된 리소스는 서버에 해당 리소스를 요청하지 않고 캐싱된 리소스를 사용한다. 이러한 웹 캐시는 주로 서버의 부하를 줄이기 위해 사용하거나 응답시간을 빠르게 하기 위해 사용하게 된다. 캐시의 사용전략이 곧 성능의 향상이나 리소스 낭비를 줄이는 방법이 될 수 있다.
캐시에 관한 설정을 하는 대표적인 헤더이다. Cache-Control
의 사용되는 값들을 살펴보자.
캐시의 유효기간을 설정하는 값이다. max-age=<seconde>
로 사용된다.
CDN과 같은 중간 서버를 두는 경우, 해당 서버의 캐시 유효기간을 설정할 때 사용한다.
캐싱을 해야할 정보가 다른 곳에는 캐싱되지 않고 오직 해당 브라우저에만 캐싱되도록 하려면 privated
을 사용해야한다.
반대로 public
을 사용한다면 다른 클라이언트들도 해당 리소스를 캐싱하게 된다.
모든 response를 새로운 response를 받기 위해 사용하는 것이 no-cache
이다. no-cache
방식은 max-age=0
을 설정한 것과 같은 효과를 가진다. no-cache
와 헷갈리는 것이 no-store
다. 이 방식은 아예 캐시를 저장하지 않는 방식이다. no-cache
보다 no-store
를 사용하는 것이 좋다. (아래 설명하겠다.)
해당 리소스의 변경이 없을 때 사용한다. 이 리소스는 항상 캐싱해두고 사용하게 된다. 또한, reload나 브라우저 종료에 의해서도 지워지지 않는다.
revalidation을 진행한다. 재 검증을 통해 해당 리소스가 유효한지 체크하게 된다.