"q = 0.9,*/*; q = 0.8"是什么意思

Map*_*eal 17 http httpwebrequest http-headers

我正在研究http协议.当我使用fiddler捕获请求时,我发现一些特殊的论点.

http请求的一部分:

Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryiUs1bDxxBwTvwCxS
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,\*/\*;q=0.8
Accept-Encoding: gzip,deflate,sdch
Accept-Language: zh-CN,zh;q=0.8
Accept-Charset: GBK,utf-8;q=0.7,*;q=0.3
Run Code Online (Sandbox Code Playgroud)

什么参数q=0.9,\*/\*;q=0.8在接受头,q=0.8在接受语言头,并q=0.7,*;q=0.3在接收字符集报头是什么意思?

Fre*_*sen 10

摘自本页http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html:

注意:使用"q"参数名称将媒体类型参数与Accept扩展参数分开是由于历史惯例.虽然这可以防止任何名为"q"的媒体类型参数与媒体范围一起使用,但由于IANA媒体类型注册表中缺少任何"q"参数以及任何媒体类型的罕见使用,因此认为此类事件不太可能发生. Accept中的参数.不鼓励未来的媒体类型注册任何名为"q"的参数.

这基本上是一种为浏览器提供指示某种媒体类型的偏好的方法.


小智 5

我认为

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Language

对问题有更好的解释。

引用自网站:

接受语言:en-US,en;q=0.5

;q=(q 因子加权)

使用称为权重的相对质量值表示的按偏好顺序排列的任何值。