首先,请注意 Cache-Control 对三种指令进行操作:可缓存性、缓存过期和版本控制。
第一个 – 可缓存性 – 准确指示数据副本应存储在何处。
私人的。意味着数据应该存储在本地缓存中。在你的笔记本电脑中
民众。意味着数据应该存储在共享缓存中——在 CDN 中。但它们也可以保存在本地。
没有缓存。一个有趣的指令——其实就是说数据应该被缓存,但是各级缓存在每次使用前都应该检查数据的有效性
没有商店。意味着不应缓存数据。
下一类指令是数据保留管理
最大年龄=<秒数>。指定缓存的生命周期。缓存应保留数据副本的秒数。影响本地和共享缓存。
s-maxage=<秒数>。覆盖共享缓存的 max-age 值。不影响本地缓存。
最后但同样重要的是,数据验证管理。
不可变的。指定文档不会被修改。绝不。它应该保持到宇宙热寂的那一刻。
必须重新验证。指示浏览器应检查此 德国手机号码清单 请求缓存的有效性,即使它刚刚更新。
代理重新验证。指示对于此请求,代理必须通过检查源服务器来检查其缓存的有效性。
现在,以下是俄语翻译中上述指令的解读方式:
将此数据缓存在用户计算机和 CDN 中 1 小时
仅在本地缓存 – 在用户的计算机上,不要在 CDN 中缓存。保存一次,不再更新。
您可能会也可能不会缓存。每次将实 cz 列表 际数据存储在缓存中时,只需检查一下。
在用户电脑缓存一个小时,在CDN缓存两个小时
在用户电脑和CDN缓存一个小时,但是在每次有请求进来的时候在CDN上,即使是在这个小时内,你也需要和服务器核对数据是否是最新的。
例子
下面是一个示例,说明如何使用文件注入 ETag 和 Cache-Control 标头。这是针对 Apache 的,但如果您有不同的服务器,则很容易理解。
为所有图像设置 ETag 和缓存一天
资产设置 ETag 和缓存两个小时,但确保重新生效
标头集 Cache-Control“max-age=7200 public must-revalidate”
标头未设置上次修改时间
例如,对文件 请求的响应应包含一个 ETag 标头,指示文件上次修改的时间、文件大小,以及一个 Cache-Control 标头,指示缓存此文件的生命周期 – 1 天。
日期:2017 年 2 月 7 日星期二 15:01:20 GMT
对 请求的响应还必须包含一个 ETag 标头,指示文件上次修改的时间及其大小,一个 Cache-Control 标头,指示存储时间缓存中的此文件 – 2 小时。此外,Last-Modified 应从标头中排除,这意味着将仅根据 ETag 字段检查版本。