浏览器工作原理-HTTP 协议

2020-05-12  本文已影响0人  抉择_路

基于 ABNF 语义定义的 HTTP 消息格式

1. ABNF (扩充巴科斯-瑙尔范式)操作符

2. ABNF (扩充巴科斯-瑙尔范式) 核心规则

规则 形式定义 意义
ALPHA %x41-5A / %x61-7A 大写和小写 ACSII 字母(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 %21-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" 二进制数字

3. 基于 ABNF 描述的 HTTP 协议

HTTP-message = start-line *(header-field CRLF) CRLF [message-body]
  start-line = request-line / status-line
     request-line = method SP request-target SP HTTP-version CRLF
     status-line = HTTP-version SP status-code SP reason-phrase CRLF
  header-field = field-name ":" OWS field-value OWS
    OWS = *(SP / HTAB)
       field-name = token
       field-value = *(field-content / obs-fold)
  message-body = *OCTET  二进制的方式传递 

4.常见方法

5.两种传输HTTP 包体的方式

5.1 定长包体

5.2 不定长包体的 chunk 传输方式

上一篇 下一篇

猜你喜欢

热点阅读