Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сетевые протоколы в инфокоммуникациях (ПЗ).docx
Скачиваний:
4
Добавлен:
01.07.2025
Размер:
4 Мб
Скачать

Лексемы (token) продукта

Лексемы продукта служат для того, чтобы позволить взаимодействующим приложениям идентифицировать себя с помощью имени и версии программного продукта. Большинство полей, использующих лексемы продукта, допускают также включение в список субпродуктов, которые образуют существенную часть приложения, их лексемы отделяются пробелом. По договоренности, продукты перечисляются в порядке их важности для идентификации приложения.

Product = token ["/" productversion] Productversion = token

Примеры:

User-Agent: CERNLineMode/2.15 libwww/2.17b3 Server: Apache/0.8.4

Лексемы продукта должны быть короткими, и, кроме того, использование их для оповещения или передачи маловажной информации абсолютно запрещено. Хотя любой символ лексемы может присутствовать в версии продукта, рекомендуется, чтобы эта лексема применялась только для идентификации версии (то есть, последовательные версии одного и того же продукта должны отличаться только в части версии продукта).

2.9. Значения качества (Quality values)

HTTP согласование параметров содержимого использует короткие числа с плавающей запятой для указания относительной важности (веса) различных параметров. Вес нормализуется на истинное число в диапазоне 0 1, где 0 равен минимальному, а 1 — максимальному значению. Приложения HTTP/1.1 не должны генерировать более трех чисел после запятой. Рекомендуется, чтобы конфигурация пользователя для этих значений удовлетворяла тем же ограничениям.

qvalue = ( "0" [ "." 0*3DIGIT ] ) | ( "1" [ "." 0*3("0") ] )

Quality values (значения качества) является неверным названием, так как эти значения в большей степени отражают относительную деградацию желательного качества.

Языковые метки

Языковая метка идентифицирует естественный язык. Компьютерные языки в этот перечень не входят. HTTP использует языковые метки в полях AcceptLanguage и ContentLanguage.

Синтаксис и регистр языковых меток HTTP тот же, что и определенный в RFC-1766 [7.1]. Языковая метка содержит одну или более частей: первичная языковая метка и последовательность субметок, которая может и отсутствовать.

languagetag = primarytag *( "" subtag ) primarytag = 1*8ALPHA subtag = 1*8ALPHA

Пробел недопустим в метке, применение строчных и прописных букв не играет никакой роли. Перечень языковых меток контролируется IANA. Ниже приведены примеры языковых меток:

en, enUS, encockney, icherokee, xpiglatin

где любые две буквы первичной метки представляют собой языковую аббревиатуру ISO 639 и две буквы исходной субметки соответствуют коду страны ISO 3166 (последние три метки не являются зарегистрированными; все, кроме последней, могут быть зарегистрированы в будущем).

Метки объектов

Метки объектов служат для сравнения двух или более объектов из одного и того же запрошенного ресурса. HTTP/1.1 использует метки объектов в полях заголовков ETag, If-Match, If-None-Match и If-Range. Метки объекта состоят из строк, заключенных в кавычки, перед ней может размещаться индикатор слабости.

entitytag = [ weak ] opaquetag Weak = "W/" opaquetag = quotedstring

"Сильная метка объекта" (strong entity tag) может принадлежать двум объектам ресурса, если они эквивалентны на октетном уровне.

"Слабая метка объекта" (weak entity tag) отмечается префиксом "W/", она может относиться к двум объектам ресурса, только если объекты эквивалентны и могут быть взаимозаменяемы. Слабая метка объекта может применяться для "слабого" сравнения.

Метка объекта должна быть уникальной для всех версий всех объектов, сопряженных с конкретным ресурсом. Значение данной метки объекта может использоваться для объектов, полученных в результате запросов для различных URI без использования данных об эквивалентности этих объектов.