浏览器缓存机制

125 阅读1分钟

缓存位置

disk cache

   根据http header设置缓存类型
   大部分为disk cache

memory cache

   内存资源充足的情况下,一部分资源直接使用内存缓存
   他不受max-age、no-cache等配置的影响
   一旦关闭了浏览器,这一部分用于缓存的内存空间就会被释放掉
   如果真的不想使用缓存,可以设置no-store,这样,即便是内存缓存,也不会生效

强缓存

cache control

max-age设置缓存时常、以秒为单位
请求资源后浏览器会将请求的事件记录下来在max-age设置的时间长度内不会去请求资源
设置为no-store浏览器不会缓存(内存缓存也失效)直接向服务器发送请求
设置为no-cache需要通过协商缓存来确定

expires

服务器设置具体的到期时间
到期事件内不会去发送请求
若浏览器本地时间和服务器时间不一致可能不会达到预期效果

协商缓存

etag

文件的唯一标识,只要文件发生了改动标识也会改变

last-modified

文件最后一次更改的时间

缓存机制

在强缓存时间范围内

   强缓存生效,直接使用本地缓存资源

强缓存失效

   有协商缓存标识携带标识向服务器发送请求,若文件没有改动返回304,不携带请求资源
   若文件发送了改动,则返回最新资源,更新标识,返回200

若有memory cache直接使用缓存不请求