HTTP缓存过期
编辑本页警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 5.2,现已不再维护。
读本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。
HTTP缓存过期
的失效模式是两种缓存模型中最有效和最直接的,应该尽可能使用。当响应被缓存到过期时,缓存将直接返回该响应,直到缓存的响应过期为止。
过期模型可以使用两个几乎相同的HTTP头中的一个来完成:到期
或cache - control
。
过期和验证
您可以在同一个文件中同时使用验证和过期响应
。由于过期胜过验证,您可以从两个世界的优点中受益。换句话说,通过使用过期和验证,您可以指示缓存提供缓存的内容,同时以一定的时间间隔(过期)进行检查,以验证内容是否仍然有效。
提示
您还可以使用注释为过期和验证定义HTTP缓存头。看到FrameworkExtraBundle文欧宝官网下载app档。
到期时使用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
头被定义。