DeanTG / interview

0 stars 0 forks source link

Brower Caching #10

Open DeanTG opened 1 year ago

DeanTG commented 1 year ago

link

http面试必会的:强制缓存和协商缓存 缓存(一)——缓存总览:从性能优化的角度看缓存

DeanTG commented 1 year ago

良好的缓存策略可以降低资源的重复加载提高网页的整体加载速度 通常浏览器缓存策略分为两种:强缓存和协商缓存

1、基本原理 1)浏览器在加载资源时,根据请求头的expires和cache-control判断是否命中强缓存,是则直接从缓存读取资源,不会发请求到服务器。 2)如果没有命中强缓存,浏览器一定会发送一个请求到服务器,通过last-modified和etag验证资源是否命中协商缓存,如果命中,服务器会将这个请求返回,但是不会返回这个资源的数据,依然是从缓存中读取资源 3)如果前面两者都没有命中,直接从服务器加载资源 2、相同点 如果命中,都是从客户端缓存中加载资源,而不是从服务器加载资源数据;

3、不同点 强缓存不发请求到服务器,协商缓存会发请求到服务器。

DeanTG commented 1 year ago

强制缓存优先于协商缓存,若强制缓存生效则直接使用缓存,若不生效则进行协商缓存,协商缓存由服务器决定是否使用缓存,若协商缓存失效,那么代表该请求的缓存失效,重新获取请求结果,再存入浏览器缓存中;生效则返回304,继续使用缓存。

DeanTG commented 1 year ago

三种刷新操作对 http 缓存的影响