【问题标题】:What does relative quality factor mean in HTTP?HTTP中的相对质量因子是什么意思?
【发布时间】:2012-02-12 23:10:16
【问题描述】:

大家好,每当我们在地址栏中输入 URL 时,我一直在检查 Chrome 的请求标头,我想知道这些标头到底是什么意思:

Accept: application/xml;q=0.9
Accept-Charset: utf-8;q=0.7
Accept-Language: en;q=0.8

This thread 表示这是质量因素,因此 Chrome 表示它接受 >=90% 质量的应用程序/xml、>=70% 质量的 UTF-8 和 >=80% 的英语。

90% 质量的应用程序/xml、70% 质量的 UTF-8 和 80% 的英语在这里到底是什么意思?

【问题讨论】:

  • 您链接的答案似乎很好地解释了它:"Accept: audio/*; q=0.2, audio/basic" SHOULD be interpreted as "I prefer audio/basic, but send me any audio type if it is the best available after an 80% mark-down in quality." 它显示了客户对不同类型的偏好。如果只有一个,可以说有点毫无意义。

标签: javascript web-services http


【解决方案1】:

RFC 2616 中解释了这些标头。

Accept-Charset: utf-8;q=0.7

理解这一行的关键是 ISO-8859-1 被默认接受,即使它没有被提及。标头说“我想要 ISO-8859-1,但如果使用 ISO-8859-1 会使发送对象的质量降低 30% 以上,我将接受 UTF-8。”我认为这意味着如果 30% 的字符不适合 ISO-8859-1,则使用 UTF-8,但标准似乎不需要这种解释。

对于您提供的其他示例,质量因素是无操作,因为没有替代方案或默认值来抢占已接受内容​​的定义。

【讨论】:

  • 顺便说一句,identityAccept-Encoding 的默认值吗?
【解决方案2】:

相对品质因数这个名称有点误导。
我认为它被用来订购标题值的偏好,就像docs 说:

一个更详细的例子是

   Accept: text/plain; q=0.5, text/html,
           text/x-dvi; q=0.8, text/x-c   

口头上,这将被解释为“text/html 和 text/x-c 是首选的媒体类型, 但如果它们不存在,则发送 text/x-dvi 实体,如果存在 不存在,发送 text/plain 实体。”

在你的例子中很容易决定,因为每个标题只有一个值。

【讨论】:

  • 那么这是否意味着对于您的示例,text/plain;q=0.0001, text/html, text/x-dvi;q=0.0002, text/x-c 是同样等价的,因为它是 relative ?还是我在这里误解了什么?
  • 请注意,qvalues 中的小数点后不能超过三位。此外,接受的答案似乎是错误的。它与“字符百分比”等无关。这似乎只不过是一种对偏好进行排名的方式,而具体的数字仅仅意味着它们是否比其他数字更大或更小。
  • 根据 2014 年的 tools.ietf.org/html/rfc7231#section-5.3.2 ,q 值具有超越单纯排序的特定含义。 “示例 Accept: audio/*; q=0.2, audio/basic 被解释为“我更喜欢音频/基本,但如果它是质量下降 80% 后最好的音频类型,请向我发送任何音频类型”。”跨度>
猜你喜欢
  • 1970-01-01
  • 2014-04-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多