一、HTTP2特性

  1. HTTP 协议取消了小版本号,HTTP/2 的正式名字不是 2.0;
  2. HTTP/2 在“语义”上兼容 HTTP/1,保留了请求方法、URI 等传统概念;
  3. HTTP/2 使用“HPACK”算法压缩头部信息,消除冗余数据节约带宽;
  4. HTTP/2 的消息不再是“Header+Body”的形式,而是分散为多个二进制“帧”;
  5. HTTP/2 使用虚拟的“流”传输消息,解决了困扰多年的“队头阻塞”问题,同时实现了“多路复用”,提高连接的利用率;
  6. HTTP/2 也增强了安全性,要求至少是 TLS1.2,而且禁用了很多不安全的密码套件。

二、HTTP3特性

  1. HTTP/3 基于 QUIC 协议,完全解决了“队头阻塞”问题,弱网环境下的表现会优于 HTTP/2;
  2. QUIC 是一个新的传输层协议,建立在 UDP 之上,实现了可靠传输;
  3. QUIC 内含了 TLS1.3,只能加密通信,支持 0-RTT 快速建连;
  4. QUIC 的连接使用“不透明”的连接 ID,不绑定在“IP 地址 + 端口”上,支持“连接迁移”;
  5. QUIC 的流与 HTTP/2 的流很相似,但分为双向流和单向流;
  6. HTTP/3 没有指定默认端口号,需要用 HTTP/2 的扩展帧“Alt-Svc”来发现。

三、应该升级HTTP2吗

HTTP/2 完全兼容 HTTP/1,是“更安全的 HTTP、更快的 HTTPS”,头部压缩、多路复用等技术可以充分利用带宽,降低延迟,从而大幅度提高上网体验;
TCP 协议存在“队头阻塞”,所以 HTTP/2 在弱网或者移动网络下的性能表现会不如 HTTP/1;
迁移到 HTTP/2 肯定会有性能提升,但高流量网站效果会更显著;
如果已经升级到了 HTTPS,那么再升级到 HTTP/2 会很简单;
TLS 协议提供“ALPN”扩展,让客户端和服务器协商使用的应用层协议,“发现”HTTP/2 服务。