HTTP Accept Header含义

时间:2011-03-16 20:40:07

标签: http http-headers mime-types content-negotiation

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

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

这是否意味着application/xmlapplication/xhtml+xmltext/html都具有0.9的质量参数?

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

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

2 个答案:

答案 0 :(得分:43)

不,如果quality parameter缺失q=1.0,则假定:

  

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

因此,给定值将被解释为:“ application / xml application / xhtml + xml image / png 是首选媒体类型,但如果它们不存在,则发送 text / html 实体(text/html;q=0.9),如果不存在,则发送文本/ plain entity(text/plain;q=0.8),如果不存在,则发送一个包含任何其他媒体类型(*/*;q=0.5)的实体。“

答案 1 :(得分:0)

口头上,这将被解释为" application / xml,application / xhtml + xml和image / png是首选媒体类型,但如果它们不存在,则发送text / html实体,如果如果不存在,则发送text / plain实体,如果仍然不存在,则发送一个包含任何其他媒体类型的实体。"