http 1.0、2.0、3.0 之间的区别
首先是HTTP协议:
HTTP 是 HyperText Transfer Protocol(超文本传输协议)的缩写,它是互联网上应用最为广泛的一种网络协议,所有 WWW 文件都必须遵守这个标准。其他的话就不多说了,我们直接进入正题。
HTTP1.0版本:
功能:
- 支持 http 请求,响应含状态码和状态行
- 支持
HTML文件以外的其他类型
缺点:
- 连接无法复用的问题。这会导致每发送一次请求都需要进行三次握手的过程,重新建立连接,效率太低。
- 是阻塞问题。http1.0是下一个请求的发送必须要等到上一个请求返回后才会进行,如果上一个请求没有返回,那么后面的请求就会全部阻塞。
- 安全问题。http1.0所传输的内容都是明文的,无法保证数据的安全性。
HTTP 1.1
新增:
- 在
http 1.0的基础上,引入了更多缓存控制策略 - 在错误通知中,新增了错误状态响应码
HTTP2.0版本:
HTTP2.0版本比较专注于性能,它采用二进制格式传输数据,http2.0也采用了多路复用的技术,它可以只通过一个 TCP 连接传输所有的请求数据。还有就是采用了头部压缩技术,这也成功解决了http1.0的header 里携带的内容过大的问题,在一定程度上减轻了传输的成本。不过它也存在一定的问题,如果在传输的过程中存在丢包的情况的话,那么整个tcp就得重新传输,后面资源就会被阻塞。
HTTP3.0版本:
它最大的不同是放弃了tcp协议而是改用了 QUIC协议,此协议基于传输层UDP协议。UDP协议无需三次握手四次挥手,所以传输速率更高。并且它改善了多路复用产生的问题,如果出现丢包的情况,不需要整个重新发送,只需要重发丢掉的包就可以。
参考文献
https://blog.csdn.net/qq_44890362/article/details/121051284
https://blog.csdn.net/yzp666z/article/details/116713008
https://blog.csdn.net/weixin_50870081/article/details/119826165
http 1.0、2.0、3.0 之间的区别的更多相关文章
- 深入理解 '0' "0" '\0' 0 之间的区别
看来基础还是很重要的,基础不扎实就难以学好c语言,就别说写出高质量的c语言代码了.今天,我就被这个问题折磨的不行了,哈哈,不过现在终于明白了‘\0’ ,‘0’, “0” 之间的区别了.困惑和快乐与你分 ...
- 【转载】python3.0与2.x之间的区别
python3.0与2.x之间的区别: 1.性能 Py3.0运行pystone benchmark的速度比Py2.5慢30%.Guido认为Py3.0有极大的优化空间,在字符串和整形操作上可以取得很好 ...
- 无法解决“Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed”与“Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed”之间的冲突。正在随意选择“Newtonsoft.Jso
今天的程序莫名报错: 无法解决“Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed” ...
- python3.0与2.x之间的区别
python3.0与2.x之间的区别: 1.性能 Py3.0运行pystone benchmark的速度比Py2.5慢30%.Guido认为Py3.0有极大的优化空间,在字符串和整形操作上可以取得很好 ...
- vm虚拟机Kali2.0实现与物理机之间的文件拖动共享
MarkdownPad Document html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,ab ...
- 在tomcat8.0.x和tomcat9.0.x之间么突然冒出个tomcat 8.5
Apache Tomcat 8 (8.5.38) - Documentation Indexhttps://tomcat.apache.org/tomcat-8.5-doc/index.html to ...
- C++中 0 与 NULL 与 nullptr之间的关系,nullptr_t 的实现
C++中 0 与 NULL 与 nullptr之间的关系,nullptr_t 的实现 来源 http://blog.csdn.net/Virtual_Func/article/details/4975 ...
- 深入理解c语言——‘\0’ ,‘0’, “0” ,0之间的区别
看来基础还是很重要的,基础不扎实就难以学好c语言,就别说写出高质量的c语言代码了.今天,我就被这个问题折磨的不行了,哈哈,不过现在终于明白了‘\0’ ,‘0’, “0” 之间的区别了.困惑和快乐与你分 ...
- JS对象随机数 random() 方法可返回介于 0 ~ 1(大于或等于 0 但小于 1 )之间的一个随机数。 注意:返回一个大于或等于 0但小于1的符号为正的数值
随机数 random() random() 方法可返回介于 0 ~ 1(大于或等于 0 但小于 1 )之间的一个随机数. 语法: Math.random(); 注意:返回一个大于或等于 0 但小于 1 ...
- display:none;visibility:hidden;opacity:0;之间的区别
什么是回流 当render tree中的一部分(或全部)因为元素的规模尺寸,布局,隐藏等改变而需要重新构建.这就称为回流(reflow).每个页面至少需要一次回流,就是在页面第一次加载的时候,这时候是 ...
随机推荐
- 随机森林RF模型超参数的优化:Python实现
本文介绍基于Python的随机森林(Random Forest,RF)回归代码,以及模型超参数(包括决策树个数与最大深度.最小分离样本数.最小叶子节点样本数.最大分离特征数等)自动优化的代码. ...
- el-transfer 数据量过大加载慢卡顿解决办法:el-transfer虚拟滚动懒加载的实现
参考链接 1)https://github.com/GreenHandLittleWhite/blog/issues/152)https://github.com/GreenHandLittleWhi ...
- Dapr Workflow构建块的.NET Demo
Dapr 1.10版本中带来了最有亮点的特性就是工作流构建块的的发布,虽然是Alpha 阶段,可以让我们尽早在应用系统中规划工作流, 在使用Dapr的系统中更好的编写负责的分布式应用系统.Dapr 工 ...
- Mybatis的逆向工程与延迟加载
Mybatis 的逆向工程 Mybatis是一个半自动化的ORM框架,SQL语句需要要开发者自己定义,SQL定义在Mapper.xml中,与对应的Mapper接口对应 实体类 接口 Mapper.xm ...
- Linux 下的十一款一流备份实用工具
转载:linux.中国 https://linux.cn/article-7183-1.html
- AIR32F103(九) CAN总线的通信和ID过滤机制及实例
目录 AIR32F103(一) 合宙AIR32F103CBT6开发板上手报告 AIR32F103(二) Linux环境和LibOpenCM3项目模板 AIR32F103(三) Linux环境基于标准外 ...
- 为什么不建议使用 @Autowired 注解进行注入
在Spring中,Bean的注入一般有三种方式:属性注入.set方法注入.构造器注入. 1.Autowired注入的原理 @Autowired属于属性注入,默认按照类型装配,默认情况下要求依赖的对象必 ...
- 四川九联代工M301H hi3798 mv300 mt7668魔百和 强刷和TTL线刷(救砖)经验分享
以下都是本次自己操作后的一些经验,不是技术分享,也是看来很多水教程后总结的精华. 四川九联代工M301H hi3798 mv300 mt7668魔百和 一.强刷 1.强刷的教程网上有很多,自己百度. ...
- 详解http和https
前言 大家好,我是小卷! 近几年,互联网发生着翻天覆地的变化,尤其是我们一直习以为常的HTTP协议,在逐渐的被HTTPS协议所取代,在浏览器.搜索引擎.CA机构.大型互联网企业的共同促进下,互联网迎来 ...
- day08-MyBatis的关联映射02
MyBatis的关联映射02 3.一对多 3.1基本介绍 mybatis – MyBatis 3 | XML 映射器 多对一关系也是一个基本的映射关系,多对一,也可以理解为一对多.例如: User-- ...