
1) 【一句话结论】HTTP/2通过多路复用、头部压缩等优化HTTP传输,提升资源加载效率;HTTP/3基于QUIC协议实现0-RTT连接,进一步减少延迟,两者均用于前端优化,HTTP/2适用于常规场景,HTTP/3更适用于移动或低延迟环境。
2) 【原理/概念讲解】老师解释,HTTP/2是HTTP的1.1版本在传输层的优化,基于TCP,主要特性包括:
HTTP/3则基于QUIC协议(基于UDP),结合了TLS加密和TCP的连接管理,核心优势:
3) 【对比与适用场景】
| 特性/场景 | HTTP/2(基于TCP) | HTTP/3(基于QUIC,UDP) |
|---|---|---|
| 定义 | HTTP的传输层优化,兼容1.1 | HTTP+QUIC,新传输协议 |
| 核心技术 | 多路复用、HPACK压缩、Server Push | 0-RTT连接、连接复用、TLS 1.3 |
| 连接建立 | TCP三次握手(约100ms) | QUIC 0-RTT(首次约50ms) |
| 传输层 | TCP(可靠、有序) | UDP(低延迟,结合TLS加密) |
| 服务器推送 | 支持,主动推送资源 | 支持,连接持久性更好 |
| 前端优化场景 | 普通网页资源加载(减少请求延迟) | 移动网络、低延迟环境(如5G,首次加载更快) |
| 注意点 | 需服务器支持(如nginx的http2模块) | 需客户端(如Chrome 77+)和服务器(如nginx的quic模块)都支持 |
4) 【示例】HTTP/2的Server Push示例:客户端请求index.html,服务器主动推送style.css和script.js。
请求(客户端):
GET /index.html HTTP/2
Host: example.com
响应(服务器):
5) 【面试口播版答案】面试官您好,HTTP/2和HTTP/3是HTTP的演进,核心区别在于传输层。HTTP/2基于TCP,通过多路复用(一个连接发多个请求)、头部压缩(HPACK)和服务器推送,减少请求延迟;HTTP/3基于QUIC(UDP),实现0-RTT连接(首次连接更快),还结合了加密和连接复用。在前端优化中,HTTP/2用于解决传统HTTP1.1的连接数限制,比如同时加载多个资源;HTTP/3适合移动网络,比如5G下,减少连接建立时间。利用它们的话,比如启用HTTP/2的Server Push,让服务器主动推送CSS、JS等资源,减少用户等待时间;或者使用HTTP/3的0-RTT,首次加载更快。具体来说,前端配置中,通过设置Accept: h2, h3,让浏览器使用这些协议,比如在HTML的meta标签或HTTP头中指定,或者通过HTTP/2的配置(如nginx的http2模块),HTTP/3需要支持QUIC的客户端(如Chrome 77+)。
6) 【追问清单】
7) 【常见坑/雷区】