HTTP Cache-Control
[HTTP Conditional Request](https://texonom.com/http-conditional-request-7b1137923b8d436ca7922edc99679234)  [HTTP ETag Header](https://texonom.com/http-etag-header-e27a505da3024ae0a267d761779dfb28)[HTTP Cache-Control Response](https://texonom.com/http-cache-control-response-9954593bf2c94b6aaa8f7d6ec81fca82) 


CDN Invalidation을 포함한 서버의 어떤 작업이 있어도 브라우저의 유효한 캐시를 지우기 어렵다
Cache-Control max-age 값 대신 Expires 헤더로 캐시 만료 시간을 정확히 지정할 수도 있음
캐시의 유효 기간이 지나면 브라우저는 서버에 조건부 요청(Conditional request)을 통해 캐시가 유효한지 재검증(Revalidation)
- 캐시가 유효하다면, 서버는 [304 Not Modified]
- 캐시가 유효하지 않으면, 서버는 [200 OK] 또는 적합한 상태 코드를 본문과 함께
재검증은 안시키려면 max-age=0 말고(일부 모바일 브라우저의 경우 웹 브라우저를 껐다 켜기 전까지 리소스가 만료되지 않도록 하는 경우도) no-store
CDN과 같은 중간 서버가 특정 리소스를 캐시할 수 있는지 여부를 지정하기 위해 Cache-Control 헤더 값으로 public 또는 private
### HTTP Cache-Control Directives
|Title|
|:-:|
|[HTTP Cache-Control Request](https://texonom.com/http-cache-control-request-67d6dc16b03b46378404361b5bbce23a)|
|[HTTP Cache-Control Response](https://texonom.com/http-cache-control-response-9954593bf2c94b6aaa8f7d6ec81fca82)|
|[Cache-Control Extension ](https://texonom.com/cache-control-extension-2aa7d6cd67484a84951f9ac6cce67a09)|




> [웹 서비스 캐시 똑똑하게 다루기](https://toss.tech/article/smart-web-service-cache)

> [Cache-Control - HTTP | MDN](https://developer.mozilla.org/ko/docs/Web/HTTP/Headers/Cache-Control)

> [Cache headers in Express js app](https://regbrain.com/article/cache-headers-express-js)






[https://www.notion.so/seongland/HTTP-Cache-Control-Response-9954593bf2c94b6aaa8f7d6ec81fca82](https://www.notion.so/seongland/HTTP-Cache-Control-Response-9954593bf2c94b6aaa8f7d6ec81fca82)