Accept-Language偏好顺序:通配符在前时如何处理?
问题解答
1. 用户是否偏好en-GB而非en-US?
答案是否定的。
根据HTTP语言协商规则:
- 请求头
Accept-Language: en, en-US里,未指定权重(q值)的条目默认权重为1.0,所以en和en-US的优先级权重相同。 en是通用语言标签,会匹配所有英语变体(包括en-US和en-GB);而en-US是精确语言标签,仅匹配en-US。- 服务器支持的
en-US既能匹配请求中的en,也能精确匹配en-US,匹配精度高于仅能匹配en的en-GB。因此协商时en-US的优先级更高,用户并未表现出偏好en-GB的倾向。
若用户确实偏好en-GB,通常会明确写出en-GB或调整权重(比如en-GB;q=1.0, en-US;q=0.5)。
2. 该请求是否属于合法的服务器请求?
是合法请求。
Accept-Language头的格式符合HTTP规范:多个语言标签用逗号分隔,en(通用语言标签)和en-US(带区域子标签的语言标签)都是合规的语言标识格式,没有语法错误,服务器应当正常处理这类请求。
内容的提问来源于stack exchange,提问作者Checkwhei Sin
相关产品推荐
相关产品推荐

