http - 为什么网站不使用 Vary : Accept-Language?

标签 http http-headers multilingual

据我所知,在多语言网站上工作时,您应该避免设置 Vary: Accept-language 响应 header 。在我的例子中,用户被重定向到特定语言的页面,例如http://www.example.com/nl/ .

但我找不到任何使用此 Vary header 的网站。这是为什么?即使是 Apple、Microsoft、Samsung、Facebook 的多语言网站也不使用此 header 。

最佳答案

最简单的答案是网站只支持一小部分可能的语言,这意味着网络缓存(即 CDN)必须根据来自浏览器,而实际上只有几个不同的版本。这是一个问题,因为它会导致缓存碎片,从而降低缓存服务器上的缓存命中率并消耗更多资源(CPU/RAM/磁盘)。

Google 还建议对每种语言使用不同的 url https://support.google.com/webmasters/answer/182192

此外,Akamai 过去不支持基于 Vary header 的缓存,但 Vary: Accept-Encoding 除外,但我不认为他们仍然有此限制。 http://my.globaldots.com/knowledgebase.php?action=displayarticle&id=32

关于http - 为什么网站不使用 Vary : Accept-Language?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36953844/

相关文章:

node.js - 在 Node 中仅获取 GET 请求的 header

cookies - 在 cloudflare worker header.set 'Set-Cookie' 函数的 ('Set-Cookie' header 中设置多个 cookie

http - 如何在 OctoberCMS 中设置缓存控制 HTTP header ?

asp.net - Response.WriteFile & Response.Redirect

multilingual - switchLanguage 不使用 LinguaPlone 加载翻译项目

pytorch - 如何理解mbart中的decoder_start_token_id和forced_bos_token_id?

http - 是否可以在 NSIS 中使用 http get 和 http post?

html - HTTP 查询字符串中必须转义哪些字符?

drupal - 如何使用 graphql 获取 drupal 节点的特定翻译

c# - 在 Visual Studio 中显示不友好的 HTTP 500 错误