【发布时间】:2015-09-03 19:44:13
【问题描述】:
我看到很多网站返回的 html 页面在标头中没有缓存参数。没有编译指示,没有缓存控制,没有电子标签,没有到期日期......什么都没有......从http 1.2规范来看,这似乎意味着它可以被缓存,但我不确定。如果响应中没有缓存指令,任何人都知道管理缓存的确切规则吗?
【问题讨论】:
我看到很多网站返回的 html 页面在标头中没有缓存参数。没有编译指示,没有缓存控制,没有电子标签,没有到期日期......什么都没有......从http 1.2规范来看,这似乎意味着它可以被缓存,但我不确定。如果响应中没有缓存指令,任何人都知道管理缓存的确切规则吗?
【问题讨论】:
我想我找到了答案。 http 1.1 规范允许没有缓存指令的场景。在这种情况下,接收缓存可以使用启发式过期算法。对我来说,这就是答案。它是可缓存的。但是,我发现 Firefox 和 Chrome 不会缓存它。我确实看到了一个帖子,找到了设置“DEFAULT_CACHE_TIME = 300”的 chrome 源,我相信它大约是 5 分钟,或者可能是 5 毫秒。我不知道......无论如何,我只需要知道规范是否允许用于缓存没有缓存指令的对象的缓存。
以下引用来自: http://home.anadolu.edu.tr/~egermen/EEM534/Refreshment%20policies%20for%20Web%20content%20caches%20.pdf 否则,没有明确的 保鲜期由产地提供 服务器并使用启发式方法:新鲜度生命周期 被分配为分数(HTTP/1.1 提到 10% 为例)之间的时间差 DATE 标头的时间戳和时间 由 LAST-MODIFIED 标头指定,主题 到最大允许值(通常为 24 小时,因为 HTTP/1.1 要求缓存必须附加一个 如果使用启发式过期,则发出警告,并且 对象的年龄超过 24 小时)。
【讨论】: