变化:Accept-Encoding 告诉客户端或您的反向代理为不同的编码单独缓存 url。(即有/无gzip)。
如果您有不支持 gzip 的旧浏览器在没有 gzip 的情况下为页面提供服务,而对于使用 gzip 的较新浏览器,这将特别有用......因此您的反向代理将缓存同一 url 的两个变体。如果没有此设置,您的反向代理可能最终会向不支持它的浏览器提供 gzip 压缩的内容......给出不需要的结果。
您正在寻找的可能是ETag标头,它有点像用于缓存的“cookie”。
客户端将发送其缓存版本的 etag,然后您可以从您的应用程序中选择客户端的缓存版本是否有效。
$response = new Response();
$response->setETag(md5('some_identifier'));
if( $response->isNotModified($this->get('request')) )
{
// automatically returns null content response with http 304 ( not modified ) header
return $response;
}
else
{
// .. otherwise return a new response, possibly with a different ETag
// $reponse->setEtag(md5('another_identifier'));
return $this->renderView('MyBundle:Main:index.html.twig', array(), $response);
}
受到这篇博文的启发。