HTTP缓存过期

编辑该页面

警告:你浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 5.3,不再维护。

这个页面的更新版本Symf欧宝娱乐app下载地址ony 6.2(当前的稳定版本)。

HTTP缓存过期

失效模式是最有效和直接的两个缓存模型,应该尽可能地使用。响应缓存过期时,缓存返回击中它直接应用到缓存的响应过期。

失效模式可以实现使用两种,几乎相同,HTTP头信息:到期cache - control

您可以使用验证和过期在相同的响应。过期赢在验证,你可以受益于两全其美。换句话说,通过使用过期和验证,您可以指示缓存服务缓存的内容,虽然检查回顾一些间隔(过期)验证内容仍然有效。

提示

您还可以定义HTTP缓存头供使用注释过期和验证。看到FrameworkExtraBundle文欧宝体育电话档

过期的cache - control

大多数时候,您将使用cache - control头,用于指定不同的缓存指令:

1 2 3 4
/ /设置的秒数后响应/ /不应再被视为新的共享缓存美元响应- >setPublic ();美元响应- >setMaxAge (600年);

cache - control头将承担以下格式(它可能有额外的指令):

1
cache - control:公共信息= 600

请注意

使用setSharedMaxAge ()方法不同时使用setPublic ()setMaxAge ()方法。根据服务的响应RFC 7234的部分s-maxage设置(添加setSharedMaxAge ()方法)禁止缓存使用陈旧的反应stale-if-error场景。这就是为什么建议同时使用公共信息指令。

过期的到期

一个替代cache - control标题是到期。没有优势或劣势。

根据HTTP规范”到期头部字段提供一个日期/时间的反应被认为是过时的。”的到期标题可以设置的setExpires ()响应方法。需要一个DateTime实例作为一个参数:

1 2 3 4
美元日期=DateTime ();美元日期- >修改(+ 600秒的);美元响应- >setExpires (美元日期);

生成的HTTP头是这样的:

1
到期:星期四,2011年3月01 16:00:00格林尼治时间

请注意

setExpires ()方法自动将日期转换为格林尼治时间时区的要求规范。

注意,在HTTP 1.1之前版本起源服务器不需要发送日期头。因此,缓存(如浏览器)可能需要依靠当地的时钟来评估到期头的寿命计算容易时钟歪斜。另一个限制到期头是规范规定,“不应该发送HTTP / 1.1服务器到期在未来日期超过一年。”

请注意

根据计算新鲜一生RFC 7234的部分到期头值时被忽略s-maxage信息指令的cache - control头被定义。

这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。
欧宝娱乐app下载地址Symfony 5.3支持通过JoliCode