cache control 响应头
1:private : 客户端可以缓存
2:public: 客户端和代理服务器都可以缓存
3:max-age=xxx :缓存的内容将在xxx秒后失效
4:no-cache:强制向服务端再验证一次
cache control 响应头
有效性判断
ETag:资源唯一标识
If-None-Match:客户端发送的匹配Etag标识符
Last-modified:资源最后被修改的时间
if-Modified-Since:客户端发送的匹配资源最后修改时间的标识符
有效性判断
浏览器的三种刷新方式
1:回车刷新或者a链接:看cache-control 对应的max-age是否仍然有效,有效则直接from cache,若cache-control中为no-cache,则进入缓存协商逻辑
2:F5刷新或者command+R刷新:去掉cache-control 中的max-age或直接设置max-age为0,然后进入缓存协商逻辑。
协商机制,比较Last-modified和ETag到服务端,若服务端判断没有变化则304不返回数据,否则200返回数据