2016-10-18 6 views
2

http GET要求で、正しく理解していれば、Accept-Languageのq値は応答の言語優先順位を示します。 this linkからAccept-Languageヘッダーの異なるq値の重要性

受け入れ言語:DAは、EN-GB; Q = 0.8、EN; Q = 0.7

デンマークが好ましいです。それが失敗すると、英国の英語が要求され、 が最終的にどんなタイプの英語でもあります。

なぜ実際の値は、それが優先順位の問題だけであれば問題ていますか?それは代わりに読み出す場合には、この例で

、それは何の違いになるだろう:

は受け入れ-言語:DAを、エンGB:Q = 0.5、EN:Q = 0.4

答えて

1

Acceptヘッダーはserver-driven content negotiationに使用されます。 HTTP仕様では、品質値の処理方法が指定されておらず、エージェントによって高い値が優先されることが示されています。他のすべては、サーバーを決定するために残されます。

アイデアはさらに調査され、hereと説明されています。これは、リソースの元の品質が1であると仮定し、各操作が変換されたり(変換や別の形式に変換されるなど)、それを劣化させます。考えられる他の要因としては、時間(より良いリソースを生み出すためにサーバーが操作を行うために必要とする)とサイズ(効率の低いフォーマット)があります。

時間とサイズは、通常、言語とは関係ありません。代わりに、利用可能な翻訳の品質(すなわち、完全性)を使用することができる。たとえば、デンマーク語の翻訳が60%しか完了していない場合は、Accept-Language: da, en-gb;q=0.8, en;q=0.7というヘッダーでは英訳が優先されますが、Accept-Language: da, en-gb:q=0.5, en:q=0.4では正しく表示されません。

実際、品質の価値は、まったく目的がないようです。私は、カスタムヘッダーAccept-Language: fr;q=0.5, enを使って、Firefoxで多くの一般的なWebサイト(GoogleやFacebookを含む)をテストしました。テストしたすべてのウェブサイトがフランス語のページを返しました。私はまた、「fr」と「en」を交換し、英語のページだけを得ました。つまり、現代のウェブサイトは品質の価値を完全に無視し、ヘッダー内の言語の順序のみを使用するように見えます。オプションを優先順に並べるのは珍しいことですが、仕様に違反していません。

(私は、各テストの前にすべてのCookieをクリアして、私はフランス語を話す国に住んでいないにもそれが結果に影響を与えないことができますので、私は、自分のコンピュータ上の任意の場所にフランス語を使用してください。)

関連する問題