切换导航
{{systemName}}
{{ info.Title }}
{{info.Title}}
{{ menu.Title }}
{{menu.Title}}
登录
|
退出
搜索
HTTP协议-HTTP3
作者:ych
### 序言 上节提到HTTP3通过更加底层的传输层的优化来提升效率,究竟如何,让我们一起看一下。 ### HTTP3的优化  通过这个图片,我们可以很清楚的看到,HTTP2和HTTP3的传输层是完全不同的协议,HTTP3的传输层是UDP协议。我们知道UDP协议是个不可靠的协议,而TCP协议是可靠协议,怎样保证可靠的呢,重传。 ### QUIC协议 在UDP协议之上,新增了QUIC协议。我的理解是由于TCP协议相对于UDP协议控制比较复杂耗时,因此针对HTTP应用贴身开发了QUIC协议代替TCP协议中关于可靠、流量控制的部分。 ### QUIC协议特性 QUIC协议提供类似于HTTP2的流功能 QUIC协议使用流ID取代IP和端口,这样就能实现连接迁移。例如说从4G信号切换到wifi,下层的IP和端口变了,但是由于QUIC的流ID没有变,这个连接不会变,可以继续使用这个连接。 然后我们看一下HTTP3在QUIC上有什么变化呢?HTTP3由HTTP2进化,HTTP2最大的变化就是基于二进制流的传输。那么到HTTP3,由于QUIC已经管理了流,HTTP3本身就减负了,将流管理下移QUIC,而本身就直接调用QUIC的接口就可以了。 ### HTTP3如何工作 我们回想一下HTTPS,HTTPS是类似于TCP握手的工作方式,先工作在HTTP1上,通过HTTP1传递交换得到秘钥,然后切换到HTTPS上工作。 接着我们回想一下HTTP2,HTTP2也是基于TLS的,所以HTTP2的工作方式和HTTPS也是同样的过程,需要握手建立TLS连接,只是TLS连接完成后,发送一个HTTP2的连接确认消息,确认后,客户端服务器使用HTTP2进行连接通讯。 最后让我们看下HTTP3如何工作。首先要建立好HTTP2连接,然后发送HTTP2扩展帧,这个帧包含IP和端口,浏览器收到扩展帧,使用该IP和端口,使用QUIC建立连接,如果成功,断开HTTP2,升级为HTTP3。 这三者,都用TCP的握手协议去理解,都是握手,不同的是握手方式不一样。 ### 小结 HTTP3是在基础上动土,对于技术族来说可谓是脑洞大开。这就又说明了基础的重要性。
相关推荐
单例模式的应用场景
http超文本传输协议
什么是死锁?死锁产生的原因?如何避免死锁?
B+树为什么快
MySQL索引原理
C#二叉树查找法
Redis的优点
ElasticSearch使用场景
web技术演化
redis缓存穿透、缓存击穿、缓存雪崩原因+解决方案
消息队列使用的场景介绍
redis在项目中的使用
TiDB使用场景
面向对象
TCP三次握手和四次挥手
评论区
先去登录
版权所有:机遇屋在线 Copyright © 2021-2025 jiyuwu Co., Ltd.
鲁ICP备16042261号-1