首先是HTTP协议:

HTTP 是 HyperText Transfer Protocol(超文本传输协议)的缩写,它是互联网上应用最为广泛的一种网络协议,所有 WWW 文件都必须遵守这个标准。其他的话就不多说了,我们直接进入正题。

HTTP1.0版本:

功能:

  1. 支持 http 请求,响应含状态码和状态行
  2. 支持 HTML 文件以外的其他类型

缺点:

  1. 连接无法复用的问题。这会导致每发送一次请求都需要进行三次握手的过程,重新建立连接,效率太低。
  2. 是阻塞问题。http1.0是下一个请求的发送必须要等到上一个请求返回后才会进行,如果上一个请求没有返回,那么后面的请求就会全部阻塞。
  3. 安全问题。http1.0所传输的内容都是明文的,无法保证数据的安全性。

HTTP 1.1

新增:

  1. http 1.0 的基础上,引入了更多缓存控制策略
  2. 在错误通知中,新增了错误状态响应码

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 之间的区别的更多相关文章

  1. 深入理解 '0' "0" '\0' 0 之间的区别

    看来基础还是很重要的,基础不扎实就难以学好c语言,就别说写出高质量的c语言代码了.今天,我就被这个问题折磨的不行了,哈哈,不过现在终于明白了‘\0’ ,‘0’, “0” 之间的区别了.困惑和快乐与你分 ...

  2. 【转载】python3.0与2.x之间的区别

    python3.0与2.x之间的区别: 1.性能 Py3.0运行pystone benchmark的速度比Py2.5慢30%.Guido认为Py3.0有极大的优化空间,在字符串和整形操作上可以取得很好 ...

  3. 无法解决“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” ...

  4. python3.0与2.x之间的区别

    python3.0与2.x之间的区别: 1.性能 Py3.0运行pystone benchmark的速度比Py2.5慢30%.Guido认为Py3.0有极大的优化空间,在字符串和整形操作上可以取得很好 ...

  5. vm虚拟机Kali2.0实现与物理机之间的文件拖动共享

    MarkdownPad Document html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,ab ...

  6. 在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 ...

  7. C++中 0 与 NULL 与 nullptr之间的关系,nullptr_t 的实现

    C++中 0 与 NULL 与 nullptr之间的关系,nullptr_t 的实现 来源 http://blog.csdn.net/Virtual_Func/article/details/4975 ...

  8. 深入理解c语言——‘\0’ ,‘0’, “0” ,0之间的区别

    看来基础还是很重要的,基础不扎实就难以学好c语言,就别说写出高质量的c语言代码了.今天,我就被这个问题折磨的不行了,哈哈,不过现在终于明白了‘\0’ ,‘0’, “0” 之间的区别了.困惑和快乐与你分 ...

  9. JS对象随机数 random() 方法可返回介于 0 ~ 1(大于或等于 0 但小于 1 )之间的一个随机数。 注意:返回一个大于或等于 0但小于1的符号为正的数值

    随机数 random() random() 方法可返回介于 0 ~ 1(大于或等于 0 但小于 1 )之间的一个随机数. 语法: Math.random(); 注意:返回一个大于或等于 0 但小于 1 ...

  10. display:none;visibility:hidden;opacity:0;之间的区别

    什么是回流 当render tree中的一部分(或全部)因为元素的规模尺寸,布局,隐藏等改变而需要重新构建.这就称为回流(reflow).每个页面至少需要一次回流,就是在页面第一次加载的时候,这时候是 ...

随机推荐

  1. jquery(三:jquery的动画)

    动画 一:1.显示 show() 参数:1.代表动画执行的时长,毫秒数,也可以是代表时长的字符串 fast normal slow 2.代表方法执行完毕的回调函数 默认的是:normal $(func ...

  2. axios实现跨域的问题 vue实现跨域

    第一次写博客,主要是记录自己的一些新的,不好的地方忘各位多多指点,请不要吐槽: 按踩坑顺序叙述.本人对http了解太少,所以坑踩得较多. 1.开始进行跨域时,知道vue2.0官方推荐axios进行aj ...

  3. HashTable HashMap concurrentHashMap区别

    HashTable HashMap concurrentHashMap区别 HashMap.HashTable.ConcurrentHashMap都是map接口的实现类 1.(同步性)HashTabl ...

  4. 为了安装alien,我更新了yum源,结果还是没装上

    前几天把自己的thinkpad E430C从win7系统装成了centos7,看过<周末折腾了两天,踩了无数个坑,终于把win7装成了centos7>的小伙伴都知道,为了把win7装成ce ...

  5. 小程序动态class与动态style的写法:

    style = "opacity :{{num}}" class = "vp {{opacity == 0 ? 'opacity1':''}}"

  6. 认识 C 的编译器和编译流程

    GCC 的编译流程 我们写的 C 代码保存在扩展名是 .c 的文件,其实是一个纯文本文件. GCC(C 编译器之一)通过预处理器(Pre-Processing)把头文件展开到hello.i文件中. 编 ...

  7. 简述traceroute命令的原理

    原理 traceroute命令是一种用于显示数据包从源主机到目的主机经过的路由器和网络设备的路径的工具.traceroute命令的原理是利用IP数据报的生存时间(TTL)字段和因特网控制报文协议(IC ...

  8. 四种语言刷算法之 组合总和 II

    力扣40. 组合总和 II 1.C void back(int* candidates, int candidatesSize, int target,int start,int *path,int ...

  9. postman连接mysql数据库

    转载:https://www.cnblogs.com/pengxiaojie/p/13495237.html 1.安装 2.启动服务 3.执行sql语句 安装: 想要postman连接mysql,需要 ...

  10. SAP 开具发票的抬头文本带到会计凭证上

    #需求 将开具发票的抬头文本带到会计凭证上.方便财务处理凭证,不然需要再去编辑凭证,容易遗忘. 达到的效果如图所示: #二代增强SDVFX001 事务码cmod分配增强 编写增强出口 代码如下: DA ...