2.2基本規則
下面這些規則描述了基本的解析符號,貫穿于整篇規范中。US-ASCII字符集在ANSI X3.4-1986[21]中被定義。
OCTET = <any 8-bit sequence of data>
CHAR = <any US-ASCII character (octets 0 - 127)>
UPALPHA = <any US-ASCII uppercase letter "A".."Z">
LOALPHA = <any US-ASCII lowercase letter "a".."z">
ALPHA = UPALPHA | LOALPHA
DIGIT = <any US-ASCII digit "0".."9">
CTL = <any US-ASCII control character
(octets 0 - 31) and DEL (127)>
CR = <US-ASCII CR, carriage return (13)>
LF = <US-ASCII LF, linefeed (10)>
SP = <US-ASCII SP, space (32)>
HT = <US-ASCII HT, horizontal-tab (9)>
<"> = <US-ASCII double-quote mark (34)>
HTTP/1。1 定義了回車換行作為所有協議元素行結束標志,entity-body除外。在entity-body的行結束標志和它相關聯的數據類型緊密聯系,des3.7。
CRLF = CR LF
HTTP/1。1頭區的值可以多行,但需要接續行以一個空格或水平TAB開頭。所有的LWS,可以轉彎,都和SP有相同的語義。一個*可以在解釋域值和轉向message downstream時代替任何的LWS用一個單獨的SP。
LWS =[CRLF]1*(SP|HT)
TEXT只被用來描述那些不會被message 解析器解析的域內容域值。只要按RFC2047[14]編碼時,*TEXT可以包含除ISO-8859-1[22]在外的所有字符。
TEXT = <any OCTET except CTLs,but including LWS>
一個CRLF在TEXT定義中只作為頭區的繼續的一部分。多行的LWS會在其所在TEXT被解釋前被一個單獨的SP取代。
十六進制數字字符在幾個協議元素中被使用。
HEX = "A" | "B" | "C" | "D" | "E" | "F"
| "a" | "b" | "c" | "d" | "e" | "f" | DIGIT
許多HTTP/1。1頭區值由LWS或一些特殊字符分隔的字符組成。而在參數值(des3.6)中這些特殊的字符必須在一對引號中被使用。
token = 1*<any CHAR except CTLs or separators>
separators = "(" | ")" | "<" | ">" | "@"
| "," | ";" | ":" | "\" | <">
| "/" | "[" | "]" | "?" | "="
| "{" | "}" | SP | HT
注釋可以包含在一些HTTP頭區內,但是要在()內。而且只能在注釋區內。在其他區,會被認為是區值的一部分。
comment = "(" *( ctext | quoted-pair | comment ) ")"
ctext = <any TEXT excluding "(" and ")">
一個text字符串如果被雙引號包著,那會被認為是一個單獨的詞。
quoted-string = ( <"> *(qdtext | quoted-pair ) <"> )
qdtext = <any TEXT except <">>
斜劃線可以被作為單字符的轉換機制,但是必須要在引號內包著,并且是在注釋區。
quoted-pair = "\" CHAR