HTTP Accept Header含义

mck*_*mey 43 http content-negotiation http-headers mime-types

当浏览器的Accept请求标头显示如下内容时:

Accept: application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Run Code Online (Sandbox Code Playgroud)

这是否意味着application/xml,application/xhtml+xmltext/html所有有质量PARAM 0.9

或者它是否意味着application/xmlapplication/xhtml+xml具有默认(q=1)并text/html具有q=0.9参数?

我假设前者,但希望有人知道更明确.

Gum*_*mbo 43

不,如果缺少质量参数,q=1.0则假定:

每个媒体范围可以跟随一个或多个accept-params,从"q"参数开始,用于使用从0到1的q值标度来指示相对质量因子[...](第3.9节).默认值为q = 1.

因此,给定值将被解释为:" 应用程序/ XML,是application/xhtml + XML图像/ PNG是首选的媒体类型,但如果他们不存在,那么发送text/html的实体(text/html;q=0.9),和如果不存在,则发送text/plain entity(text/plain;q=0.8),如果不存在,则发送一个包含任何其他媒体类型的实体(*/*;q=0.5)."

  • 这里有关于接受标题的一篇很好的博客文章:http://www.gethifi.com/blog/browser-rest-http-accept-headers其中包括OP的问题. (17认同)
  • @McKAMEY:是的,确切地说. (3认同)
  • 我读了RFC,但发现它含糊不清,因此问题.那么媒体范围在每个',''完全结束了吗? (2认同)