访问控制 - 最大距离与缓存控制



http响应标头中的访问控制 - 最大值和高速缓存控制有什么区别?

Access-Control-Max-Age:1728000
Cache-Control:max-age=21600, public

我感觉他们没有提及同一件事,因为它们经常出现在一起,有时还具有不同的价值观。

如果它们 do 都出现在HTTP标题中,但是包含不同的值,这会有效吗?

http响应标头中的访问控制 - 最大值和高速缓存控制有什么区别?

这些标头用于不同的上下文和不同的目的:

  • Cache-Control在广泛的一般环境中使用,以指定资源将被视为新鲜的最长时间。

  • Access-Control-Max-Age用于CORS前跨请求中。它表明可以缓存前飞行请求的结果多长时间。在这种情况下,结果是Access-Control-Allow-MethodsAccess-Control-Allow-Headers标头的内容。

换句话说,这些价值观涉及不同事物的新鲜感。 Cache-Controlmax-age=用于下载的资源, Access-Control-Max-Age用于其他标题字段中的内容。

我感觉他们没有提及同一件事,因为它们经常出现在一起,有时还具有不同的价值观。

如前所述,它们指的是完全不同的事物。看到他们可能只是巧合。通常建议设置Cache-Controlmax-age。设置Access-Control-Max-Age似乎并不重要,由于浏览器可能会设置明智的默认值。

如果它们都出现在HTTP标题中,但是包含不同的值,这是否有效?

这些标头无关,这是有效的。但是,您示例中的值Access-Control-Max-Age: 1728000有点奇怪,随着浏览器通常将其限制为较小的值(Firefox在24小时(86400秒)和10分钟(600秒)时盖这个帽子。铬还指定默认值5秒。

@filippos的附录:

还要注意,访问控制 - 最大符号只能在前飞行请求中(有意义)使用HTTP选项。同时,HTTP规格(RFC 7231)不允许在HTTP选项请求中缓存("对选项方法的响应不可缓存"),因此,本质上,对于HTTP选项,您只剩下访问控制,年龄

最新更新