http1.0,http1.1,http2.0,http3.0 区别有哪些

这篇具有很好参考价值的文章主要介绍了http1.0,http1.1,http2.0,http3.0 区别有哪些。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

20 世纪 60 年代,美国国防部高等研究计划署(ARPA)建立了 ARPA 网,这被认为是互联网的起源。70 年代,研究人员基于对 ARPA 网的实践和思考,发明出了著名的 TCP/IP 协议。该协议具有良好的分层结构和稳定的性能,并在 80 年代中期进入了 UNIX 系统内核,促使更多的计算机接入了网络。

1989 年,蒂姆伯纳斯-李博士发表了一篇论文,提出了在互联网上构建超链接文档系统的构想。这篇文章中他确立了三项关键技术:URI、HTML、HTTP。

以下是HTTP发展年鉴表:

http1.0,http1.1,http2.0,http3.0 区别有哪些

HTTP1.0最早在网页中使用是在1996年,主要就是为了将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。也是说对于前端来说,我们所写的HTML页面将要放在我们的web服务器上,用户端通过浏览器访问url地址来获取网页的显示内容,但是到了WEB2.0以来,我们的页面变得复杂,不仅仅单纯的是一些简单的文字和图片,同时我们的HTML页面有了CSS,Javascript,来丰富我们的页面展示,当ajax的出现,我们又多了一种向服务器端获取数据的方法,这些其实都是基于HTTP协议的。 

一、HTTP1.0和HTTP1.1的一些区别

HTTP(Hypertext Transfer Protocol)是一种用于传输超文本的协议,负责在客户端和服务器之间传递和交换数据。下面是HTTP 1.0、HTTP 1.1和HTTP 2.0之间的主要区别:

①.在HTTP1.0中主要使用header里的If-Modified-Since,Expires来做为缓存判断的标准,HTTP1.1则引入了更多的缓存控制策略例如Entity tag,If-Unmodified-Since, If-Match, If-None-Match等更多可供选择的缓存头来控制缓存策略。

②.带宽优化及网络连接的使用,HTTP1.0中,存在一些浪费带宽的现象,例如客户端只是需要某个对象的一部分,而服务器却将整个对象送过来了,并且不支持断点续传功能,HTTP1.1则在请求头引入了range头域,它允许只请求资源的某个部分,即返回码是206(Partial Content),这样就方便了开发者自由的选择以便于充分利用带宽和连接。

③.错误通知的管理,在HTTP1.1中新增了24个错误状态响应码,如409(Conflict)表示请求的资源与资源的当前状态发生冲突;410(Gone)表示服务器上的某个资源被永久性的删除。

④.Host头处理,在HTTP1.0中认为每台服务器都绑定一个唯一的IP地址,因此,请求消息中的URL并没有传递主机名(hostname)。但随着虚拟主机技术的发展,在一台物理服务器上可以存在多个虚拟主机(Multi-homed Web Servers),并且它们共享一个IP地址。HTTP1.1的请求消息和响应消息都应支持Host头域,且请求消息中如果没有Host头域会报告一个错误(400 Bad Request)。

⑤.长连接,HTTP1.1支持长连接(PersistentConnection)和请求的流水线(Pipelining)处理,在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟,在HTTP1.1中默认开启Connection: keep-alive,一定程度上弥补了HTTP1.0每次请求都要创建连接的缺点。

二、HTTP2.0 新特性

①.新的二进制格式(Binary Format),HTTP1.x的解析是基于文本。基于文本协议的格式解析存在天然缺陷,文本的表现形式有多样性,要做到健壮性考虑的场景必然很多,二进制则不同,只认0和1的组合。基于这种考虑HTTP2.0的协议解析决定采用二进制格式,实现方便且健壮。

②.多路复用(MultiPlexing),即连接共享,即每一个request都是是用作连接共享机制的。一个request对应一个id,这样一个连接上可以有多个request,每个连接的request可以随机的混杂在一起,接收方根据request的 id将request再归属到各自不同的服务端请求里面。

③.header压缩,如上文中所言,对前面提到过HTTP1.x的header带有大量信息,而且每次都要重复发送,HTTP2.0使用encoder来减少需要传输的header大小,通讯双方各自cache一份header fields表,差量更新HTTP头部,只发送改变的,既避免了重复header的传输,又减小了需要传输的大小。

④.服务端推送(server push),同SPDY一样,HTTP2.0也具有server push功能。

三、HTTP3.0 新特性

HTTP 3.0,也称为HTTP over QUIC(Quick UDP Internet Connections),是基于UDP协议的下一代HTTP协议。相对于HTTP 2.0,HTTP 3.0引入了一些新的特性和改进:

①.基于UDP协议:HTTP 3.0使用QUIC协议(Quick UDP Internet Connections)代替了TCP协议作为传输层协议。UDP协议相比TCP协议具有更低的延迟和更好的拥塞控制,能够提供更好的性能和效率。

②.0-RTT连接建立:HTTP 3.0引入了0-RTT(Zero Round-Trip Time)连接建立。这意味着客户端可以在第一次连接时发送加密数据,而无需等待服务器的响应,从而减少了握手的延迟。

③.多路复用:HTTP 3.0保留了HTTP 2.0的多路复用特性,允许在一个连接上同时发送多个请求和响应。这可以减少连接的数量,提高网络的利用率和性能。

④.头部压缩:HTTP 3.0使用了与HTTP 2.0相同的头部压缩机制,可以减小请求和响应的头部大小,减少了网络传输的开销。

⑤.服务器推送:HTTP 3.0支持服务器推送,服务器可以在客户端请求之前主动将资源推送给客户端,从而加快页面加载速度,提供更好的用户体验。

⑥.容错性:HTTP 3.0具有更好的容错性,当网络发生变化时,可以更快地恢复连接,避免了TCP的连接重启所需的握手延迟。

这些新特性使得HTTP 3.0在性能、效率和安全性方面有所提升。然而,由于HTTP 3.0仍然处于实验阶段,并且在广泛部署和普及方面还存在一些挑战,因此在实际应用中还未得到广泛支持。

四、协议特性对比

特性 HTTP 1.0 HTTP 1.1 HTTP 2.0 HTTP 3.0
并发连接数量 单一请求一个连接 多个请求多个连接 多个请求单一连接 多个请求多个连接
请求流水线 不支持 支持 支持 支持
请求头压缩 不支持 不支持 支持 支持
数据压缩 不支持 不支持 支持 支持
二进制传输 不支持 不支持 支持 支持
多路复用 不支持 不支持 支持 支持
服务器推送 不支持 不支持 支持 支持
加密 可选 可选 可选 强制
连接建立优化 不支持 不支持 支持 支持
QUIC协议使用 不支持 不支持 不支持 支持

五、解决的核心问题

协议版本 解决的核心问题 解决方式
0.9 HTML 文件传输 确立了客户端请求、服务端响应的通信流程
1.0 不同类型文件传输 设立头部字段
1.1 创建/断开 TCP 连接开销大 建立长连接进行复用
2 并发数有限 二进制分帧
3 TCP 丢包阻塞 采用 UDP 协议

需要注意的是,HTTP 1.1目前仍然是最广泛使用的HTTP协议版本。这些不同版本的HTTP协议在性能、效率、安全性和功能方面有所不同,HTTP 2.0和HTTP 3.0在多路复用、头部压缩和服务器推送等方面进行了较大的改进和优化,提供了更好的性能和用户体验。HTTP 3.0作为最新的版本,目前仍在发展和探索中,尚未得到广泛支持。文章来源地址https://www.toymoban.com/news/detail-478606.html

到了这里,关于http1.0,http1.1,http2.0,http3.0 区别有哪些的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • HTTP1.0和HTTP1.1和HTTP2.0的主要区别

    先上结论,面试常问,同时也是我们学习HTTP协议所必须了解的一些新机制,我们往往学习的都是HTTP1.0的一些基础,1.1 2.0也是企业中常用的东西,也优化了很多nb的属性,下面我们简单来了解下! HTTP 是基于TCP/IP协议的,每一次 建立或者断开连接 都需要三次握手四次挥手的 开销

    2023年04月17日
    浏览(52)
  • HTTP1.0、HTTP1.1、HTTP2.0 协议的特点

    HTTP(Hypertext Transfer Protocol)是一种用于在Web浏览器和Web服务器之间传输数据的协议。HTTP的版本有很多,其中比较常见的有 HTTP 1.0 、 HTTP 1.1 和 HTTP 2.0 ,它们有各自的特点。 HTTP 1.0 的特点: 1. 每个请求/响应需要建立新的TCP连接,并在完成后关闭连接,导致较高的延迟。 2. 每

    2024年02月05日
    浏览(45)
  • http1.1与http2.0

    通俗来讲,http就是计算机通过网络进行通信的规则,是一个基于 请求与响应 , 无状态的 , 应用层协议 。常用于 TCP/IP协议 传输数据。目前任何终端之间任何一种通信方式都必须按Http协议进行,否则无法连接。tcp(三次握手,四次挥手)。 请求与响应 :客户端请求、服务端

    2023年04月19日
    浏览(69)
  • HTTP进化史:从HTTP1的简单到HTTP3的强大

    📈「作者简介」:前端开发工程师 | 蓝桥云课签约作者 | 技术日更博主 | 已过四六级 📚「个人主页」:阿珊和她的猫 🕐「简历必备」前后端实战项目(推荐:⭐️⭐️⭐️⭐️⭐️) Vue.js 和 Egg.js 开发企业级健康管理项目 带你从入门到实战全面掌握 uni-app 请求-响应模型

    2024年02月16日
    浏览(61)
  • 谈谈Http2-为什么nginx在http2下的表现远弱于http1.1

    本篇文章的灵感来源于不久前的一次压测,接口的TPS在100并发下不足500,且延时超过500MS,这个接口的性能远远低于我们的预期。 对应的接口是一个极为简单的接口,只做了两件事情: 从数据库中读取一条数据,做了一些简单的处理 进行一次HTTP调用 那么话不多说,开始从内

    2024年01月24日
    浏览(34)
  • 从HTTP3的横空出世,看各版本HTTP的区别与联系

    发送一次请求需要等待响应之后才能再次请求( 队头阻塞 ); 每次重复传输头信息; 支持连接的多路复用( 仅应用层 ); HAPCK算法 压缩头信息; 过程: 2.1 建立连接:通过 tcp3次握手 建立连接; TLS握手 建立安全连接 2.2 慢启动预热 2.3 传输数据: 应用层 可以发送多个协议,

    2024年02月08日
    浏览(45)
  • 人工智能发展简史第三章:第二次浪潮期-20世纪70年代末、80年代

    20世纪70年代末、80年代初,人工智能进入了第二次浪潮,其中代表性的工作是1976年兰德尔·戴维斯(Randall Davis)构建和维护的大规模的知识库,1980年德鲁·麦狄蒙(Drew McDermott)和乔恩·多伊尔(Jon Doyle)提出的非单调逻辑,以及后期出现的机器人系统。 1980年,汉斯·贝利纳

    2024年03月15日
    浏览(53)
  • 说说 HTTP1.0/1.1/2.0 的区别?

    HTTP 协议的第二个版本,第一个在通讯中指定版本号的HTTP协议版本 HTTP 1.0  浏览器与服务器只保持短暂的连接,每次请求都需要与服务器建立一个 TCP 连接 服务器完成请求处理后立即断开 TCP 连接,服务器不跟踪每个客户也不记录过去的请求 简单来讲,每次与服务器交互,都

    2024年04月08日
    浏览(81)
  • Http1.0 、1.1、2.0、3.0的区别

    巨人的肩膀 3.1 HTTP 常见面试题 | 小林coding HTTP1.0与HTTP1.1 HTTP1.1在HTTP1.0上的改进: 使用长连接的方式改善了HTTP1.0中短连接造成的性能开销 支持管道网络传输,不必等到上一个的响应,就可以接着发送第二个请求,减少整体响应时间 HTTP1.1的缺点: HTTP报文中的头部信息未经压

    2024年02月01日
    浏览(41)
  • 详解HTTP1.0、1.1、2.0版本区别/优化

    1、HTTP 1.0 是一种无状态,无连接的应用层协议 规定浏览器和服务器保持短暂的链接。 浏览器每次请求都需要与服务器建立一个TCP连接,服务器处理完成以后立即断开TCP连接(短连接),服务器不跟踪也每个客户单,也不记录过去的请求(无状态)。 这种无状态性可以 借助

    2023年04月08日
    浏览(69)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包