# 请求和响应

HTTP协议的核心是传输报文内容。

# 报文结构

TIP

在TCP 报文中,会在传输的数据上添加对应TCP头部信息,比如发送/接收方的端口号,包的序号,标志位等信息。接收方在收到对应的数据包,再解析出来对应的TCP头部信息,找到对应端口的服务,进行处理。

HTTP 协议和TCP协议类似。HTTP是传文本协议,所有头数据都是ASCII码的文本,很容易识别。

报文主要包含三大部分。

# 请求行/状态行

用于描述请求/响应的基本信息。

  • 请求行中包括,请求方式,请求地址,HTTP版本
  • 响应行中包括版本号、状态码、原因

# 请求头/响应头

key-value的形式说明报文。请求中包括UA、ACCEPT-Language、accept-encoding、host、Connection、Date等信息。

TIP

  1. 字段名不区分大小写。
  2. 不允许出现空格和下换线(_),支持中横线(-
  3. 字段名后面是冒号(:
  4. 字段顺序不限制
  5. 字段不能重复(Set-Cookie例外)

# 消息正文(实体)