http报文
HTTP/1.1以及更早的HTTP协议报文都是语法规则可读的。在HTTP/2中,这些报文被嵌入到了一个新的二进制结构,帧。帧允许实现很多优化,比如报文头部的压缩和复用。即使只有原始HTTP报文的一部分以HTTP/2发送出来,每条报文的语法规则依旧不变,客户端会重组原始HTTP/1.1请求。因此用HTTP/1.1格式来理解HTTP/2报文仍旧有效。
一个完整的http信息应该分为通信信息,请求,响应3个部分
通信信息:
* About to connect() to 192.168.1.103 port 80 (#0)
* Trying 192.168.1.103...
* Connected to 192.168.1.103 (192.168.1.103) port 80 (#0)
主要是一些域名解析信息
请求:
请求由以下以下4个部分组成:
请求行:
-
请求方式(method):一般是由get,post,options,head等请求方法(后面会细讲)去获取数据。
-
路劲(path):获取资源的路劲,一般是完整的URL,协议(http://),tcp端口等等。
-
协议版本(version of the protocol):具体的协议版本
head头部信息(Request部分)
-
头部信息(headers):主要是一些可选的头部信息(host,accept)
空行
请求正文(使用post/put方法的话存在正文)
-
请求正文,主要请求哪些数据
响应:
响应由以下以下几个部分组成:
响应行
- HTTP协议版本号。
- 状态码(status code),来告知对应请求执行成功或失败,以及失败的原因。
- 状态信息,这个信息是非权威的状态码描述信息,可以由服务端自行设定。
响应头(Responses部分)
- HTTP headers,与请求头部类似。
空行
响应体
- 响应正文,比起请求报文,响应报文中更常见地包含获取的资源。