HTTP缓存过期
编辑本页HTTP缓存过期
的失效模式是两种缓存模型中最有效和最直接的,应该尽可能使用。当响应被缓存到过期时,缓存将直接返回该响应,直到缓存的响应过期为止。
过期模型可以使用两个几乎相同的HTTP头中的一个来完成:到期
或cache - control
.
到期时使用cache - control
头
大多数情况下,您将使用cache - control
头文件,用于指定许多不同的缓存指令:
1 2 3 4
//设置响应后的秒数//共享缓存不再认为是新鲜的$响应->setPublic ();$响应->setMaxAge (600);
的cache - control
Header将采用以下格式(它可能有额外的指令):
1
Cache-Control: public, max-age=600
请注意
使用setSharedMaxAge ()
方法并不等同于同时使用两者setPublic ()
而且setMaxAge ()
方法。根据提供陈旧的回复RFC 7234的章节s-maxage
设置(由setSharedMaxAge ()
方法)禁止缓存在中使用过期响应stale-if-error
场景。这就是为什么建议两者都使用公共
而且信息
指令。
到期时使用到期
头
替代方案cache - control
标题是到期
.两者都没有优劣之分。
根据HTTP规范,“the到期
报头字段给出的日期/时间之后,响应被认为是陈旧的。的到期
属性可以设置setExpires ()
响应
方法。它需要DateTime
Instance作为参数:
1 2 3 4
$日期=新DateTime ();$日期->修改(+ 600秒的);$响应->setExpires ($日期);
结果的HTTP头看起来像这样:
1
截止日期:2011年3月1日星期四16:00:00 GMT
请注意
的setExpires ()
方法自动将日期转换为规范要求的GMT时区。
注意,在1.1之前的HTTP版本中,源服务器不需要发送日期
头。因此,缓存(例如浏览器)可能需要依赖本地时钟来计算到期
报头使寿命计算容易受到时钟倾斜。另一个限制到期
该规范声明“HTTP/1.1服务器不应该发送到期
日期超过一年以后。”
请注意
根据计算新鲜度寿命RFC 7234的章节到期
属性时,将忽略头值s-maxage
或信息
环保署指示cache - control
头被定义。