强缓存
如何禁用强缓存?
协商缓存
浏览器缓存主要作用:
- 加快资源获取速度
- 提升用户体验
- 减少网络传输
-
讲一下浏览器缓存,什么时候使用本地缓存,什么时候使用协商缓存,什么时候不使用缓存?
接口不使用缓存,只有静态资源,图片、css、js等使用缓存。缓存规则分为http1.0和http1.1版本
http1.0 强缓存,expires,有效时间内获取本地缓存。若无强缓存或强缓存超过有效期,使用协商缓存。
- 协商缓存,Last-Modified响应头,If-Modified-Since请求头,该值就是服务器端上一次响应资源中的Last-Modified字段值。当服务端返回304,没过期,使用本地资源。服务端返回200、新的Last-Modified和最新资源,表示资源已过期,使用最新资源。
http1.1
- Cache-Control
no-store:永远不缓存
no-cache:协商缓存,询问服务器是否可用本地缓存,配合Last-Modified或者Etag
max-age:强缓存 覆盖http1.0的Expires
- Etag/If-None-Match,覆盖http1.0的Last-Modified/If-Modified-Since
Etag响应头,服务器资源哈希值
If-None-Match请求头作者:If-None-Match字段的值就是服务器端上一次响应资源中的Etag字段值;max-age或者expires过期了才使用,服务端返回304,没过期,使用本地资源。服务端返回200、新的Etag和最新资源,表示资源已过期,使用最新资源。
若请求头,响应头中http1.0和http1.1表示缓存的字段都存在,则后者覆盖前者。