kol*_*pto 186 http http-headers
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Run Code Online (Sandbox Code Playgroud)
这些'q =%f'是什么意思?
Tim*_*per 238
这被称为相对品质因数.它从0到1的范围内指定用户喜欢的语言,从HTTP/1.1规范,§14.4可以看出:
可以给每个语言范围赋予相关的质量值,该值表示用户对该范围指定的语言的偏好的估计.质量值默认为"q = 1".例如,
Run Code Online (Sandbox Code Playgroud)Accept-Language: da, en-gb;q=0.8, en;q=0.7意思是:"我更喜欢丹麦语,但会接受英国英语和其他类型的英语."
Seb*_*olm 35
它在规范中称为相对品质因数:
每个媒体范围可以跟随一个或多个accept-params,从"q"参数开始,用于指示相对品质因数.第一个"q"参数(如果有的话)将media-range参数与accept-params分开.质量因素允许用户或用户代理使用从0到1的q值标度来指示该媒体范围的相对偏好度(第3.9节).默认值为q = 1.
...
这个例子
Run Code Online (Sandbox Code Playgroud)Accept: audio/*; q=0.2, audio/basic应该被解释为"我更喜欢音频/基本,但如果在质量降低80%之后它是最好的音频类型,请发送给我任何音频类型."
接受语言质量参数可以这样理解:
通过将Accept-Language: pl_PL;q=0.8, en_US;q=0.2,标头附加到请求,我们将以下消息传达给服务器
服务器,请向我提供此网站的波兰语翻译,但仅当其质量
>= %80%与质量相关时,才可以这样做。如果质量是<80%-我不介意获得英文版本,因为它对我来说无关紧要,因为我还是会说英语。
因此,举例来说,作为网页内容提供商,我们可能会Accept-Language以这种方式引入标头解析,以使我们的网站适合根本不讲英语的外国人使用(那么即使翻译后的导航也会有所帮助(例如,仅翻译了导航的页面,具有q=0.1),其中具有q=0.9完全翻译的内容和具有完全翻译的内容,并且可能由说原始语言和翻译语言内容的母语人士进行验证q=0.99-因为这是完全翻译内容含义的唯一可能的情况)