我已经看到Content-Language
和Accept-Language
的HTTP标头,有人可以解释这些是什么以及它们之间的区别吗?我有一个多语言网站,并且想知道我是否应该由用户设置网站当前所选语言。
答案 0 :(得分:79)
Content-Language
是一个实体标题,用于描述供受众使用的语言,以便用户根据用户自己的首选语言进行区分。实体标头用于HTTP请求和响应。 1
Accept-Language
,一个请求HTTP标头,通告客户端能够理解的语言,以及首选的区域设置变体。 2 可以有多种语言,每种语言具有可选的重量或“质量”值。例如:
Accept-Language: da, en-GB;q=0.8, en;q=0.7
(默认权重为1,因此相当于da;q=1, en-GB;q=0.8, en;q=0.7
)。
您将不得不解析值和权重以查看是否有适当的翻译,并为用户提供最高首选语言权重的翻译。
建议您为用户提供替代方案,例如Cookie设置值,以强制为您的网站使用某种语言。这是因为某些用户可能希望以某种语言查看您的网站,而不会更改其语言接受偏好。
答案 1 :(得分:14)
Content-Language
描述了特定内容所针对的语言。 Accept-Language
是用户代理想要内容的语言列表。最好的方法是Content-Language
描述内容,Accept-Language
传达偏好。
答案 2 :(得分:12)
Content-Language是您所服务的网页的语言。 Accept-Language是您希望接受的语言列表。
答案 3 :(得分:5)
Content-Language entity-header字段描述了所包含实体的目标受众的自然语言。请注意,这可能与entity-body中使用的所有语言不同。
Accept-Language请求标头字段限制首选的自然语言集作为对请求的响应
答案 4 :(得分:0)
Content-Language
entity header用于描述面向受众的语言,从而使用户可以根据自己的偏好语言进行区分。Header type Entity header Forbidden header name no CORS-safelisted response-header yes CORS-safelisted request-header yes
Accept-Language
请求的HTTP标头会宣传客户端能够理解的语言以及首选的语言环境变体。 (按语言,我们指的是自然语言,例如英语,而不是编程语言。)Header type Request header Forbidden header name no CORS-safelisted request-header yes