【问题标题】:What is the purpose of the "q" values in the HTTP "Accept" request header?HTTP“接受”请求标头中“q”值的用途是什么?
【发布时间】:2012-05-16 19:35:15
【问题描述】:

我使用 Firefox 发起了一个 http 请求。现在请求标头显示如下:

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

但很想知道q=0.9,*/*;q=0.8是什么

【问题讨论】:

标签: http http-headers


【解决方案1】:

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

信息可在here

here 也有很好的解释。

【讨论】:

    【解决方案2】:

    Accept 标头列表首先在 , 拆分,然后在 ; 拆分每个条目的附加参数。因此,您示例中的列表分为text/htmlapplication/xhtml+xmlapplication/xml;q=0.9*/*;q=0.8。 每个条目上的q= 参数向服务器指示该媒体类型的偏好程度。如果缺少它(如前 2 个条目中),则默认为其最大值 1*/*;q=0.8 的最后一个条目向服务器表明,最终任何内容类型都可以接受,但不如列出的其他内容类型更可取。否则,服务器可能决定根本不发送任何内容,因为客户端无论如何都不会“接受”它。

    【讨论】:

      【解决方案3】:

      要添加到@Robin479的正确答案,问题中的accept header相当于,

      接受:
      文本/html;q=1,
      应用程序/xhtml+xml;q=1,
      应用程序/xml;q=0.9,
      */*;q=0.8

      注意:换行符只是为了更好的可读性。

      【讨论】:

        【解决方案4】:

        Q 值始终是一个从零到一的数字,它代表相对质量值。默认 Q 值为 1.0。

        所以 Q 值为 0.9 的东西比 Q 值为 0.6 的东西更受欢迎。

        【讨论】:

          猜你喜欢
          • 2012-01-23
          • 2012-04-06
          • 1970-01-01
          • 2010-10-01
          • 2012-05-08
          • 1970-01-01
          • 2011-10-25
          • 2013-07-02
          • 1970-01-01
          相关资源
          最近更新 更多