理解http浏览器缓存

浏览器缓存相关的话题

请参考链接:https://www.cnblogs.com/tugenhua0707/p/10807289.html

根据上面的链接,需要掌握如下知识点

  • 浏览器的协商缓存
    • Last-ModifiedIf-Modified-Since
    • ETagIf-None-Match
  • 浏览器的强制缓存
    • Expires:
    • Cache-Control:

我下面简单的说几句,详细的介绍还是请到上面的链接中学习体会

1) 协商缓存,和服务器通信,决定请求是否返回304(Not modified)

  1. Etag是服务器按照一定算法生成的hash值
  2. Last-Modified的值是GMT格式的时间,也就是文件被修改的时间

优先级 ETag > Last-Modified 

2)强制缓存,根据Cache-Control的值,决定是否回服务器通信,如果不回服务器通信就代表强制缓存

  1. Expires 是http 1.0的规范,其值是GMT格式时间
  1. Cache-Control 是http 1.1的规范,其值如下
  • no-cache: 需要进行协商缓存,发送请求到服务器确认是否使用缓存
  • no-store:禁止使用缓存,每一次都要重新请求数据。
  • public:可以被所有的用户缓存,包括终端用户和 CDN 等中间代理服务器。
  • private:只能被终端用户的浏览器缓存,不允许 CDN 等中继缓存服务器对其缓存。

优先级 Cache-Control > Expires

原文地址:https://www.cnblogs.com/faberbeta/p/13084347.html