Skip to main content

http报文结构

HTTP 协议不负责传输的工作,其核心部分是传输的报文内容

HTTP 协议的请求报文和响应报文结构基本相同,由三大部分组成:

  1. 起始行(start lint):描述请求或响应的基本信息

    • 请求行

      由三部分组成:请求方法,请求目标,版本号,三部分通常使用空格分隔。

      GET / HTTP/1.1
      
    • 状态行

      由三部分组成:版本号,状态码,原因

      HTTP/1.1 200 OK
      
  2. 头部字段集合(header):用 key-value 的形式更详细的说明报文

    请求行或状态行再加上头部字段集合就构成了 HTTP 报文里完整的请求头或响应头

    头部字段可分为四大类:

    • 通用字段
    • 请求字段
    • 响应字段
    • 实体字段:专门描述body的额外信息,例如Content-Length

    请求字段中的Host字段是HTTP协议中规定的必须出现的字段。其作用是告诉服务器当前请求该使用哪个主机来处理。

  3. 消息正文(entity):实际传输的数据

消息正文很多时候直接称为“body”

HTTP 协议规定报文必须有 header,但可以没有 body。而且在 header 之后必须要有一个“空行”,可以理解成 header 和 body 的区分标识。