改变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许可证。