如果HTTP响应中没有与缓存过期相关的标头(Date
,Last-Modified
和ETag
除外),则资源的有效期为{{1}是text / html?
它取决于浏览器吗?
答案 0 :(得分:6)
来自HTTP/1.1 specification on Response Cacheability:
如果既没有缓存验证器也没有与响应关联的显式过期时间,我们不希望它被缓存,但某些缓存可能违反此期望(例如,当很少或没有可用的网络连接时)。
这是理论,但我没有关于实际行为的任何信息。
答案 1 :(得分:3)
我有理由相信它几乎完全取决于浏览器。他们试图找到“除非我们必须每次都不要求相同的HTML文件”和“如果网站管理员只是不称职就不要错过更新”之间的平衡点。在过去的日子里,空间也是一个问题,因此用户可以使用一个小滑块来设置缓存使用量 - 如果你可以将它设置为500MB,你就是一个幸运的人!
现在几乎所有东西都是no-cache或Expires:-1无论如何(生成的页面)。但除此之外,我确信旧指南适用。
我一直把缓存标题看作是一个肯定的声明 - 这个响应无论多长时间都有好处,或者它只有一次好。但无论哪种方式,它都是定义的。如果它未定义,我不相信它被清除。