HTTP1.1、HTTP2、HTTP3

HTTP1.1

HTTP/1.1 相比 HTTP/1.0 性能上的改进:

  • 使用长连接的方式改善了 HTTP/1.0 短连接造成的性能开销。
  • 支持管道(pipeline)网络传输,只要第一个请求发出去了,不必等其回来,就可以发第二个请求出去,可以减少整体的响应时间。

但 HTTP/1.1 还是有性能瓶颈:

  • 请求 / 响应头部(Header)未经压缩就发送,首部信息越多延迟越大。只能压缩 Body 的部分;
  • 发送冗长的首部。每次互相发送相同的首部造成的浪费较多;
  • 服务器是按请求的顺序响应的,如果服务器响应慢,会招致客户端一直请求不到数据,也就是队头阻塞;
  • 没有请求优先级控制;
  • 请求只能从客户端开始,服务器只能被动响应。

HTTP2

HTTP/2 协议是基于 HTTPS 的,所以 HTTP/2 的安全性也是有保障的。基于TLSV1.2。

那 HTTP/2 相比 HTTP/1.1 性能上的改进:

  • 头部压缩
  • 二进制格式
  • 并发传输
  • 服务器主动推送资源

HTTP3

  • HTTP/1.1 中的管道( pipeline)虽然解决了请求的队头阻塞,但是没有解决响应的队头阻塞,因为服务端需要按顺序响应收到的请求,如果服务端处理某个请求消耗的时间比较长,那么只能等响应完这个请求后, 才能处理下一个请求,这属于 HTTP 层队头阻塞。
  • HTTP/2 虽然通过多个请求复用一个 TCP 连接解决了 HTTP 的队头阻塞 ,但是一旦发生丢包,就会阻塞住所有的 HTTP 请求,这属于 TCP 层队头阻塞。

HTTP/2 队头阻塞的问题是因为 TCP,所以 HTTP/3 把 HTTP 下层的 TCP 协议改成了 UDP!基于TLSv1.3+。

 

 

Google的一些初步实验证明,QUIC作为Google部分热门服务的底层传输协议,极大地提高了速度和用户体验。部署QUIC作为YouTube视频的底层传输协议,导致YouTube视频流的缓冲率下降了30%,这直接影响了用户的视频观看体验。在显示谷歌搜索结果时,也有类似的改善。

网络条件较差的情况下提升非常明显,这促使谷歌更加积极地完善该协议,并最终向IETF提出标准化。

由于这些早期的试验所带来的所有改进,QUIC已经成为带领万维网走向未来的重要因素。在QUIC的支持下,HTTP从HTTP/2到HTTP/3的改头换面,朝着这个方向合理地迈出了一步。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/669163.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux基础-磁盘分区

1.Linux磁盘分区方案 1.根分区/ 2./boot 3./var/log 4.swap虚拟交换分区,当物理内存不够用,需要用swap 5.自定义分区: ①创建一个目录/etc/mysql装mysql数据库软件 ②再创建一个目录/backup存放mysql数据库备份文件 2.磁盘分区划分 第一个…

(22)删除指定的数

文章目录 每日一言题目解题思路代码结语 每日一言 你热爱生命吗?那就别浪费时间,因为时间是组成生命的材料。——富兰克林 题目 先输入10个整数存放在数组中,再输入一个整数n,删除数组中所有等于n的数字,打印数组中剩…

在VM虚拟机上搭建MariaDB数据库服务器

例题:搭建MariaDB数据库服务器,并实现主主复制。 1.在二台服务器中分别MariaDB安装。 2.在二台服务器中分别配置my.cnf文件,开启log_bin。 3.在二台服务器中分别创建专用于数据库同步的用户replication_user,并授权SLAVE。&#x…

Matplotlib绘制炫酷柱状图的艺术与技巧【第60篇—python:Matplotlib绘制柱状图】

文章目录 Matplotlib绘制炫酷柱状图的艺术与技巧1. 簇状柱状图2. 堆积柱状图3. 横向柱状图4. 百分比柱状图5. 3D柱状图6. 堆积横向柱状图7. 多系列百分比柱状图8. 3D堆积柱状图9. 带有误差线的柱状图10. 分组百分比柱状图11. 水平堆积柱状图12. 多面板柱状图13. 自定义颜色和样…

c#string方法对比

字符串的截取匹配操作在开发中非常常见,比如下面这个示例:我要匹配查找出来字符串数组中以“abc”开头的字符串并打印,我下面分别用了两种方式实现,代码如下: using System; namespace ConsoleApp23{ class Progra…

aidl复杂流程封装

1 aidl相关困扰点 1 制作步骤复杂,先定义然后编译,然后复制,两边都要一一对应 2 增加回调,自定义对象流程更加麻烦,还要处理对象数据流是 in 还是out。 3 一方异常怎么办,虽然服务端可以用 RemoteCallbackL…

UI自动化中元素无法定位问题解决方法

元素无法定位问题解决方法 1、display屏蔽元素2、iframe内元素无法定位3、 根据部分元素属性定位4、页面跳转到新的标签页,或者弹出的警告框等6、使用WebDriver调用JavaScript代码代替无法实现的功能 1、display屏蔽元素 分析一下html的display属性,可以…

计算机网络(复习资料)

1.互联网的两个重要基本特点 连通性和共享性 2.计算机网络由若干节点和连接这些节点的链路组成 3.有多个网络通过路由器相互连接起来,构成一个更大的计算机网络称为互联网 4.网络把许多计算机连接在一起,互联网把许多网络通过一些路由器连接在一起,与网络相连的计算机称为…

web应用课——(第五讲:React)

目录 一、配置环境 二、ES6语法补充 三、Components 四、组合Components 五、路由 六、Redux 一、配置环境 感谢z神(zst_2001)的分享: git下载与安装Node.js下载与安装React下载与安装 二、ES6语法补充 使用bind()函数绑定this取值&…

haiku实现TemplatePairStack类

TemplatePairStack是实现蛋白质结构模版pair_act特征表示的类: 通过layer_stack.layer_stack(c.num_block)(block) 堆叠c.num_block(配置文件中为2)block 函数,每个block对输入pair_act 和 pair_mask执行计算流程:TriangleAttention —> dropout ->TriangleAttentio…

Retrofit源码分析及理解

参考文档: 12W字;2022最新Android11位大厂面试专题(一) - 掘金 Retrofit 版本号:2.9.0 Retrofit简单来说,就是对OkHttp上层进行了封装,已达到用户方便使用管理网络请求的目的。 Retrofit内部有…

力扣热门100题刷题笔记 - 10. 正则表达式匹配

力扣热门100题 - 10. 正则表达式匹配 题目链接:10. 正则表达式匹配 题目描述: 给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 . 和 * 的正则表达式匹配。 . 匹配任意单个字符 * 匹配零个或多个前面的那一个元素 所谓匹配&#xff…

asqlcell,一个超强的 Python 库!

前言 大家好,今天为大家分享一个超强的 Python 库 - asqlcell。 Github地址:https://github.com/datarho/asqlcell Python asqlcell 是一个用于执行异步数据库操作的开源库,它允许开发者通过异步的方式与数据库进行交互,提高了数…

如何使用VS Code编写小游戏并实现公网游玩本地游戏【内网穿透】

文章目录 前言1. 编写MENJA小游戏2. 安装cpolar内网穿透3. 配置MENJA小游戏公网访问地址4. 实现公网访问MENJA小游戏5. 固定MENJA小游戏公网地址 前言 本篇教程,我们将通过VS Code实现远程开发MENJA小游戏,并通过cpolar内网穿透发布到公网,分…

七月论文审稿GPT第2.5版:微调GPT3.5 turbo 16K和llama2 13B以扩大对GPT4的优势

前言 自去年7月份我带队成立大模型项目团队以来,我司至今已有5个项目组,其中 第一个项目组的AIGC模特生成系统已经上线在七月官网第二项目组的论文审稿GPT则将在今年3 4月份对外上线发布第三项目组的RAG知识库问答第1版则在春节之前已就绪至于第四、第…

ai平滑工具的使用方法

ai中想要使用平滑工具来处理线条,该怎么是哦用哪个恩?下面我们就来看看详细的教程。 1、我们通过一个例子演示平滑工具的使用,先新建文件,在左侧工具箱中找到平滑工具。 文章源自四五设计网-https://www.45te.com/39726.html 2、…

CSS:三列布局

三列布局是指左右两列定宽&#xff0c;中间自适应。最终效果如下&#xff1a; HTML&#xff1a; <div class"container"><div class"left"></div><div class"center"></div><div class"right">…

001集:open语句打开文件及文件类型(二进制、文本文件)详解——vba

open用法可以用来打开文件、文件夹或网页&#xff0c;也可以用来运行某一应用程序、文件或网页。一般来说&#xff0c;只要在开始菜单中可以找到某个应用程序&#xff0c;我们就可以使用open命令打开该应用程序;另外&#xff0c;在打开某个文件或网页时&#xff0c;也可以使用o…

设计模式学习笔记05(小滴课堂)

讲解Adapeter设计模式和应用场景 接口的适配器案例实战 代码&#xff1a; 定义一个接口&#xff1a; 编写适配器&#xff1a; 写我们的商品类&#xff1a; 会员类&#xff1a; 这样我们不同的需求可以根据需要去实现不同的接口方法&#xff0c;而不用实现全部接口方法。 适配…

如何预防最新的.kat6.l6st6r 勒索病毒感染您的计算机?

导言&#xff1a; 随着科技的不断进步&#xff0c;勒索病毒成为网络犯罪中一种极为破坏性的工具。其中&#xff0c;.kat6.l6st6r 勒索病毒作为最新的威胁之一&#xff0c;采用先进的加密算法&#xff0c;使用户的数据文件无法正常访问。本文91数据恢复将深入介绍这一勒索病毒的…