
(1)到期时间: 用于指定Web对象的到期日期/时间,通常采用GMT格式;通常,您不应将此设置为太长. 大多数情况下,一年就足够了;通常用于为纯静态内容(例如JavaScript样式表或图片)指定缓存时间;
(2)缓存控制: 用于定义所有缓存机制必须遵循的缓存指令. 这些指令是一些特定的指令,包括公共的,私有的,无缓存的(表明它可以被存储,但是在重新验证之后,其有效性不能用于之前响应客户的请求),无存储,最大使用期限, -最大,必须重新验证等; Cache-Control中设置的时间将覆盖Expires中指定的时间;
public: 定义为共享缓存
私有: 私有缓存
无缓存: 存储但必须经过验证
不存储: 不存储
max-age: 缓存的最大长度

s-maxage: 只能用于公共缓存或共享缓存以指定最大缓存持续时间
必须重新验证: 必须重新验证
(3)Etag: 响应头用于定义响应消息中Web资源的版本标识符; (解决了与第二级别相比时间戳的粗糙性,无法确定文件是否已更新,用于验证第二级别的更新)
在满足条件时请求判断机制
(4)Last-Mofified: 响应头用于响应客户端对Last-Modified-Since或If-None-Match头的请求,以通知客户端所请求的Web对象的最新修改时间;
(5)If-Modified-Since: 条件请求标头,如果在此标头指定的时间之后更改了请求的Web内容,则服务器将以更改后的内容进行响应,否则,服务器将以304(未修改)进行响应;
(6)If-None-Match: 条件请求标头; Web服务器为某些Web内容定义了Etag标头,客户端可以在请求时获取并保存该标头的值(即标签);然后在后续请求中,中间节点将通过If-None-Match标头追加已批准标签的列表,并让服务器端检查其原始内容是否具有可与此列表中的标签匹配的标签;如果包含,则返回304,否则返回原始内容;

(7)可变: 响应头,原始服务器可能会根据请求的源做出不同的响应. 最常用的标头是Vary: Accept-Encoding,用于通知缓存机制其内容可能看起来有所不同用户请求时,Accept-Encoding-header标头标识的编码格式;
(8)Age: 缓存服务器可以发送的附加响应头,用于指定响应的有效期;浏览器通常根据此标头确定内容的缓存持续时间;如果响应头也使用max-age指令,则缓存的有效持续时间是“ max-age减去Age”的结果;
年龄(响应标头,HTTP1.1)
用于原始服务器的年龄标头用于指示当前资源已生成了多长时间,即生存期. 对于缓存代理服务器,它指示缓存副本已缓存多长时间. 必须生成缓存代理服务器Age头. 它的值以秒为单位. 可能是负值.
生命: 响应的生命. 它是指从原始服务器发送实体之后,或者经过重新验证证明缓存仍处于最新状态(可信任)之后经过的时间. 请参阅响应标题Age,单位为秒.
[实践分析-理解]
Google Chrome f5(ctrl + r)和ctrl + f5之间的区别

f5是刷新的,但不彻底: 它将在请求后添加
If-Modified-Since: and max-age: 0
请求时,请询问服务器是否有任何更新. 就像服务器检查更新时间一样,它返回304表示没有更新.
ctrl + f5是强制更新,刷新页面后,服务器必须返回200(存在资源的前提). 将被添加到http请求标头中
缓存控制: 无缓存
该概念解释如下:
缓存控制无缓存-强制将每个请求直接发送到原始服务器,而无需验证本地缓存版本. 这对于需要确认身份验证的应用程序(可以与公用程序结合使用),或者严格要求使用最新数据的应用程序(以牺牲使用缓存的所有好处为代价)很有用

编译指示当请求消息中出现“ no-cache”时,应用程序应将此请求推送到原始服务器,即使请求已经被发送
上一个请求期间已缓存副本. 这将确保客户可以收到最权威的答复. 也用
当客户端发现其缓存中的副本不可用或已过期时,将强制刷新该副本.
缓存控制
直接从浏览器缓存中获取
max-age> 0
最大年龄
如果是,则返回200,如果否,则返回304.
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shumachanpin/article-305612-1.html
到时要修改婚姻法