API 平台 - 更改 max_age 配置值不会更改 max-age 请求值

API Platform - Changing max_age config value doesn't change the max-age request value

我有一个使用 API 平台的应用程序和另一个使用我的 API 平台的应用程序。

我想更改 max-age 值,但是当我更改配置中的值时,它不会在我发送请求时更改值...

这是我的配置:

api_platform:
  ...
  http_cache:
    max_age: 600
  ...

这是我的请求和回复 headers:

告诉我哪里做错了。

RFC 在这里讨论最大年龄:Header Field Definitions
此页面也可以为您提供很多帮助:Hypertext Transfer Protocol

可能的 max-age 值取决于 browser/version 和任何 proxy在路上。

在没有任何明确的标准指导的情况下,也适用于缓存控制。

只要你通常需要,选择任意更长的值可能会破坏一些用户代理。

为什么响应缓存 headers 被设置为私有和 max-age=0 的可能解释是有一个 session 打开(即使你不使用它) .发生这种情况时,SessionListener 将覆盖缓存 headers 以禁用它。

为了解决这个问题,您只需在防火墙配置中设置 stateless: true 即可:

# config/packages/security.yaml
security:
    firewalls:
        main:
            stateless: true