Skip to content
On this page

1、浏览器缓存机制

浏览器发起 HTTP 请求 – 服务器响应该请求。那么浏览器第一次向服务器发起该请求后拿到请求结果,会根据响应报文中 HTTP 头的缓存标识,决定是否缓存结果,是则将请求结果和缓存标识存入浏览器缓存中,简单的过程如下图:

image-20221107214735475.png

由上图我们可以知道:

  1. 浏览器每次发起请求,都会先在浏览器缓存中查找该请求的结果以及缓存标识

  2. 浏览器每次拿到返回的请求结果都会将该结果和缓存标识存入浏览器缓存中

  3. 根据是否需要向服务器重新发起 HTTP 请求将缓存过程分为两个部分,分别是强制缓存和协商缓存。

2、强制缓存

强制缓存就是向浏览器缓存查找该请求结果,并根据该结果的缓存规则来决定是否使用该缓存结果的过程。

image-20221107214742279.png

  1. 不存在该缓存结果和缓存标识,强制缓存失效,则直接向服务器发起请求(跟第一次发起请求一致)。

  2. 存在该缓存结果和缓存标识,但该结果已失效,强制缓存失效,则使用协商缓存。

  3. 存在该缓存结果和缓存标识,且该结果尚未失效,强制缓存生效,直接返回该结果

3、协商缓存

协商缓存就是强制缓存失效后,浏览器携带缓存标识向服务器发起请求,由服务器根据缓存标识决定是否使用缓存的过程

image-20221107214748208.png

  1. 协商缓存生效,返回 304

  2. 协商缓存失效,返回 200 和请求结果结果

本章节来自 LeetBook - 力扣(LeetCode)

Released under the MIT License.