cache-control的几种不同类型或者说关键词:
no-cache
no-store
public
private
/max-age
no-cache并不代表完全的禁用缓存,而是代表会每次去核对服务端的 Etag,如果相同,那么就不会去服务端下载完整的资源,返回一个 304 Not Modified。(最长缓存 3 年)
no-store才是真正的禁用缓存,它表示每次服务端都会去下载最新的资源。(当然,通常似乎都用不上)。
public和
private的差别主要在于如果是有用户认证环节的页面,设置为
private就只有终端浏览器会缓存,中间 CDN 并不会缓存,而设置为
public,则会在每一个环节缓存。默认不需要设置
public,因为
max-age已经表明可以由各个环节缓存了(单位为秒)。此刻如果命中缓存,则不会再去请求服务器核对 Etag,而是直接返回 200(from disk)。
public会在每一个环节缓存,如果对修改更新预览又强需求的网页,那么最好不要使用这一缓存策略,否则还需要刷新 CDN 源,很麻烦。
参考内容:
HTTP 缓存
使用 HTTP 缓存:Etag, Last-Modified 与 Cache-Control
本文为 @ 21CTO 创作并授权 21CTO 发布,未经许可,请勿转载。
内容授权事宜请您联系 webmaster@21cto.com或关注 21CTO 公众号。
该文观点仅代表作者本人,21CTO 平台仅提供信息存储空间服务。