假定浏览器为默认设置,并且内容发送时没有 header 过期。
浏览器将在用户浏览时缓存图像等,但是尚不清楚何时会发出条件GET请求以询问内容新鲜度(除了刷新页面外)。如果这是特定于浏览器的设置,那么在哪里可以看到它的值(对于safari,IE,FireFox,Chrome等浏览器)。
[编辑:是的-我了解您应该始终发送过期 header 。但是,这项研究的目的是了解浏览器如何处理不带 header 的内容。]
最佳答案
HTTP / 1.1定义了一些缓存机制; expires
header 仅仅是一个,还有cache-control
header 。
要直接回答您的问题:对于没有expires
header 返回的资源,您必须考虑返回的cache-control
指令。
HTTP / 1.1对于没有与缓存相关的 header 提供服务的资源,没有定义任何缓存行为。如果发送的资源没有cache-control
或expires
header ,则必须假定客户端在下次请求相同资源时将发出常规(无条件)请求。
与此行为的任何背离都将使该客户端成为不是完全符合要求的HTTP客户端,在这种情况下,问题就变成了:不符合要求的HTTP客户端应期待什么行为?没有办法回答。
HTTP缓存非常复杂,要完全了解在特定情况下一致性客户端应执行的操作,请阅读并了解HTTP caching spec。
关于caching - 没有过期的 header 发送,内容被缓存,浏览器发出条件GET请求之前需要多长时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5860216/