ПРОТОКОЛ ПЕРЕДАЧИ ГИПЕРТЕКСТА -- HTTP / 1.1

Автор статьи: Алексей Симонов
Сайт Автора: Нет
E-mail Автора: Leshik@omsk.com
Дата публикации: 26.03.2005



2.2 Основные правила.

Следующие правила используются в продолжение всей этой спецификации
для описания основных конструкций синтаксического анализа.
Кодированный набор символов US-ASCII определен в ANSI X3.4-1986
[21].

OCTET = <любая 8-битная последовательность данных>

CHAR = <любой US-ASCII символ (октеты 0 - 127)>

UPALPHA = <любой US-ASCII символ верхнего регистра
"A".."Z">

LOALPHA = <любой US-ASCII символ нижнего регистра
"a".."z">

ALPHA = UPALPHA | LOALPHA

DIGIT = <любая US-ASCII цифра "0".."9">

CTL = <любой US-ASCII управляющий символ (октеты
0 - 31) и DEL (127)>

CR = <US-ASCII CR, возврат каретки (13)>

LF = <US-ASCII LF, перевод строки (10)>

SP = <US-ASCII SP, пробел (32)>

HT = <US-ASCII HT, метка горизонтальной
табуляции (9)>

<"> = <US-ASCII двойные кавычки (34)>

HTTP/1.1 определяет последовательность CR LF как метку конца строки
во всех элементах протокола, за исключением тела объекта (смотрите
приложение 19.3 о допустимых применениях (tolerant applications)).
Метка конца строки внутри тела объекта определяется соответствыющим
медиа типом, как описано в разделе 3.7.

CRLF = CR LF

HTTP/1.1 заголовки занимают несколько строк, если следующая строка
начинается с пробела или метки горизонтальной табуляции. Все
незаполненное пространство строки, включая переход на следующую
строку, имеет ту же семантику, что и SP.

LWS = [CRLF] 1*( SP | HT )

Правило TEXT используется только для описательного содержимого поля
и значений, которые не предназначены, для интерпретации
синтаксическим анализатором сообщений. Слова *TEXT могут содержать
символы из наборов символов (character sets), отличных от
ISO 8859-1 [22], только когда они закодированы согласно правилам
RFC 1522 [14].

TEXT = <любой OCTET, за исключением CTLs,
но содержащий LWS>

Шестнадцатеричные цифры используются некоторыми элементами
протокола.

HEX = "A" | "B" | "C" | "D" | "E" | "F"
| "a" | "b" | "c" | "d" | "e" | "f" | DIGIT

Многие значения полей заголовка HTTP/1.1 состоят из слов,
разделенных LWS или специальными символами. Эти специальные символы
ДОЛЖНЫ находиться в цитируемой строке (quoted string), чтобы быть
использованными в качестве значения параметра.

token = 1*<любой CHAR за исключением CTLs или
tspecials>

tspecials = "(" | ")" | "<" | ">" | "@"
| "," | ";" | ":" | "\" | <">
| "/" | "[" | "]" | "?" | "="
| "{" | "}" | SP | HT


В некоторые поля HTTP заголовка могут быть включены комментарии.
Текст комментария окружается круглыми скобками. Комментарии
допускаются только в полях, содержащих "comment" как часть
определения значения поля. Во всех других полях круглые скобки
рассматриваются частью значения поля.

comment = "(" *( ctext | comment ) ")"

ctext = <любой TEXT не включающий "(" and ")">

Строка текста анализируется как одно слово, если это цитирование,
помеченное двойными кавычками.

quoted-string = ( <"> *(qdtext) <"> )

qdtext = <любой TEXT не включающий <">>

Символ наклонной черты влево ("\") может использоваться как
односимвольный механизм цитирования только внутри конструкций
комментария и строки цитирования (quoted-string).

quoted-pair = "\" CHAR



Список похожих статей