HTTP缓存
Cache-Control
public 公开内容
max-age = 3600 缓存时间
must-revalidate 对过期的缓存必须重新校验
这个校验过程也叫内容协商也就是弱缓存
HTTP内容协商
缓存过期后是否还可以重用
通过ETag判断文件是否还能继续使用
缓存 | 内容协商 | |
---|---|---|
HTTP1.1 | Cache-Control:max-age=3600 Etag: ABC 响应 |
请求头: If-Name-Match : ABC 响应: 304+空内容/200+新内容 |
HTTP1.0 | Expire:时间点A Last-Modified:时间点B |
请求头:If-Modified-Since:时间点B 响应: 304+空内容/200+新内容 |
用户电脑时间更改不稳定
时间精确到秒,不准确
禁用缓存
不加Cache-Control浏览器还会缓存么?
会
200 300 多选
203 非权威信息 301 永久重定向 302 临时重定向
206 部分内容 410已迁移
服务器禁用缓存
**Cache-Control:max-age=0,must-revalidate**
等同于**Cache-Control:no-cache**
不能缓存但是可以内容协商
**Cache-Control:no-store**
不能缓存也不能内容协商
浏览器禁用缓存
- get/users?_=随机数 请求最新资源
Cache-Control:no-cache;no-store;max-age=0