据我所知,在多语言网站上工作时,您应该避免设置 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/