http 缓存如何与接受语言标头结合使用

问题描述 投票:0回答:1

我试图了解浏览器中发生的缓存的更深入的内部工作原理。你能帮我吗?

页面 https://developer.mozilla.org/en-US/docs/Web/HTTP/Caching 指出:“主缓存键由请求方法和目标 URI 组成(通常只使用 URI因为只有 GET 请求才是缓存目标)。”

当我这样陈述/回忆它时,我理解正确吗?:

来自对

http://my.site/my/resource
的 GET 请求的响应存储在类似数据库的键值对中,其中键可以是
GET http://my.site/my/resource
http://my.site/my/resource
。我认为响应是 HTML / JSON,无论响应正文包含什么内容。

我怀疑这种解释在某些方面是有缺陷的:

如果我对带有

http://my.site/my/resource
标头的 url
accept-language: nl-NL
执行 GET 请求会怎样?之后我立即使用
accept-language: en-US
发出另一个 GET 请求。我认为由于之前开始理解的原因,第二个请求应该返回与第一个请求相同的响应。因为缓存键是相同的。我理解正确吗?

如果这是正确的,那么当接受语言标头更改时,请求如何会导致不同的表示形式。您是否需要随请求发送标头,以在接受语言标头更改时绕过缓存?

http caching
1个回答
0
投票

Vary
添加到响应标头:

Vary: Accept-Language

它告诉浏览器缓存在缓存键中使用 Accept-Language 标头。

© www.soinside.com 2019 - 2024. All rights reserved.