浏览器的缓存机制
一、强缓存和协商缓存的概念
- 强缓存
- 用户发送的请求,直接从客户端缓存中获取,不会向服务器发送请求,若成功获取缓存,该请求返回的状态码是 200.
- 强缓存可以通过设置两种 HTTP 请求头 实现:Cache-Control(HTTP1.1 优先级较高) 和 Expires(HTTP/1)
- 协商缓存
- 当强制缓存失效后,
- 浏览器携带缓存标识向服务器发送请求,由服务器根据缓存标识判定是否使用缓存
- 可以通过设置两种 HTTP 请求头实现:Last-Modified 和 ETag
二、浏览器的缓存机制
- 强制缓存优先于协商缓存进行,若强缓存生效则直接使用缓存,
- 若强缓存不生效则进行协商缓存,由服务器决定是否使用缓存,
- 若协商缓存失效,那么代表该请求的缓存失效(资源有更新),重新返回资源和缓存标识(以及200状态码),再存入浏览器缓存中,
- 若协商缓存生效(资源未更新),则返回304状态码,继续使用缓存