Skip to content

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)

http request flow

HTTP in Detail

HTTP

TLS/HTTPS

http protocol format

HTTP Message

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)
HEXDIGDIGIT / "A" / "B" / "C" / "D" / "E" / "F"十六进制数字(0-9, A-F, a-f)
DQUOTE%x22双引号
SP%x20空格
HTAB%x09横向制表符
WSPSP / HTAB空格或横向制表符
LWSP*(WSP / CRLF WSP)直线空白(晚于换行)
VCHAR%x21-7E可见(打印)字符
CHAR%x01-7F任何7-位US-ASCII字符,不包括NUL(%x00)
OCTET%x00-FF8位数据
CTL%x00-1F / %x7F控制字符
CR%x0D回车
LF%x0A换行
CRLFCR LF互联网标准换行
BIT"0" / "1"二进制数字

ABNF_HTTP


OSI Model&TCP/IP Model

OSI

OSI Model&TCP/IP Model


报文头部

报文头部

Last updated:

Released under the MIT License.