HTTP缓存类型css
200 from cache:直接从本地缓存获取响应,可细分为from disk cache, from memory cacheapi
304 Not Modified:协商缓存,本地未命中发送校验数据到服务端,若是服务端数据没有改变,则读取本地缓存响应浏览器
200 OK:不读取缓存,服务器返回完整响应缓存
本地缓存相关Header(Response)服务器
Pragma(1.0):设置为no-cache时会禁用本地缓存接口
Expires(1.0):值为格林威治时间,在这个时间前缓存有效无需发送请求图片
Cache-Control:缓存过时时间间隔ast
no-store:禁止缓存响应配置
no-cache:先发起请求和服务器协商,经过才能缓存响应cache-control
max-age=delta-seconds:告知浏览器该响应本地缓存有效的最长期限,以秒为单位
优先级:Pragma > Cache-Control > Expires
协商缓存相关Header(Response)
Last-Modified:最后修改时间, If-Modified-Since(Request),发送到服务器的验证时间
ETag:文件的指纹标识符,随着文件内容改变而改变,If-None-Match(Request),发送到服务器的验证标识符
适合缓存的内容
直接缓存:js,css,图片,媒体文件
协商缓存:HTML,常常改变的js,css,图片,媒体文件
不适合缓存
用户隐私数据
常常改变的api接口数据
拒绝缓存:使用签名,如.js?签名
Nginx
add_header
本地缓存配置
expire:通知浏览器过时时长, expire time;
负值:cache-control:no-cache
正值:cache-control:max-age=指定时间
max:cache-control:max-age=10年后
协商缓存配置
Etag on|off,默认是on