2011-03-16 99 views
43

當瀏覽器的接受請求頭說,像下面這樣:HTTP 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質量PARAM?

或者這是否意味着application/xmlapplication/xhtml+xml有默認值(q=1)和text/htmlq=0.9 PARAM?

我假設前者,但希望有人知道更明確。

回答

43

否,如果quality parameter丟失q=1.0假設:

每個媒體範圍之後可以是一個或多個接受-PARAMS,用「q」參數來開始用於指示相對質量因子...]使用從0到1的q值(3.9節)。默認值是q = 1。

所以給定值將被解釋爲:「應用/ XML應用/ XHTML + xml的,和圖像/ PNG是優選的媒體類型,但如果它們不存在,然後發送文本/ html實體(text/html;q=0.9),如果不存在,則發送文本/明文實體(text/plain;q=0.8),如果該實體不存在,則使用任何其他介質發送實體類型(*/*;q=0.5)。「

+1

所以說明一下,'q = 0.9'只適用於'text/html'的例子嗎?作爲推論,'image/png'也是'q = 1'? – mckamey 2011-03-16 20:44:36

+2

我閱讀了RFC,但發現它是模棱兩可的,因此是一個問題。那麼媒體範圍是否完全停止在每個「'」,「? – mckamey 2011-03-16 20:46:31

+3

@McKAMEY:是的,確切的。 – Gumbo 2011-03-16 20:47:14

0

在術語上,這將被解釋爲「application/xml,application/xhtml + xml和image/png是首選媒體類型,但如果它們不存在,則發送文本/ html實體,如果不存在,發送文本/普通實體,如果仍然不存在,則發送具有任何其他媒體類型的實體。「