Следующие правила используются практически во всей спецификации для описания основных конструкций разбора (парсинга).
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, как маркер конца для всех протокольных элементов, за исключением тела элемента. Маркер конца строки в пределах тела объекта определен соответствующим типом среды.
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, исключая <">>> |
Символ обратная косая черта ("") может использоваться вместо кавычки внутри закавыченного текста или в структурах комментариев.
|