HTTP3.0和HTTP2.0的不同
QUIC协议简介:HTTP/3的核心——更快、更安全的互联网传输技术HTTP/2 是目前最新的网络传输协议(如上图左), - 掘金
传输协议不同
HTTP/2 基于TCP(传输控制协议)
- 依赖TCP的可靠传输,但是tcp的队头阻塞问题会影响性能
- 如果TCP数据包丢失或者延迟,后续所有数据会被阻塞,即使他们属于不同的流
HTTP/3基于QUIC(Quick UDP internet Connections),运行在UDP协议上
- 彻底解决了TCP的队头阻塞问题,每个流独立传输,丢包仅影响当前流
- 支持连接迁移(wifi切换蜂窝网络的时候无需重新握手)
解决队头阻塞的方式
HTTP/2:
- 再应用层实现了多路复用,一个请求/响应通过单一TCP连接并行传输
- 但TCP层的队头阻塞依然存在:如果某个TCP包丢失,所有流都需要等待重传
连接建立速度
HTTP/2: 需要TCP三次握手+ TLS握手
HTTP/3:QUIC将传输和加密合二为一,支持快速建立连接
错误回复与拥塞控制
HTTP/2: 依赖TCP的拥塞控制和丢包重传机制,恢复速度较慢
HTTP/3: QUIC内置更智能的拥塞控制算法,且丢包恢复更快(每个包独立编号,无需全局等待)
头部压缩
HTTP/2: 使用HPACK压缩头部,减少冗余数据传输
HTTP/3: 升级为QPACK,兼容QUIC的无序传输特性,确保头部压缩高效而且可靠
服务器推送
HTTP/2 支持服务器主动推送资源,但实际应用较少
HTTP/3 弱化或者弃用服务器推送,改为其他优化手段
安全性
- HTTP/2:通常依赖 TLS(HTTPS),但非强制。
- HTTP/3:QUIC 默认加密(基于 TLS 1.3),所有数据必须加密传输,安全性更高。