2.2基本規(guī)則
下面這些規(guī)則描述了基本的解析符號,貫穿于整篇規(guī)范中。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 定義了回車換行作為所有協(xié)議元素行結(jié)束標(biāo)志,entity-body除外。在entity-body的行結(jié)束標(biāo)志和它相關(guān)聯(lián)的數(shù)據(jù)類型緊密聯(lián)系,des3.7。
CRLF = CR LF
HTTP/1。1頭區(qū)的值可以多行,但需要接續(xù)行以一個空格或水平TAB開頭。所有的LWS,可以轉(zhuǎn)彎,都和SP有相同的語義。一個*可以在解釋域值和轉(zhuǎn)向message downstream時代替任何的LWS用一個單獨的SP。
LWS =[CRLF]1*(SP|HT)
TEXT只被用來描述那些不會被message 解析器解析的域內(nèi)容域值。只要按RFC2047[14]編碼時,*TEXT可以包含除ISO-8859-1[22]在外的所有字符。
TEXT = <any OCTET except CTLs,but including LWS>
一個CRLF在TEXT定義中只作為頭區(qū)的繼續(xù)的一部分。多行的LWS會在其所在TEXT被解釋前被一個單獨的SP取代。
十六進制數(shù)字字符在幾個協(xié)議元素中被使用。
HEX = "A" | "B" | "C" | "D" | "E" | "F"
| "a" | "b" | "c" | "d" | "e" | "f" | DIGIT
許多HTTP/1。1頭區(qū)值由LWS或一些特殊字符分隔的字符組成。而在參數(shù)值(des3.6)中這些特殊的字符必須在一對引號中被使用。
token = 1*<any CHAR except CTLs or separators>
separators = "(" | ")" | "<" | ">" | "@"
| "," | ";" | ":" | "\" | <">
| "/" | "[" | "]" | "?" | "="
| "{" | "}" | SP | HT
注釋可以包含在一些HTTP頭區(qū)內(nèi),但是要在()內(nèi)。而且只能在注釋區(qū)內(nèi)。在其他區(qū),會被認(rèn)為是區(qū)值的一部分。
comment = "(" *( ctext | quoted-pair | comment ) ")"
ctext = <any TEXT excluding "(" and ")">
一個text字符串如果被雙引號包著,那會被認(rèn)為是一個單獨的詞。
quoted-string = ( <"> *(qdtext | quoted-pair ) <"> )
qdtext = <any TEXT except <">>
斜劃線可以被作為單字符的轉(zhuǎn)換機制,但是必須要在引號內(nèi)包著,并且是在注釋區(qū)。
quoted-pair = "\" CHAR