我正在研究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
Accept标头中的参数q=0.9,*/*;q=0.8
、Accept Language标头中的q=0.8
和Accept Charset标头中的q=0.7,*;q=0.3
是什么意思?
本页摘录http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html:
注意:使用"q"参数名称来分隔介质类型Accept扩展参数中的参数是由于历史实践尽管这会阻止任何名为"q"不用于媒体范围,这样的事件被认为是考虑到IANA中缺乏任何"q"参数,不太可能媒体类型注册表和任何媒体类型的罕见使用Accept中的参数。不鼓励未来的媒体类型注册任何名为"q"的参数。
这基本上是一种给浏览器一种指示对特定媒体类型的偏好的方式。
我认为
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Language
对这个问题有更好的解释。
网站报价:
接受语言:en-US,en;q=0.5
q=(q因子加权)
使用称为权重的相对质量值表示的按偏好顺序排列的任何值