改变HTTP缓存的响应

编辑本页

改变HTTP缓存的响应

到目前为止,我们假设每个URI都只有目标资源的一种表示形式。默认情况下,HTTP缓存是通过使用资源的URI作为缓存键完成的。如果两个人请求一个可缓存资源的相同URI,第二个人将收到缓存的版本。

有时这还不够,需要基于一个或多个请求头值缓存相同URI的不同版本。例如,如果在客户端支持压缩页面的情况下压缩页面,那么任何给定的URI都有两种表示:一种是客户端支持压缩,另一种是不支持压缩。这个确定是由值来完成的接受编码请求头。

在这种情况下,您需要缓存存储特定URI响应的压缩版本和未压缩版本,并根据请求返回它们接受编码价值。这是通过使用不同响应头,这是一个以逗号分隔的不同头的列表,其值触发所请求资源的不同表示:

1
变体:Accept-Encoding, User-Agent

提示

这个特殊的不同的值将缓存每个资源的不同版本接受编码而且用户代理请求头。

响应对象提供了一个干净的接口来管理不同标题:

1 2 3 4 5
//设置一个vary头响应->setVary (“接受编码”);//设置多个vary报头响应->setVary ([“接受编码”“用户代理”]);

setVary ()方法接受响应不同的标题名或标题名数组。

此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。
ob娱乐下载Symfony 6.0支持通过SensioLabs