HTTP1.0、HTTP1.1和HTTP 2区别

0. HTTP版本历史

版本 时间 特性 HTTP/0.9 1991年 1. 只包含GET命令 2. 只能传输 HTML HTTP/1.0 1996年 1. 增加了POST、HEAD命令 2. 可以发送任何形式内容 3. 状态码、多字符集、权限、缓存等 HTTP/1.1 1997年 1. 增加了PUT、PATCH、HEAD、OPTION、DELETE命令 2. 默认持久连接 3. 管道机制 4. Host字段 (*目前主流) HTTP/2 2015年 1. 二进制协议 2. 多路复用 3. 首部压缩 4. 服务器推送

1. HTTP 1.0和HTTP 1.1 区别

HTTP 1.0的缺点——请求效率低

a. 每个TCP连接只能发送一个请求

b. 长连接需要Connection: keep-alive指明

HTTP 1.1 改进

  1. 默认持久连接:即TCP连接默认不关闭,不用声明Connection: keep-alive
  2. 管道机制:在同一个TCP连接里面,客户端可以同时发送多个请求,进一步提高效率

2. HTTP 1.1 和HTTP2的区别

HTTP 1.1的缺点——队头堵塞

虽然1.1版允许复用TCP连接,但是同一个TCP连接里面,所有的数据通信是按次序进行的。

HTTP 2.0 改进

  1. 多路复用:支持一个TCP连接里面并发地处理多个请求(即不用按照顺序)
  2. 二进制协议:HTTP/2 则是一个彻底的二进制协议,头信息和数据体都是二进制,并且统称为“帧”
  3. 头信息压缩: 头信息使用gzip或compress压缩后再发送; 客户端和服务器同时维护一张头信息表,字段对应索引号,只发送索引号
  4. 服务器推送: HTTP/2 允许服务器未经请求,主动向客户端发送资源
经验分享 程序员 微信小程序 职场和发展