Что такое q = 0,5 в заголовках Accept * HTTP?

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"?

Ответ 1

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

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

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

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

Ответ 2

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

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

...

Пример

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

СЛЕДУЕТ интерпретироваться как "Я предпочитаю аудио/базовый, но присылаю мне любой аудио-тип, если он лучший доступный после 80% снижения качества".

См. также:

Ответ 3

Параметр качества 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 - потому что это единственно возможный ситуация, когда смысл содержимого полностью трансформируется)