HTTP/2协议:多路复用解决队头阻塞问题

HTTP/1.1的问题 队头阻塞(Head-of-Line Blocking) HTTP/1.1管道化(Pipelining): 客户端:GET /1.js → GET /2.js → GET /3.js ↓ ↓ ↓ 服务器:200 OK 等待... 等待... (1.js) 问题:第一个响应慢,阻塞后续响应 解决方案的局限 方案1:并发多个TCP连接 浏览器同时开6-8个TCP连接: 连接1: GET /1.js 连接2: GET /2.js 连接3: GET /3.js ... 问题: - TCP连接数有限 - 每个连接都要握手(延迟) - 拥塞控制独立(带宽利用率低) 方案2:域名分片 static1.example.com static2.example.com static3.example.com 每个域名6个连接 × 3个域名 = 18个连接 问题: - DNS解析开销 - TLS握手开销 - 服务器资源浪费 HTTP/2核心特性 1. 二进制分帧 HTTP/1.x:文本协议 GET /api/users HTTP/1.1\r\n Host: api.example.com\r\n \r\n HTTP/2:二进制协议 [帧头部(9字节)] +-----------------------------------------------+ | Length (24) | Type (8) | Flags (8) | Stream ID (31) | +-----------------------------------------------+ [帧负载] 帧类型: ...

2025-11-20 · maneng

如约数科科技工作室

浙ICP备2025203501号

👀 本站总访问量 ...| 👤 访客数 ...| 📅 今日访问 ...