Javascript 相对质量因子在HTTP中的含义是什么?

Javascript 相对质量因子在HTTP中的含义是什么?,javascript,web-services,http,Javascript,Web Services,Http,大家好,我一直在检查Chrome的请求头,每当我们在地址栏中键入URL时,我想知道这些头到底意味着什么: Accept: application/xml;q=0.9 Accept-Charset: utf-8;q=0.7 Accept-Language: en;q=0.8 说这是质量因素,所以Chrome说它接受>=90%的质量应用程序/xml、>=70%的质量UTF-8和>=80%的英语 90%的质量应用程序/xml、70%的质量UTF-8和80%的英语在这里究竟意味着什么?相对质量因子的名

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

Accept: application/xml;q=0.9
Accept-Charset: utf-8;q=0.7
Accept-Language: en;q=0.8
说这是质量因素,所以Chrome说它接受>=90%的质量应用程序/xml、>=70%的质量UTF-8和>=80%的英语

90%的质量应用程序/xml、70%的质量UTF-8和80%的英语在这里究竟意味着什么?

相对质量因子的名称有点误导。
我认为它被用来对标题的值进行排序,就像这样说:

一个更详细的例子是

   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实体,如果 不存在,请发送文本/普通实体。“


在您的示例中,很容易确定,因为每个标题只有一个值。

中对这些标题进行了解释

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


对于您给出的其他示例,质量因数为no ops,因为没有替代品或默认值来抢占已接受内容的定义。

您链接到的答案似乎很好地解释了这一点:
“Accept:audio/*;q=0.2,audio/basic”应解释为“我更喜欢音频/基本音频,但如果在质量降低80%后是最好的音频类型,请发送给我。“
它显示客户对不同类型的偏好。如果只有一个,那么它可以说是毫无意义的。那么这是否意味着对于您的示例,
text/plain;q=0.0001,text/html,text/x-dvi;q=0.0002,text/x-c
是同等的,因为它是相对的?或者我误解了什么?请注意,qvalues中小数点后的数字不能超过三位。而且,公认的答案似乎是错误的。这与“字符百分比”之类的东西无关。这似乎只不过是一种对偏好进行排序的方式,具体的数字只意味着它们比其他数字大还是小。根据2014年的统计,q值不仅仅是排序,还有一个特定的含义。“示例Accept:audio/*;q=0.2,audio/basic被解释为“我更喜欢audio/basic,但如果它是质量降低80%后最好的音频类型,请发送给我。”“顺便问一下,
identity
接受编码的默认值吗?”?
Accept-Charset: utf-8;q=0.7