目录
- 一、介绍
- 二、强缓存
- 三、协商缓存
今天主要介绍 HTTP请求缓存中的强缓存和协商缓存。
一、介绍
浏览器每次发起请求时,会先在浏览器缓存中查找请求的缓存结果和缓存标识。
当浏览器第一次向服务器发起请求后,浏览器缓存肯定是没有对应缓存的,所以向服务器发起请求,服务器响应该请求,并返回请求结果和缓存规则,浏览器拿到响应后,将请求结果和缓存标识存入浏览器缓存。浏览器在后续加载对应资源时会根据第一次请求资源时返回的缓存标识来确定缓存规则。
二、强缓存
根据是否超出某个时间来决定是否从缓存获取数据,不关心服务器文件是否已经更新。
在 chrome 控制台的 Network 选项中可以看到有的请求 Size 显示 from disk cache
或 from memory cache
,这就是设置了强缓存的结果。
要想实现强缓存可以通过设置 HTTP Header 中的 Expires
和 Cache-Control
:
- Expires
Expires字段是一个HTTP响应头,它指定了资源的到期时间,以GMT格式的日期/时间表示。浏览器会将该时间与客户端的本地时间进行比较,以确定资源是否过期。如果资源的到期时间早于当前时间,浏览器将从服务器重新获取该资源。