Http版本间的区别

109 阅读2分钟

http目前经历了四个版本分别为 0.9, 1.0, 1.1, 2.0,3.0

Http 0.9

  1. 只支持GET请求
  2. 没有状态码、请求头、响应头
  3. 只能传输纯文本
  4. 没有持久链接,每个请求都需要新建立TCP链接

Http 1.0

  1. 引入请求头和响应头,可以在传输内容之外携带更多的信息比如音频图片
  2. 支持get post head请求方法
  3. 增加了状态码
  4. 仍旧没有持久链接,即每个请求都会新建和关闭一个TCP链接

Http 1.1

  1. 持久连接:支持链接复用,即TCP链接在一个请求结束后不会立即关闭,允许多个请求复用同一个链接
  2. 支持服务器讲数据分块传输,适合传输动态生成的内容
  3. 增加了PUT DELETE OPTIONS等方法
  4. 头部压缩: 通过 HPACK 压缩减少了头部大小,提高了传输效率。

Http 2

  1. 将Http请求和响应转换为二进制格式
  2. 允许多个请求和响应同时通过一个TCP链接,不会因为一个请求阻塞而影响其他请求
  3. 服务器可以主动向客户端推送资源,而不是等待客户端请求

Http3

  1. 不再基于TCP而是基于QUIC,这是一个新的协议,运行在UDP之上,具有更快的连接速度和更好的错误处理

整理表格

特性HTTP/0.9HTTP/1.0HTTP/1.1HTTP/2HTTP/3
请求方法仅 GETGET, POST, HEAD更多方法(PUT, DELETE)同 HTTP/1.1同 HTTP/2
持久连接不支持不支持支持支持支持
多路复用不支持不支持不完全支持支持支持
传输格式纯文本文本文本二进制二进制
头部压缩支持支持
基础协议TCPTCPTCPTCPQUIC(基于 UDP)