Web Protocol
HTTP1
Hypertext Transfer Protocol (HTTP) is the protocol that specifies how a web browser and a web server communicate. a stateless application-level request/response protocol that uses extensible semantics and self-descriptive message payloads for flexible interaction with network-based hypertext information systems (RFC7230 2014.6)


ABNF (扩充巴科斯-瑙尔范式)操作符
- 空白字符:用来分隔定义中的各个元素
- 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 (扩充巴科斯-瑙尔范式)核心规则
| 规则 | 形式定义 | 意义 |
|---|---|---|
| ALPHA | %x41-5A / %x61-7A | 大写和小写ASCII字母(A-Z, a-z) |
| DIGIT | %x30-39 | 数字(0-9) |
| HEXDIG | DIGIT / "A" / "B" / "C" / "D" / "E" / "F" | 十六进制数字(0-9, A-F, a-f) |
| DQUOTE | %x22 | 双引号 |
| SP | %x20 | 空格 |
| HTAB | %x09 | 横向制表符 |
| WSP | SP / HTAB | 空格或横向制表符 |
| LWSP | *(WSP / CRLF WSP) | 直线空白(晚于换行) |
| VCHAR | %x21-7E | 可见(打印)字符 |
| CHAR | %x01-7F | 任何7-位US-ASCII字符,不包括NUL(%x00) |
| OCTET | %x00-FF | 8位数据 |
| CTL | %x00-1F / %x7F | 控制字符 |
| CR | %x0D | 回车 |
| LF | %x0A | 换行 |
| CRLF | CR LF | 互联网标准换行 |
| BIT | "0" / "1" | 二进制数字 |

OSI Model&TCP/IP Model
报文头部

