在Symfony 2的私有环境中使用缓存

时间:2012-07-23 09:26:38

标签: caching symfony private

我正在尝试缓存个人资料用户页面。为此,我使用:

$response = new Response();
$response->setETag(md5($response->getContent()));

if ($response->isNotModified($this->getRequest())) {
    return $response;
}

但是,应用程序从不使用缓存,因为 $ this-> getRequest() - > getEtags()(在 isNotModified 函数中使用)始终为空。如果我设置

$response->setPublic()

一切都好。那么,我如何在私有环境中使用缓存?

Thx!

1 个答案:

答案 0 :(得分:0)

在Symfony 2中使用私有响应时,它会设置以下标题:

Cache-Control: private

根据HTTP 1/1 specification

  

<强>私有

     
    

表示全部或部分响应消息仅供单个用户使用,不得由共享缓存缓存。这允许源服务器声明响应的指定部分仅针对一个用户,并且不是其他用户的请求的有效响应。私有(非共享)缓存可以缓存响应。

  

这意味着您不能使用ETag标题{/ 1}}。