浏览器缓存和本地存储

这篇文章只是对另一位大佬的文章做一下小总结,详情可以访问:https://segmentfault.com/a/1190000017185195
浏览器缓存可以减少数据请求,使网站响应更快,减少带宽,降低网络负荷


浏览器的缓存方式(强缓存和协商缓存)

1. 强缓存

浏览器访问资源时不会发送请求,直接读取浏览器缓存,并且在chrome控制台的network选项中可以看到size显示from disk
cache或from memory cache

2. 协商缓存

浏览器在访问资源时会向服务器发送一个询问请求,服务器收到请求后,判断是否使用缓存,若不使用缓存,则服务器会给浏览器返回资源

  • 根据时间判断是否使用缓存

浏览器在请求时请求头携带If-Modified-Since,服务器在响应请求时携带Last-Modified
浏览器第一次请求时,服务器会返回资源和该资源的最后修改时间(Last-Modified),浏览器会将这个资源和时间缓存下来
之后浏览器再次访问资源时,会携带If-Modified-Since(浏览器缓存下来的最后修改时间)
服务器收到请求后会对比If-Modified-Since和该资源的最后修改时间是否匹配,若匹配则使用缓存,若不匹配则返回新的资源和最后修改时间(Last-Modified)

  • 根据唯一标识判断是否使用缓存

浏览器在请求时请求头携带If-None-Match,服务器在响应请求时携带ETag
浏览器第一次请求时,服务器会返回资源和该资源的唯一标识符ETag,浏览器会将这个资源和ETag缓存下来
之后浏览器再次访问资源时,会携带If-None-Match(浏览器缓存下来的ETag)
服务器收到请求后会对比If-None-Match和该资源的ETag是否匹配,若匹配则使用缓存,若不匹配则返回新的资源和ETag

这两者极为相似,唯一区别就是一个是通过最后修改时间来判断资源是否过期,一个是通过唯一标识来判断资源是否过期,目前常用第二种,精度高,但是性能没有第一种好

常用本地存储

一般常用的本地存储包括:localStorage,sessionStorage和cookie

  1. localStorage、sessionStorage主要是前端开发人员,在前端设置,一旦数据保存在本地后,就可以避免再向服务器请求数据,因此减少不必要的数据请求,减少数据在浏览器和服务器间不必要地来回传递
  2. localStorage 保存不受时间限制,除非用户自己删除,否则不会消失
  3. sessionStorage 保存受时间限制,当前窗口一旦关闭,内容就会消失
posted @ 2022-03-02 19:14  梦羽微澜  阅读(379)  评论(0编辑  收藏  举报