首页 > 试题广场 >

强缓存、协商缓存什么时候用哪个

[问答题]

强缓存、协商缓存什么时候用哪个

<p>用户在使用数据时肯定是希望能够获取到最新的数据,所以如果在服务器上相应的数据已经进行了更新,那么就应该使用协商缓存。</p><p>如果服务器与本地的存储数据都是一样的那么就应该使用强缓存,避免不必要的网络请求</p>
发表于 2020-05-19 15:14:35 回复(0)
浏览器发送请求前,HTTP Header 是否使用强缓存,判断强缓存是否过期,命中直接读取缓存数据,不发起HTTP请求
强缓存未命中则使用协商缓存,发起HTTP请求,服务器先判断Header中Etag是否存在,有则与If-None-Match进行对比,判断浏览器本地缓存是否失效,若未失效走缓存304,失效则200返回新数据
若无Etag则判断是否有Last-Modified?如若没有则返回200新数据,若有则服务器判断Last-Modified与If-Modified-Since是否有效,失效则200返回新数据,更新缓存,有效则304读取缓存数据,浏览器渲染
发表于 2022-01-13 15:18:35 回复(0)

强缓存:浏览器直接从本地存储中获取数据,不与服务器进行交互;

协商缓存:浏览器发送请求到服务器,浏览器判断是否可使用本地缓存。

发表于 2019-09-30 09:15:30 回复(0)

从header里面读取是否是强缓存,在有效的时间周期内从缓存里读取而不是从服务器里读取

发表于 2019-12-25 15:38:20 回复(0)