缓存

当web缓存发现请求的资源,浏览器拦截请求,返回该资源的拷贝,而不会去源服务器重新下载。

优点:缓解服务器端压力,提升性能(减少网页加载速度)提高用户体验。

浏览器缓存有两种方式:强缓存和协商缓存。

请求资源时浏览器怎么知道是强缓存还是协商缓存?

用户首次请求并获取到该资源后,根据返回的信息来告诉如何缓存资源,可能采用的是强缓存,也可能告诉客户端浏览器是协商缓存,这都需要根据响应的header内容来决定。

强缓存:

(1)过程

用户请求访问过的资源,浏览器拦截请求,查看该资源的强缓存相关header字段来判断资源是否过期。若过期即命中强缓存,直接从本地获取资源来展示给用户,若没有命中强缓存,则从服务器重新加载资源或者进去协商缓存流程(如果资源同时设置了强缓存和协商缓存)

(2)相关header字段

一个未来时间,浏览器再次加载资源时,如果在这个过期时间内,则命中强缓存。

cache -contorl:

当值设为max-age = 300 时。 则代表在这个请求正确返回时间的5分钟再次加载资源,就会命中强缓存。

协商缓存:

用户请求访问过的资源,请求头携带相关header字段去跟服务器的对应相关header字段做对比,由服务器判断资源是否修改,未修改则命中协商缓存,服务器返回304状态,不返回资源,浏览器获取本地资源。若资源被修改,则返回200状态。

强缓存和协商缓存的区别

强缓存是浏览器(判断是否命中后)单方面做决定是否向服务器发起请求,比较强势,若命中则不会与服务器进行任何通信。而协商缓存是浏览器与服务器(相关字段的校对)双方是否返回新资源

一般将一些不常更新的静态资源设置强缓存加协商缓存,而类似index.html等更新频繁的资源设置为协商缓存。

以上是http缓存,前端缓存还有浏览器缓存。

浏览器缓存分:本地缓存和默认缓存。

localStorage,sessionStorage .

cookie主要用于用户信息的存储,Cookie 的内容可以自动在请求的时候被传递给服务器。

localStorage 的数据将一直保存在浏览器内,直到用户清除浏览器缓存数据为止。

 

posted @ 2020-07-29 14:17  Panax  阅读(182)  评论(0编辑  收藏  举报