HTTP 2.0 和 3.0 有什么区别?
1) 基于的传输层协议不同:
- HTTP/2:基于 TCP,使用二进制分帧层(Binary Framing Layer)实现多路复用。
- HTTP/3:基于 UDP,使用 QUIC 协议(Quick UDP Internet Connections),提供类似TCP 的可靠性和多路复用。
2) 性能和可靠性区别:
- HTTP/2:解决了HTTP/1.x中的队头阻塞问题,但仍然受制于TCP的队头阻塞,尤其在高延迟或丢包情况下。
- HTTP/3:通过 QUIC 协议,避免了 TCP 队头阻塞,即使在网络不稳定的情况下也能提供更好的性能。
3)从安全性角度来看:
- HTTP/2:可以使用 TLS 加密(HTTPS),但加密并非强制要求。
- HTTP/3:默认使用 QUIC 自带的 TLS 1.3加密,安全性更高,且加密是强制的。
4) 从连接建立速度:
- HTTP/2:需要 TCP 三次握手和 TLS 握手,连接建立相对较慢。
- HTTP/3:QUIC 集成了连接建立和加密握手,连接建立速度更快,尤其在初次连接时。
扩展知识
QUIC 技术优势
QUI,Quick UDP Internet Connections 是一个基于 UDP 的传输协议,由 Google 开发,旨在替代TCP 以提高网络传输性能和安全性。QUIC 在传输层和应用层之间提供可靠、低延迟的传输服务。
QUIC(Quick UDP Internet Connections)是一种由 Google 开发的基于 UDP 的传输层协议,旨在改进 HTTP/2 的性能。QUIC 的设计目标是减少连接延迟,提高传输效率和安全性。以下是 QUIC 的一些技术优势和细节:
技术优势
1)低延迟连接建立:
- QUIC 使用 0-RTT(Zero Round Trip Time)技术,可以在首次握手时减少延迟。对于已经建立过连接的客户端,可以直接发送数据,无需等待服务器的响应。
2)内置加密:
- QUIC 协议默认采用 TLS 1.3 进行端到端加密,从而提高了数据传输的安全性,并简化了协议设计,不再需要像 TCP 那样进行额外的加密层配置。
3)减少了队头阻塞(Head-of-Line Blocking):
- 与 TCP 不同,QUIC 在每个连接内使用多个独立的流,这意味着一个流上的丢包不会阻塞其他流的数据传输,从而显著减少队头阻塞问题,提高传输效率。
4)更快的拥塞控制:
- QUIC 可以更快速地调整拥塞控制算法,因为它能够访问更多的上下文信息(如链路的RTT、丢包率等),且能够在应用层进行定制优化。
5)连接迁移:
- QUIC 支持连接迁移,当客户端的 IP 地址或网络环境变化时(例如从 Wi-Fi 切换到蜂窝网络),连接依然可以保持,不会像 TCP 那样中断。
6)更高的带宽利用率:
- QUIC 通过改进的流量控制机制,可以更好地利用可用带宽,从而提高传输速度和效率。