Php symfony中私有缓存与公共缓存的区别

Php symfony中私有缓存与公共缓存的区别,php,symfony,caching,Php,Symfony,Caching,我正在尝试将缓存与symfony一起使用 在我的控制器中,我编写了这个代码段 public function indexAction(Request $request) { $response = $this->render('default/index.html.twig', [ 'base_dir' => realpath($this->getParameter('kernel.root_dir').'/..'), ]);

我正在尝试将缓存与symfony一起使用

在我的控制器中,我编写了这个代码段

    public function indexAction(Request $request)
{
    $response = $this->render('default/index.html.twig', [
        'base_dir' => realpath($this->getParameter('kernel.root_dir').'/..'),
    ]);

    $response->setMaxAge(10);
    $response->setPublic();
    return $response;
}
在我的小枝中,我有一个函数
random(100)
,然后我还启用了
$kernel=newappcache($kernel)在app_dev.php和app.php中
刷新时,我看到相同的“随机数”持续10秒,这是正常的

如果我省略了
$response->setPublic(),缓存变为私有,我总是有不同的数字。我还尝试登录到我的应用程序,但缓存似乎不起作用

我还尝试在appCache()中添加getOptions

如果缓存是私有的,则告诉反向代理您不希望缓存响应。Symfony将发送此标题:

Cache-Control: private
这绕过了中间代理,因为响应是针对单个用户的。在本例中,使用浏览器缓存。如果不想这样做,请将其设置为
public


您可以在此处阅读更多信息:。

我不确定您的问题是什么,您能更清楚地了解它吗?当然!当我使用$response->setPublic()时;缓存工作(为了测试,我在twig中使用random(100)并在10秒内看到相同的数字),如果我使用$response->setPrivate(),我在使用private时总是使用不同的数字(刷新浏览器时),我不使用缓存?我知道cache private是针对单个用户的(如logged used)。不,如果您设置了
cache Control:private
,您只是不使用反向代理的缓存,但您仍然可以使用浏览器的缓存。谢谢,这就是我要找的答案!
Cache-Control: private