Лаборатория поисковой оптимизации

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


 <  Расширенные BNF  Содержание  Параметры протокола  > 

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

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

=

LF

=

SP

=

HT

=

<">

=

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

CRLF

= CR LF

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

LWS

= [CRLF] 1*( SP | HT )

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

TEXT

= <любой OCTET за исключением CTL, но включая LWS>

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

HEX

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

Многие значения полей заголовков HTTP/1.1 состоят из слов, разделенных LWS или специальными символами. Эти специальные символы должны представлять собой строки, заключенные в кавычки, чтобы использоваться в качестве значения параметра.

Token

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

Tspecials

= "(" | ")" | "<" | ">" | "@"

| "," | ";" | ":" | "" | <">

| "/" | "[" | "]" | "?" | "="

| "{" | "}" | SP | HT

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

Комментарий

= "(" *( ctext | комментарий) ")"

ctext

= <любой TEXT, исключая "(" и ")">

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

quoted-string

= ( <"> *(qdtext) <"> )

qdtext

= <любой TEXT, исключая <">>>

Символ обратная косая черта ("") может использоваться вместо кавычки внутри закавыченного текста или в структурах комментариев.

quoted-pair

= "" CHAR



RFC 2068