web-dev-qa-db-ja.com

HTTP Accept Headerの意味

ブラウザの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+xml、およびtext/htmlすべての品質パラメーターは0.9

または、application/xmlおよびapplication/xhtml+xmlにはデフォルトがあります(q=1)およびtext/htmlにはq=0.9 param?

私は前者を想定していますが、誰かがより明確に知っていることを望んでいました。

43
mckamey

いいえ、 品質パラメーター が欠落している場合q=1.0が想定されます:

各メディア範囲の後には、0〜1のqvalueスケールを使用して相対品質係数[…]を示す「q」パラメータで始まる1つ以上のaccept-paramsが続く場合があります(セクション3.9)。デフォルト値はq = 1です。

したがって、指定された値は、「application/xmlapplication/xhtml + xml、およびimage/pngが推奨されるメディアタイプですが、存在しない場合は、text/htmlエンティティ(text/html;q=0.9)、それが存在しない場合は、text/plainエンティティ(text/plain;q=0.8)、それが存在しない場合は、他のメディアタイプ(*/*;q=0.5)。」

43
Gumbo

口頭で、これは「application/xml、application/xhtml + xmlおよびimage/pngが好ましいメディアタイプであると解釈されますが、存在しない場合はtext/htmlエンティティを送信し、存在しない場合は送信しますtext/plainエンティティは、まだ存在しない場合、他のメディアタイプのエンティティを送信します。」

0
周汉成