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

Rud*_*ger 8 http cache-control http-headers

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

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

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

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

Eri*_*Law 6

一般来说,它被认为是使用两者的最佳实践,因为甚至HTTP/1.0代理和客户端也会理解Expires(尽管它们可能很少见).

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