在某些情况下,特别是如果内容是静态的,文本文件或静态 html 文件,使用 If-Not-Modified-Since: Sun, 05 Feb 2017 10:34:56 UTC 请求很有用,响应也可以是 304。这通常工作得很快,因为它使用磁盘上文件的时间戳中包含的时间。但是对于动态内容,时间戳是没有用的。

一般来说,ETag 在一些重要和常见的情况下要方便得多。

缓存-控制标记

Cache-Control 标头稍微复杂一些。由于两个原因,它更加困难。首先,因为它既可以用于请求也可以用于响应。在我们的文章中,我们将重点关注它在答案中的使用,因为开发人员负责这部分交换。其次,此标记可能控制两种类型的缓存:“本地(或私有)缓存”和“共享缓存”。

本地缓存是运行浏览器的机器磁盘上的缓存

例如,在您的笔记本电脑上。请记住,在服务器端,您无法完全控制本地缓存的状态。最后,按照您的“建议”存储信息一小时、一天或一周取决于浏览器本身,所以不要太相信它。用户通常可以在每次关闭浏 瑞典手机号码列表 览器时清除缓存,除了您会看到流量增加和“永远年轻”、没有时间过时的本地缓存外,您什么都不知道。 公共或共享缓存是本文的全部内容:浏览器和服务器之间的缓存。CDN。在这种情况下,作为开发人员,您可以完全控制缓存并应该充分利用它。
好的,让我们看一些代码示例:

缓存控制:public max-age=3600
缓存控制:私有不可变
缓存控制:无缓存
缓存控制:public max-age=3600 s-maxage=7200
缓存控制:public max-age=3600 proxy-revalidate
首先,请注意 Cache-Control 对三种指令进行操作:可缓存性、缓存过期和版本控制。

第一个 可缓存性 指示数据副本的确切存储位置

电话号码列表

私人的。意味着数据应该存储在本 cz 列表 地缓存中。在你的笔记本电脑中
民众。意味着数据应该存储在共享缓存中——在 CDN 中。但它们也可以保存在本地。
没有缓存。一个有趣的指令——其实就是说数据应该被缓存,但是各级缓存在每次使用前都应该检查数据的有效性
没有商店。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注