Следующие правила используются практически во всей спецификации для описания основных конструкций разбора (парсинга).
OCTET |
= |
CHAR |
= |
UPALPHA |
= |
LOALPHA |
= < любая строчная буква US-ASCII "a".."z"> |
ALPHA |
= UPALPHA | LOALPHA (строчная или прописная буква) |
DIGIT |
= |
CTL |
= |
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 |
= |
В некоторых протокольных элементах используются шестнадцатеричные цифровые символы.
HEX |
= "A" | "B" | "C" | "D" | "E" | "F" | "a" | "b" | "c" | "d" | "e" | "f" | DIGIT |
Многие значения полей заголовков HTTP/1.1 состоят из слов, разделенных LWS или специальными символами. Эти специальные символы должны представлять собой строки, заключенные в кавычки, чтобы использоваться в качестве значения параметра.
Token |
= 1* |
Tspecials |
= "(" | ")" | "" | "@" |
| "," | ";" | ":" | "\" | |
|
| "/" | "[" | "]" | "?" | "=" |
|
| "{" | "}" | SP | HT |