40、强制缓存和协商缓存的区别

协商缓存

  • 协商缓存是利用的是【Last-Modified,If-Modified-Since】和【ETag、If-None-Match】这两对请求头响应头来管理的
  • Last-Modified 表明本地文件最后修改日期,浏览器会在request header加上If-Modified-Since(上次返回的Last-Modified的值),询问服务器在该日期后资源是否有更新,有更新的话就会将新的资源发送回来
  • Etag就像一个指纹,资源变化都会导致ETag变化,跟最后修改时间没有关系,ETag可以保证每一个资源是唯一的
  • If-None-Match的header会将上次返回的Etag发送给服务器,询问该资源的Etag是否有更新,有变动就会发送新的资源回来

强制缓存

  • 而强制缓存不需要发送请求到服务端,根据请求头expires和cache-control判断是否命中强缓存

【强制缓存与协商缓存的流程图如下所示:】

40、强制缓存和协商缓存的区别

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 共3条

请登录后发表评论