news 2026/6/16 7:04:11

什么是HTTP/2

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
什么是HTTP/2

文章目录

    • HTTP/2解决了什么问题
    • HTTP/2 vs HTTP/1.1
    • HTTP/2有哪些关键特性
    • HTTP/2在网络管理与监控中的应用



HTTP/2(原名HTTP 2.0)即超文本传输协议第二版,使用于万维网。HTTP/2主要基于SPDY协议,通过对HTTP头字段进行数据压缩、对数据传输采用多路复用和增加服务端推送等举措,来减少网络延迟,提高客户端的页面加载速度。HTTP/2没有改动HTTP的应用语义,仍然使用HTTP的请求方法、状态码和头字段等规则,它主要修改了HTTP的报文传输格式,通过引入二进制分帧实现性能的提升。


HTTP/2解决了什么问题

HTTP是应用最广泛、采用最多的一个互联网应用协议。早期版本的HTTP协议实现简单:HTTP/0.9只用一行协议就启动了万维网;HTTP/1.0则是对流行的HTTP/0.9扩展的一个正式说明;直到HTTP/1.1,IETF才发布可第一份官方标准。早期为了实现简单是以牺牲应用性能为代价:HTTP/1.1客户端需要使用多个连接才能实现并发和缩短延迟;HTTP/1.1不会压缩请求头字段和响应头字段,从而产生不必要的网络流量;HTTP/1.1不支持有效的资源优先级,致使底层TCP连接的利用率低下等等。

随着网络应用普及到人们的日常生活,它的应用范围、复杂性、重要性也在不断扩大。为了解决HTTP协议问题,HTTP/2应运而生。HTTP/2没有改动HTTP的应用语义,仍然使用HTTP的请求方法、状态码和头字段等规则,它主要修改了HTTP的报文传输格式,通过引入二进制分帧层实现性能的提升。HTTP/2主要基于SPDY协议,通过对HTTP头字段进行首部压缩、对数据传输采用多路复用和增加服务器推送等举措,来减少网络延迟,提高客户端的页面加载速度。

HTTP/2 vs HTTP/1.1

高健壮性

HTTP/1.1,使用基于文本格式,文本表现形式多样、场景多,健壮性不足。HTTP/2使用二进制格式,只有0和1的组合,选择二进制传输,协议解析实现方便且健壮。

高性能

HTTP连接会随着时间进行自我调节,起初会限制连接的最大速度,如果数据成功传输,会随着时间的推移提高传输的速度。这种调节被称为TCP慢启动。这种调节让具有突发性和短时性的HTTP连接变的十分低效。HTTP/2通过多路复用让所有数据流使用同一个连接,有效使用TCP连接,让高带宽也能真正的服务于HTTP的性能提升。

HTTP/2在应用层和传输层之间增加了二进制分帧,突破了HTTP/1.1性能限制,改进传输性能,实现低延迟和高吞吐量。

网络开销低

HTTP/2使用HPACK算法来压缩每次请求连接的头字段,降低了网络开销。HPACK算法可以减少需要传输的头字段大小,通讯双方通过建立和维护头字段表,字段表中使用长度较小的索引号表示重复的字符串,在用Huffman编码压缩数据,既避免了重复头字段的传输,又减小了需要传输的大小。

HTTP/2有哪些关键特性

二进制分帧

HTTP/2所有性能增强的核心在于新的二进制分帧层,如下图所示,它是所有其他功能和性能优化的基础,它定义了如何封装HTTP消息并在客户端与服务器之间传输。

HTTP/2没有改动HTTP的应用语义,仍然使用HTTP的请求方法、状态码和头字段等规则,它主要修改了HTTP的报文传输格式。HTTP/1.1协议以换行符作为纯文本的分隔符,而HTTP/2将所有传输的信息分割为更小的消息和帧,并采用二进制格式对它们编码,这些帧对应着特定数据流中的消息,他们都在一个TCP连接内复用。

优先级排序

将HTTP消息分解为很多独立的帧之后就可以复用多个数据流中的帧,客户端和服务器交错发送和传输这些帧的顺序就成为关键的性能决定因素。HTTP/2允许每个数据流都有一个关联的权重和依赖关系,数据流依赖关系和权重的组合明确表达了资源优先级,这是一种用于提升浏览性能的关键功能。HTTP/2协议还允许客户端随时更新这些优先级,我们可以根据用户互动和其他信号更改依赖关系和重新分配权重,这进一步优化了浏览器性能。

首部压缩

HTTP每次请求或响应都会携带首部信息用于描述资源属性。HTTP/1.1使用文本的形式传输消息头,消息头中携带cookie每次都需要重复传输几百到几千的字节,这十分占用资源。

HTTP/2使用了HPACK算法来压缩头字段,这种压缩格式对传输的头字段进行编码,减少了头字段的大小。同时,在两端维护了索引表,用于记录出现过的头字段,后面在传输过程中就可以传输已经记录过的头字段的索引号,对端收到数据后就可以通过索引号找到对应的值。

多路复用

多路复用允许同时通过单一的HTTP/2连接发起多重的请求-响应消息,实现多流并行而并不依赖多个TCP连接,HTTP/2把HTTP协议通信的基本单位缩小为一个一个的帧,这些帧对应着逻辑流中的消息,并行地在同一个TCP连接上双向交换消息。

HTTP/2基于二进制分帧层,HTTP/2可以在共享TCP连接的基础上同时发送请求和响应。HTTP消息被分解为独立的帧,而不破坏消息本身的语义交错发出去,在另一端根据流标识符和首部将他们重新组装起来。通过多路复用技术,可以避免HTTP旧版本的消息头阻塞问题,极大提高传输性能。

服务器推送

HTTP2.0的一个强大的新功能,就是服务器可以对一个客户端请求发送多个响应。服务器向客户端推送资源无需客户端明确的请求。服务端根据客户端的请求,提前返回多个响应,推送额外的资源给客户端。如下图所示,客户端请求stream 1,服务端在返回stream 1的消息的同时推送了stream 2和stream 4。

服务端推送是一种在客户端请求之前发送数据的机制。在HTTP/2中,服务器可以对一个客户端的请求发送多个响应。如果一个请求是由你的主页发送的,服务器可能会响应主页内容、logo以及样式表,因为服务端知道客户端会用到这些东西。这样不但减轻了数据传送冗余步骤,也加快了页面响应的速度,提高了用户体验。

HTTP/2在网络管理与监控中的应用

HTTP/2主要用于网络管理与监控,设备通过HTTP/2可以实时检测服务端的性能数据,能更有效的利用网络资源,减少网络的应用延迟。

在华为SD-WAN解决方案中,管理组件对设备的管理接口协议一般采用NETCONF和HTTP/2,SD-WAN解决方案整体架构如下图所示,NETCONF负责网络设备告警、日志和事件等运维信息的采集,HTTP/2则负责网络设备性能信息的采集。

网络控制器通过NETCONF给网络设备下发的配置,基于SSH协议承载,可保障数据传输的安全性。同时,网络设备通过HTTP/2上报性能数据,并通过NETCONF协议上报告警给网络控制器;网络设备上线注册必须进行双向证书认证;网络设备系统软件和特征库通过HTTPS(HyperText Transfer Protocol Secure,超文本传输安全协议)传输,HTTPS和HTTP/2协议报文都采用TLS(Transport Layer Security,传输层安全)协议加密处理,以保障数据传输安全。


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 15:03:08

掌握Linux命令行与Shell脚本编程的终极指南:第3版完整PDF资源

掌握Linux命令行与Shell脚本编程的终极指南:第3版完整PDF资源 【免费下载链接】Linux命令行与Shell脚本编程大全第3版PDF全本21MB百度网盘下载分享 本仓库提供了一本关于Linux命令行与Shell脚本编程的全方位教程资源文件,标题为《Linux命令行与Shell脚本…

作者头像 李华
网站建设 2026/5/30 4:19:32

qthread线程创建流程图解:新手入门手把手教学

QThread 线程创建全解析:从入门到实战的完整路径你有没有遇到过这样的场景?点击“开始处理”按钮后,界面瞬间卡住,鼠标无法拖动,进度条纹丝不动——用户只能干瞪眼,甚至怀疑程序崩溃了。这其实是主线程被阻…

作者头像 李华
网站建设 2026/6/14 19:42:37

揭秘Docker Rollout机制:如何实现真正零停机的生产级部署?

第一章:揭秘Docker Rollout机制:真正零停机部署的核心理念在现代微服务架构中,实现零停机部署(Zero-Downtime Deployment)是保障系统高可用性的关键目标。Docker Rollout 机制通过智能调度和生命周期管理,确…

作者头像 李华
网站建设 2026/6/14 9:37:33

通达信量化日内分时T+0主图指标公式

{}VAR1:EMA(EMA(CLOSE,13),13); 控盘:(VAR1-REF(VAR1,1))/REF(VAR1,1)*1000; {STICKLINE(控盘<0,控盘,0,1,1),COLOR00FF00; STICKLINE(控盘>REF(控盘,1) AND 控盘<0,控盘,0,1,1),COLORFF00FF;} 无庄控盘:控盘<0; {STICKLINE(控盘>REF(控盘,1) AND 控盘>0,控盘…

作者头像 李华
网站建设 2026/6/13 15:39:37

移动AI离线部署实战指南:从零开始打造个人智能助手

移动AI离线部署实战指南&#xff1a;从零开始打造个人智能助手 【免费下载链接】pocketpal-ai An app that brings language models directly to your phone. 项目地址: https://gitcode.com/gh_mirrors/po/pocketpal-ai 还在为云端AI服务的延迟和隐私问题烦恼吗&#x…

作者头像 李华
网站建设 2026/6/15 20:15:55

微PE官网启示录:轻量系统思维应用于AI推理环境构建

微PE官网启示录&#xff1a;轻量系统思维应用于AI推理环境构建 在大模型如潮水般涌进生产环境的今天&#xff0c;一个现实问题日益凸显&#xff1a;我们是否真的需要为每一次推理或微调都搭建一套完整的“重型”开发栈&#xff1f;动辄数十GB显存占用、复杂的依赖管理、拼凑式的…

作者头像 李华