互联网缓存

时间:2009-10-21 07:59:07

标签: caching

对于 Internet缓存,更新启发式是将文档保留一段与对象的已知生命周期成比例的时间。如果我们遵循典型的60%规则,我们会收到如下响应:

HTTP / 1.0 200 OK
日期:2009年6月23日星期二09:23:24
服务器:Apache / 1.3.0(Unix)
最后修改时间:2009年6月8日星期一09:23:24 内容类型:text / html

我们何时应该缓存此对象?

1 个答案:

答案 0 :(得分:1)

从技术上讲,您可以永久缓存它,它没有设置到期日。用户代理在想要显示缓存内容时应该执行的操作是发出另一个带有If-Modified-Since标头的请求,该请求允许服务器返回一个不错的短304 Not-Modified响应。

另一种查看问题的方法是“我不想在每个时间重新请求,触发这些重新请求有什么好的启发式方法?”。一个建议是基于Fibonacci序列的频率,以便最近更新的文档重新请求,但随着它们的老化,重新请求的频率变得不那么频繁。

HTTP / 1.1规范将此打开,Section 3.2.2 "Heuristic Calculations"可以说

  

由于原始服务器并非总是如此   提供明确的到期时间,   HTTP缓存通常分配启发式   到期时间,采用算法   使用其他标头值(例如   最后修改时间)估计一个   合理的到期时间。该   HTTP / 1.1规范没有   提供特定的算法,但确实如此   对他们施加最严重的限制   结果。自启发式到期   时代可能会损害语义   透明度,他们应该使用   谨慎,我们鼓励起源   服务器提供明确的过期时间   时间尽可能多。