HTTP 报文结构是怎样的?

2021-07-09T17:27:17

4.HTTP 报文结构是怎样的?
对于 TCP 而言,在传输的时候分为两个部分: TCP头 和 数据部分。而 HTTP 类似,也是 header + body 的结构,具体而言:

起始行 + 头部 + 空行 + 实体

由于 http 请求报文和响应报文是有一定区别,因此分开介绍

起始行

对于请求报文来说,起始行类似下面这样:

GET /home HTTP/1.1

也就是方法 + 路径 + http版本。对于响应报文来说,起始行一般张这个样:

HTTP/1.1 200 OK

响应报文的起始行也叫做状态行。由 http版本、状态码和原因 三部分组成。⚠️注意:在起始行中,每两个部分之间用空格隔开,最后一个部分后面应该接一个换行,严格遵循 ABNF 语法规范

头部

展示一下请求头和响应头在报文中的位置:

不管是请求头还是响应头,其中的字段是相当多的,而且牵扯到http非常多的特性,这里就不一一列举的,重点看看这些头部字段的格式:

  • 字段名不区分大小写
  • 字段名不允许出现空格,不可以出现下划线_
  • 字段名后面必须紧接着:

    空行

    很重要,用来区分开头部和实体。问: 如果说在头部中间故意加一个空行会怎么样?那么空行后的内容全部被视为实体。

    实体

    就是具体的数据了,也就是 body 部分。请求报文对应请求体, 响应报文对应响应体。

当前页面是本站的「Baidu MIP」版。发表评论请点击:完整版 »