浅聊 Cache-Control 之 no-store vs no-cache vs must-revalidate

相关文章

背景

Web 标准中,在没有设置 cache-control 的情况下,是倾向于支持使用缓存的,因此,cache-control 更多用于 避免 缓存,而非维持缓存。

本文将做辨析的几个参数,均与避免缓存相关。

从严格程度上说,no-store > no-cache > must-revalidate

must-revalidate

当缓存过期后(max-age 到达),客户端不能继续使用该资源,必须向服务端发起重新校验。

no-cache

相当于 max-age=0, must-revalidate,综合起来的效果是,本地缓存每次使用前都必须经过服务端校验。

注意几点

  • 客户端仍然会缓存文件
  • 客户端向服务端发起校验时,如果校验成功(文件没有发生变化),是不需要重传文件,而可以直接使用本地缓存的

no-store

客户端完全不缓存文件。

建议

  • 对于单页应用,index.html 文件分发时设置 cache-control: no-cache, private 即可,其他文件则在文件名上加入指纹并正常缓存

参考

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容