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"?
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"?
Это называется относительным коэффициентом качества. Он указывает, какой язык предпочитает пользователь в масштабе от 0 до 1, как видно из HTTP/1.1 Specification, & sect; 14.4:
Каждому языковому диапазону может быть присвоено связанное значение качества, которое представляет собой оценку предпочтения пользователя для языков, указанных в этом диапазоне. Значение качества по умолчанию равно "q = 1". Например,
Accept-Language: da, en-gb;q=0.8, en;q=0.7
означало бы: "Я предпочитаю датчанина, но буду принимать британский английский и другие типы английского языка".
Он называется относительным коэффициентом качества в спецификации:
В каждом медиадиапазоне МОЖЕТ следовать один или несколько параметров accept-params, начиная с параметра "q" для указания относительного качества фактор. Первый параметр "q" (если есть) разделяет медиадиапазон параметр из accept-params. Коэффициенты качества позволяют пользователю или пользовательский агент, чтобы указать относительную степень предпочтения для этого media-range, используя шкалу qvalue от 0 до 1 (раздел 3.9). значение по умолчанию: q = 1.
...
Пример
Accept: audio/*; q=0.2, audio/basic
СЛЕДУЕТ интерпретироваться как "Я предпочитаю аудио/базовый, но присылаю мне любой аудио-тип, если он лучший доступный после 80% снижения качества".
Параметр качества 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
- потому что это единственно возможный ситуация, когда смысл содержимого полностью трансформируется)