ABNF 操作符
空白字符 SP; 用来分隔定义中的各个元素
method SP request-target SP HTTP-version CRLF
选择 / : 表示多个规则都可供选择的规则
start-line = request-line / status-line
值范围: %c##-##
OCTAL = "0"/"1"/"2"/"3"/"4"/"5"/"6"/"7" 与 OCTAL = %x30-37等价
序列组合(): 将规则组合起来,视为单个元素
不定量重复 m*n:
* 元素表示零个或者多个元素 *(header-field CRLF)
1* 元素表示一个或者多个元素, 2*4 元素表示两个至四个元素
可选序列 []
[message-body]
基于ABNF语义定义的HTTP消息格式
HTTP-message=start-line *( header-filed CRLF ) CRLF [ message-body ]
- start-line=request-line / status-line
- request-line=method SP resquest-status SP HTTP-version CRLF
- status-line=HTTP-version SP status-code SP reason-phrase CRL
- header-filed=field-name ":" OWS field-value OWS
- OWS=*(SP / HTAB)
- field-name=token
- field-value=*(field-content / obs-fold )
- message-body=*OCTET