Accept * HTTP标头中q = 0.5是什么?

时间:2011-12-18 16:04:15

标签: 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

这些'q =%f'是什么意思?

3 个答案:

答案 0 :(得分:228)

这称为相对品质因数。它指定用户喜欢的语言,范围为0到1,如HTTP/1.1 Specification, §14.4所示:

  

每个语言范围可以被赋予相关的质量值,该值表示用户对该范围指定的语言的偏好的估计。质量值默认为“q = 1”。例如,

  Accept-Language: da, en-gb;q=0.8, en;q=0.7
     

意思是:“我更喜欢丹麦语,但会接受英国英语和其他类型的英语。”

答案 1 :(得分:34)

在规范中称为相对品质因数

  

每个媒体范围可以跟随一个或多个接受参数,   以“q”参数开始,表示相对质量   因子。第一个“q”参数(如果有)将媒体范围分开   来自accept-params的参数。质量因素允许用户或   用户代理,以指示相对的偏好程度   media-range,使用从0到1的qvalue标度(第3.9节)。该   默认值为q = 1.

     

...

     

示例

Accept: audio/*; q=0.2, audio/basic
     

应该被解释为“我更喜欢音频/基本,但如果它是最好的,请发送给我任何音频类型   在质量下降80%后可用。“

另见:

答案 2 :(得分:3)

接受语言质量参数可以这样理解:

通过将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 - 因为这是唯一可能的情况,当内容的含义被完全转换时)