http2和http3
HTTP/2 和 HTTP/3 是 HTTP 协议的升级版本,主要为了解决 HTTP/1.x 协议的性能瓶颈和安全性问题。以下是它们的主要目标和解决的问题:
HTTP/2 的主要目标和解决的问题
1. 性能优化
多路复用(Multiplexing):
- HTTP/1.x 中,每个请求需要单独建立一个 TCP 连接,或者使用持久连接(Keep-Alive)但仍然是串行处理请求。
- HTTP/2 允许在同一个 TCP 连接上并行发送多个请求和响应,减少了延迟。
头部压缩(Header Compression):
- HTTP/1.x 的头部信息是纯文本,且每次请求都会重复发送相同的头部(如 User-Agent、Cookie 等)。
- HTTP/2 使用 HPACK 算法对头部进行压缩,减少了数据传输量。
服务器推送(Server Push):
- HTTP/2 允许服务器在客户端请求之前主动推送资源(如 CSS、JavaScript 文件),减少了额外的请求延迟。
2. 安全性
- HTTP/2 通常基于 HTTPS(TLS/SSL)运行,强制加密传输数据,提高了安全性。
3. 二进制协议
- HTTP/1.x 是基于文本的协议,解析效率较低。
- HTTP/2 使用二进制格式传输数据,解析效率更高,减少了错误。
HTTP/3 的主要目标和解决的问题
1. 基于 QUIC 协议
- HTTP/3 使用 QUIC 协议代替 TCP,解决了 TCP 的一些固有缺陷:**
- 队头阻塞(Head-of-Line Blocking):
- 在 HTTP/2 中,如果 TCP 连接中的一个数据包丢失,整个连接会被阻塞,直到丢失的数据包重传成功。
- QUIC 基于 UDP,每个流(Stream)独立处理,避免了队头阻塞。
- 连接迁移:
- QUIC 使用连接 ID 而不是 IP 地址和端口来标识连接,当用户切换网络(如从 Wi-Fi 切换到移动数据)时,连接可以无缝迁移。
- 队头阻塞(Head-of-Line Blocking):
2. 更快的连接建立
- QUIC 集成了 TLS 1.3,减少了握手次数,连接建立速度更快。
- 在 HTTP/2 中,TCP 和 TLS 需要分别握手,增加了延迟。
3. 改进的拥塞控制
- QUIC 提供了更灵活的拥塞控制机制,能够更好地适应不同的网络环境。
4. 安全性
- HTTP/3 强制使用 TLS 1.3,确保数据传输的安全性。
总结
- HTTP/2 主要解决了 HTTP/1.x 的性能瓶颈,通过多路复用、头部压缩和服务器推送提高了性能。
- HTTP/3 进一步优化了性能,通过基于 QUIC 协议解决了 TCP 的队头阻塞问题,并提供了更快的连接建立和连接迁移功能。
http2和http3的更多相关文章
- HTTP1.1、HTTP2、HTTP3 演变
推荐阅读:https://www.cnblogs.com/zwtblog/tag/计算机网络/ 目录 HTTP 基本概念 HTTP/1.1 相⽐ HTTP/1.0 提⾼了什么性能? HTTP/1.1如 ...
- QUIC/HTTP3 协议简析
从 HTTP 的进化历史讲起,细说使用协议的变迁,了解原因发现问题,解码 QUIC 在 HTTP3 中的支撑作用,共同探讨 HTTP3 的未来. HTTP.HTTP2 和 HTTP3 先和大家来回顾一 ...
- 初识——HTTP3
目录 初识--HTTP3 HTTP HTTP1.0和HTTP1.1的主要区别 HTTP2 HTTP3 相关链接 初识--HTTP3 想了解HTTP3??那我们就得先知道为啥会出现HTTP3,因此我们需 ...
- Httpd2.2常见配置及功能
Httpd 2.2常见配置 要配置http服务的配置文件,先备份一下,养成良好习惯,如果误操作导致http服务起不来,就可以将备份的主配置文件重新覆盖一下 httpd配置文件的组成:有三大部分组成,其 ...
- 图文详解互联网根基之HTTP
这是本人对<图解HTTP>和<HTTP权威指南>阅读后总结的大家常用的.重要的知识点,前端.后端同学居家必备! 一.概述 HTTP是Hyper Text Transfer Pr ...
- 【转】使用Jmeter录制web脚本
1.web性能测试以及web http请求基本原理. 再介绍录制jmeter脚本之前,我们先谈一下web性能测试.web就是调用http/https接口, 其实没有是什么复杂度可言.只是我们必须清楚, ...
- 7.HTTP协议
1.什么是url? 1.1 URL是统一资源定位符,表示的是一个资源,(图片 文字 视频 音频 等等) 单个资源介绍--图片 那URL的组成部分是由协议, 域名:端口, 路径和文件名 1.2 url组 ...
- HTTP/2和Python的支持现状-2019-10
背景: 大概2019年9月份,天猫全面升级了HTTP/2的支持,并且加强了HTTP/1的访问限制,也可能很早前就这么做了, 但之前一直没限制HTTP/1的访问.之所以发现这个问题,是因为写的爬虫突然失 ...
- 7.Jmeter 快速入门教程--录制复杂web测试脚本
Jmeter的功能简单,不需要有脚本语言的编写经验,纯图形界面添加测试场景, 用起来上手很快.但是如果手动添加每一个web(http/https)请求,费时又费力.而且有可能最后手动编写的和实际发的请 ...
- 浅谈 k8s ingress controller 选型
大家好,先简单自我介绍下,我叫厉辉,来自腾讯云.业余时间比较喜欢开源,现在是Apache APISIX PPMC.今天我来简单给大家介绍下 K8S Ingress 控制器的选型经验,今天我讲的这些内容 ...
随机推荐
- SQL Server统计信息更新会被阻塞或引起会话阻塞吗?
在SQL Server数据库中,统计信息更新(UPDATE STATISTICS)会被其它会话阻塞吗?统计信息更新(UPDATE STATISTICS)会引起其它会话阻塞吗?在回答这两个问题前,我们必 ...
- VScode中C/C++调试文件配置
VScode中C/C++调试文件配置 //launch.json { "version": "2.0.0", "configurations" ...
- RabbitMQ(八)——消息确认
RabbitMQ系列 RabbitMQ(一)--简介 RabbitMQ(二)--模式类型 RabbitMQ(三)--简单模式 RabbitMQ(四)--工作队列模式 RabbitMQ(五)--发布订阅 ...
- IIS反向代理和URL重写——实现https重定向,文件类型隐藏访问重写,nodejs等服务重写等等
一.Why? 1.先来讲一讲为什么我们要使用url重写这个东西 2.因为我学习的后端是nodejs,然后我发现nodejs一个非常让人难受的事,就是它监听端口不是80和443时,你访问网页需要输入端口 ...
- Dotfuscator混淆时的配置信息
这个是64位的Framework
- Linux - 配置IP&主机名的快捷操作
nmtui 执行以下命令可以进入一个可视化界面,进行IP的可视化配置.以及网络服务的重启(注意,这个重启是停止然后启动, 如果使用xshell进行操作会失去ssh连接,直连服务器时可这直接操作).主机 ...
- Oracle 23ai TPC-H 测试环境部署
最近,我在 Oracle Database 23ai 上进行了 TPC-H 100GB 测试,并整理了完整的实施步骤和优化经验.如果你也想评估 Oracle 数据库在决策支持场景下的性能,可以参考我的 ...
- excel 文件提示已受损 解决方案
1.打开office excel 2.python 语言save 方法导致,将后缀改为.xls 3.用WPS打开
- Golang 入门 : 字符串及底层字符类型
字符串 基本使用 在 Go 语言中,字符串是一种基本类型,默认是通过 UTF-8 编码的字符序列,当字符为 ASCII 码时则占用 1 个字节,其它字符根据需要占用 2-4 个字节,比如中文编码通常需 ...
- CompletableFuture API介绍及使用
1. 介绍 CompletableFuture 是 Java 8 引入的一个用于异步编程的类,位于 java.util.concurrent 包中.它是对 Future 的增强,提供了更强大的功能来支 ...