【发布时间】:2011-08-22 06:12:47
【问题描述】:
你能告诉我 Expires 和 Cache-control:max-age 的区别吗?
【问题讨论】:
-
给定信息不足以理解/回答问题。
标签: http-headers cache-control
你能告诉我 Expires 和 Cache-control:max-age 的区别吗?
【问题讨论】:
标签: http-headers cache-control
与 Cache-Control: max-age 相比,HTTP 1.0 规范中指定了 Expires,后者是在早期的 HTTP 1.1 规范中引入的。 Expires 标头的值必须采用非常特定的日期和时间格式,任何错误都会使您的资源不可缓存。 Cache-Control: max-age 标头在发送到浏览器时的值以秒为单位,发生任何错误的机会非常少。
由于您只能在 web.config 文件中指定两个标头之一,因此我建议您使用 Cache-Control: max-age 标头,因为它可以灵活地设置从当前日期开始的相对时间跨度到未来的某个日期。与使用 Expires 标头的情况相比,您基本上可以设置并忘记,您必须记住其值每年至少更新一次。如果您在代码中以编程方式设置这两个标头,请知道 Cache-Control: max-age 标头的值将优先于 Expires 标头。所以,还有一些要记住的地方。
来自Setting Expires and Cache-Control: max-age headers for static resources in ASP.NET
【讨论】:
Expires 在HTTP/1.0 规范中定义,Cache-Control 在HTTP/1.1 规范中定义。
我建议同时定义两者,以便同时满足两者的需求,即只了解HTTP/1.0 的老客户和新客户。
【讨论】: