HTTP1.0和HTTP2.0有什么区别

https://www.mianshiya.com/bank/1790948499480616961/question/1780933295710695425#heading-9

回答重点:

HTTP1.0版本主要增加了以下几点:

  • 增加了HEAD和post等新方法
  • 增加了响应状态码
  • 引入了请求头和响应头
  • 在请求中加入了HTTP版本号
  • 引入了Content-Type 使得拆书的数据不再限于文本

HTTP1.1版本主要增加以下几点:

  • 新增了连接管理即keepalive,允许持久连接
  • 支持pipeline,无需等待前面的请求响应,即可发送第二次请求
  • 允许响应数据分块
  • 新增缓存控制和管理
  • 加入了Host头

HTTP/2主要增加了以下几点:

  • 是二进制协议,不再是文本协议
  • 支持一个TCP连接发起多请求,移除了pipeline
  • 利用HPACK压缩头部,减少数据传输量
  • 允许服务端主动向客户端推送数据

连接方式

HTTP/1.0 默认使用短连接,每个请求/响应对需要单独建立和关闭TCP连接,频繁建立连接会导致高延迟

HTTP/2.0 默认采用长连接和多路复用,允许单个TCP连接上同时传输多个请求和响应,显著减少延迟

多路复用

HTTP/1.0 没有多路复用功能,多个请求必须按顺序逐个处理(串行),容易引发队头阻塞

HTTP/2.0 支持多路复用,多个请求和响应可以并行传输,避免队头阻塞,提升页面加载速度

头部压缩

HTTP/1.0: 头部以纯文本形式传输,且每次请求都需要重复发送完整的头部,导致冗余和带宽浪费

HTTP/2.0 采用HPACK算法对头部进行压缩,并通过维护“头部表”避免重复传输,减少数据量

服务器推送

HTTP/1.0 没有服务器推送功能,客户端必须主动请求所有资源

HTTP/2.0 服务器可以主动向客户端推送资源,减少客户端等待时间,提升性能

二进制协议 VS 文本协议

HTTP/1.0 基于文本格式解析,处理复杂且容易出错

HTTP/2.0采用二进制分帧层,讲数据分割为更小的帧,提升解析效率,减少错误