HTTP/2 协议的问题 & HTTP/3的意义

简介: HTTP/2 协议的问题 & HTTP/3的意义

HTTP/2 协议相比于 HTTP/1 协议来说有很多优点,但是 HTTP/2 也有很多问题,谷歌基于 HTTP/2 协议的问题制定了一种基于 UDP 的低时延的互联网传输层协议 QUIC 协议,这篇文章就来讨论一下 HTTP/2 有哪些问题,以及 HTTP/3 诞生的意义。

1.HTTP/2 的问题简单描述

基于 TLS 协议握手的 HTTP/2 被称为 h2,直接在 TCP 协议之上运行的 HTTP/2 被称为 h2c,下面讨论一下 TCP 以及 TCP+TLS 建立握手过多的问题,另外还有多路复用与 TCP 队头阻塞问题:

1.1 h2c(基于 TCP 建立的 HTTP/2)示意图


Tips:基于 TCP 建立的h2c 连接需要三次握手。

1.2 h2(基于 TLS 建立的 HTTP/2)示意图

基于 TLS 建立的 h2 连接,因为 TLS 是运行在 TCP 连接之上的,除了需要建立 TCP 握手之外,还要需要建立多次 TLS 握手:

Tips:基于 TLS 建立的h2 连接需要 TLS+TLS 多次握手。


1.3 多路复用与 TCP 队头阻塞示意图

如下图 红色蓝色绿色分别对应三个不同的 Stream,它们之间是在同一个 TCP 连接之上,就会存在队头阻塞的问题:

Tips:另外还会存在操作系统内核版本更新缓慢的问题


2.QUIC 协议示意图

为了解决上述问题,谷歌制定了一种基于 UDP 协议的低时延的互联网传输层协议 QUIC 协议,示意图如下图:

3.Chrome 浏览器如何支持 QUIC


Chrome 浏览器输入 chrome://flags/#enable-quic,将 Experimental QUIC protocol 这一栏设置改为 Enabled 可以开启 QUIC(HTTP3) 协议的支持:

打开有支持 QUIC 的站点开始抓包(之前 bilibili 支持能抓到包,现在好像抓不到了):

Wireshark 抓取到未解密的报文:

Wireshark 抓取基于 GQUIC 解密报文:

Tips:IETF QUIC 协议草案地址 https://tools.ietf.org/html/draft-ietf-quic-http-20

4.HTTP3 新特性-连接迁移


在客户端 ip 地址和端口号变了(如手机流量切换到 wifi),不需要断开连接,可以复用之前的连接,QUIC 相关的格式如下:

5.HTTP3 解决 TCP 队头阻塞问题示意图



Tips:QUIC 基于 UDP 实现这正意义的多路复用,并且 QUIC 大大优化了握手流程。

相关文章
|
14小时前
|
网络协议 数据格式 Python
Python进阶---HTTP协议和Web服务器
Python进阶---HTTP协议和Web服务器
15 4
http协议 报文 给你讲明白咯,web开发基础
http协议 报文 给你讲明白咯,web开发基础
|
5天前
|
缓存 安全 前端开发
探索HTTP协议:网络通信的基石
探索HTTP协议:网络通信的基石
|
5天前
|
缓存 自然语言处理 前端开发
第一章 引言-HTTP协议基础概念和前后端分离架构请求交互概述
第一章 引言-HTTP协议基础概念和前后端分离架构请求交互概述
|
6天前
|
存储 缓存 JSON
【JavaEE】HTTP应用层协议
【JavaEE】HTTP应用层协议
14 1
|
6天前
|
移动开发 网络协议 网络安全
【网络安全 | 网络协议】一文讲清HTTP协议
【网络安全 | 网络协议】一文讲清HTTP协议
24 0
|
6天前
|
安全 网络协议 网络安全
干货|代理IP协议有何区别?深入了解 SOCKS5、HTTP 代理
HTTP和HTTPS是互联网主要的两大协议,HTTP是基础的简单请求-响应协议,常用于TCP上,但数据传输不安全。HTTPS是HTTP的安全版本,添加了SSL层进行加密和身份验证,提供更高的安全性,用于保护数据和验证网站真实性。HTTPS需CA证书,可能产生费用,并使用443端口而非HTTP的80端口。
|
6天前
|
网络协议 安全 数据安全/隐私保护
干货|代理IP协议有何区别?深入了解 SOCKS5、HTTP 代理
SOCKS5和HTTP是两种代理协议,前者是通用型,支持多种网络流量,提供身份验证、IPv6支持及UDP兼容性,更适合实时数据传输。HTTP代理专用于HTTP协议,适用于Web资源请求。SOCKS5在传输方式、功能、兼容性和安全性上更胜一筹,而HTTP代理则在处理HTTP请求时更专业。选择代理协议应根据需求和应用场景,考虑服务的稳定性和安全性。付费代理如kookeey全球代理,支持双协议,速度快且可扩展性强,是可靠的选择。
|
6天前
|
数据采集 网络协议 安全
2024年,你还在等什么?一起探索HTTP协议的奥秘!
2024年,你还在等什么?一起探索HTTP协议的奥秘!
|
6天前
|
网络协议 Java 应用服务中间件
HTTP协议与Tomcat在IJ中配置
本文是对自己学习JavaWeb学习的笔记的总结,添加了一些自己的东西,然后进行一次复盘,并加深一下学习的理解和印象.其中内容主要包括对http协议的详细介绍,java常见服务器的初步介绍,以及IJ旧版和新版的tomcat服务器的配置图解教程