首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么网站不使用Vary: Accept-Language?

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

Stack Overflow用户
提问于 2016-04-30 18:40:54
回答 2查看 2.1K关注 0票数 4

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

但是我找不到任何使用这个Vary头的网站。为什么会这样呢?即使是苹果,微软,三星,Facebook的多语言网站也不使用这个标题。

EN

回答 2

Stack Overflow用户

发布于 2016-05-20 04:26:01

最简单的答案是,网站只支持一小部分可能的语言,这意味着web缓存(即,CDN)将不得不基于来自浏览器的Accept-Language头缓存页面的许多不同版本,而实际上只有很少的不同版本。这是一个问题,因为它会导致缓存碎片,从而降低缓存服务器上的缓存命中率,并消耗更多的资源(CPU/RAM/磁盘)。

此外,谷歌还建议使用不同的https://support.google.com/webmasters/answer/182192语言的url

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

票数 2
EN

Stack Overflow用户

发布于 2018-07-18 22:22:32

您可以以类似的方式规范化Vary: Accept-Language:

代码语言:javascript
复制
# Normalize Accept-Language
declare local var.lang STRING;
if (req.http.Accept-Language) {
  set var.lang = req.http.Accept-Language;
}
if (var.lang ~ "^da") {
  set req.http.Accept-Language = "da";
} elsif (var.lang ~ "^sv") {
  set req.http.Accept-Language = "sv";
} else {
  # unknown language
  remove req.http.Accept-Language;
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36953844

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档