HTTP标头:缓存控制是否足够,还是我还需要Expires?

时间:2010-12-30 21:05:55

标签: http http-headers cache-control

HTTP 1.1引入了一类新的标头,Cache-Control响应标头,使Web发布者可以更好地控制其内容,并解决Expires的限制。

由于其局限性,过期是一种痛苦。首先,因为涉及绝对日期,所以必须同步Web服务器上的时钟和客户端的缓存;如果他们对时间有不同的看法,那么预期的结果将无法实现,而缓存可能会错误地将过时的内容视为新鲜的。

Expires的另一个问题是,很容易忘记您已将某些内容设置为在特定时间到期。如果在通过之前没有更新过期时间,则每个请求都将返回到您的Web服务器,从而增加了负载和延迟。

那么,我们是否需要再使用Expires,或者我的静态内容是否足以使用Cache-Control(具体来说,max-age设置为某个远期的秒数)?我想避免使用Expires,但是我应该同时设置它们吗?

1 个答案:

答案 0 :(得分:6)

一般来说,将它们视为最佳实践,因为即使HTTP / 1.0代理和客户端也会理解Expires(尽管它们可能很少见)。

几乎所有服务器平台都会为您动态计算Expires标头。