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


只有注册用户登录后才能发表评论。


网站导航: