Что такое q = 0,5 в заголовках Accept * HTTP? - PullRequest
182 голосов
/ 18 декабря 2011
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7

Что означают эти 'q =% f'?

Ответы [ 3 ]

228 голосов
/ 18 декабря 2011

Это называется относительный коэффициент качества .Он указывает, какой язык предпочтет пользователь в масштабе от 0 до 1, как видно из спецификации HTTP / 1.1, §14.4 :

Каждый диапазонМОЖЕТ быть задано соответствующее значение качества, которое представляет собой оценку предпочтений пользователя для языков, указанных в этом диапазоне.Значение качества по умолчанию равно "q = 1".Например,

  Accept-Language: da, en-gb;q=0.8, en;q=0.7

будет означать: «Я предпочитаю датский, но приму британский английский и другие типы английского».

34 голосов
/ 18 декабря 2011

Он называется относительным показателем качества в спецификации:

. Каждый медиа-диапазон МОЖЕТ сопровождаться одним или несколькими параметрами accept, начиная с "q".параметр для указания относительного показателя качества.Первый параметр «q» (если есть) отделяет параметр (ы) медиа-диапазона от параметров accept.Коэффициенты качества позволяют пользователю или пользовательскому агенту указывать относительную степень предпочтения для этого медиа-диапазона, используя шкалу qvalue от 0 до 1 (раздел 3.9).Значением по умолчанию является q = 1.

...

Пример

Accept: audio/*; q=0.2, audio/basic

ДОЛЖЕН интерпретироваться как «Я предпочитаю аудио / базовый, но присылайте мне любой аудиовведите, если это лучший из доступных после 80% снижения качества. "

См. также:

3 голосов
/ 30 ноября 2017

Параметр качества Accept-languages ​​можно понимать так:

, прикрепив заголовок Accept-Language: pl_PL;q=0.8, en_US;q=0.2, к запросу, который мы передаем на сервер после сообщения

Сервер, пожалуйста, предоставьте мне польский перевод этого сайта, но делайте это только в том случае, если его качество >= %80% связано с качеством. В случае, если качество <80% - я не против получить английскую версию, потому что она не имеет значения для меня, так как я все равно говорю по-английски.

Так, например, в качестве поставщика контента веб-страницы мы могли бы ввести синтаксический анализ заголовка Accept-Language таким образом, чтобы наш веб-сайт был пригоден для иностранцев, не говорящих по-английски вообще (тогда была бы полезна даже переведенная навигация (страницы, переведенные * только у навигации, скажем, q=0.1), где полностью переведенный контент имеет q=0.9, а полностью переведенный контент и , подтвержденный носителями языка, говорящими как на языке оригинала, так и на переведенном языке, может иметь q=0.99 - потому что это единственно возможная ситуация, когда значение содержания полностью преобразовано)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...