0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

HTTP/3 来了,它比 HTTP/1 和 HTTP/2 强在哪儿?

亿佰特物联网应用专家 2022-08-28 15:35 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

前言通过这篇文章你可以了解到:1. 什么是HTTP协议?2.HTTP 1.1 / 2.0 / 3.0 的发展变更3.HTTP 1.1 / 2.0 / 3.0 的主要区别4.HTTP 3.0 进化发展的意义

什么是HTTP协议?

HTTP

HTTP(Hyper Text Transfer Protocol 超文本传输协议),是一个用于传输超文本文档的应用层协议,基于TCP协议,它是为Web浏览器与Web服务器之间的通信而设计的。a6f8c604-24af-11ed-9ade-dac502259ad0.png基本特点:1.基于TCP协议,应用层协议2.传输一些HTML、CSS、JavaScript内容3.请求及响应4. 简单可扩展:语义简单且可在请求头自定义内容5. 无状态:请求之间是相互孤立的a71a3154-24af-11ed-9ade-dac502259ad0.pngHTTP协议到目前为止所有的版本可以分为HTTP 0.9、HTTP 1.0、HTTP 1.1、HTTP 2.0、HTTP 3.0,其中普遍应用的是HTTP 1.1版本,正在推进HTTP 2.0版本,以及未来的HTTP 3.0版本,今天主要介绍这三个版本。

HTTP 1.1 / 2.0 / 3.0 之间的发展变更

HTTP

「HTTP 1.1 」HTTP代表超文本传输协议,这是一种自1989年推出以来用于通过万维网进行通信的应用程序协议。HTTP是互联网上的计算机和服务器用来请求和发送信息的一种方法。
HTTP 1.1是标准化的协议,HTTP 1.1消除了大量歧义内容并引入了多项改进。「工作方式」HTTP利用一些简单的方法在计算机之间发送和接收信息。两种最常见的方法是:(1)获取;(2)发布。当客户端计算机与服务器通信时,它会发送这些命令之一来指示服务器下一步该做什么。作为响应,服务器通常会将资源(如 HTML 网页)返回给客户端计算机。「获取示例」让我们把它放到一个可能发生的示例HTTP事务中。a7429338-24af-11ed-9ade-dac502259ad0.png

在此示例中,客户端计算机使用 GET 方法从地址为“www.example.co.uk”的主机服务器请求名为“index.html”的 HTML 文档,该文档采用 HTTP/1.1 协议。作为响应,Web 服务器将“index.html”文档连同任何相关的样式表、图像或其他资源一起返回到客户端计算机。但是,这些资源不会在一个事务中全部返回 - 请求和响应将来回传递,直到所有相关数据都已传输并且客户端可以在其浏览器上显示网页。「开机自检示例」下面的另一个示例是如何执行具有 POST 命令的典型 HTTP 事务:a767a920-24af-11ed-9ade-dac502259ad0.png在此示例中,客户端计算机使用 POST 方法将数据发送到指定的服务器。这里发送的数据是“field1=value1&field2=value2”。第一行定义正在使用的方法、要将数据发送到的文件以及 HTTP 版本。“host”行定义了在发送指定数据之前,客户端计算机应连接到的位置。

「HTTP 2.0 」
HTTP / 2是HTTP协议的第一个主要修订版,旨在通过实施各种优化技术来减少网页加载延迟。HTTP/2 由 IETF(互联网工程任务组)于 2015 年 5 月发布,旨在成为与所有可用 Web 浏览器兼容的标准通信方法。「特点」1. HTTP/2 连接都是永久的,而且仅需要每个来源一个连接。2. 流控制:阻止发送方向接收方(服务器)发送大量数据的机制。3. 服务器可主动推送信息。a78a478c-24af-11ed-9ade-dac502259ad0.png「工作方式」虽然HTTP / 1.1和HTTP / 2共享语义以促进两个协议之间的通信,但它们用于传递数据的方法可能会有很大差异。HTTP/2 和 HTTP/1.x 之间的主要区别如下:(1)HTTP/2 将请求和响应消息编码为二进制,而不是传输使用 HTTP/1.1 看到的普通纯文本消息。(2)HTTP/2是完全多路复用和并发的,这意味着与HTTP/1.x中的有限请求相比,它可以向网站发出更多的请求。(3)利用网站资产的流优先级。(4)标头压缩用于减少开销处理。

「HTTP 3.0 」
HTTP/3是2020年8月发布的基于QUIC网络协议的新版本HTTP。HTTP 3.0作为超文本传输协议(HTTP)的第三个版本,以前称为HTTP-over-QUIC。QUIC(Quick UDP Internet Connections)最初由Google开发,是HTTP 2.0的继任者。谷歌和Facebook等公司已经在使用QUIC来加速网络。「工作方式」作为一个非常新的协议,HTTP / 3可能会在未来几年内发生一些变化,但它的基础仍将牢牢地基于QUIC协议。QUIC(快速UDP互联网连接)是一种新的网络传输层协议,与TCP相比,旨在显著减少延迟并提高效率。从本质上讲,连接建立得更快 - 特别是当网络条件不是最佳时。由于QUIC减少了TCP慢启动问题,视频流的速度可能会显著提高,尤其是在UHD及以上版本中。此外,在移动网络和Wi-Fi网络之间移动时,出于同样的原因,HTTP / 3也可以提供速度改进。

HTTP/3 与 HTTP /1 / 2 有何不同?

HTTP

HTTP/ 3与HTTP / 1和2中使用的传统方法有几个显著差异。让我们来看看其中的一些关键区别。①网络协议 – UDP 与 TCP:HTTP / 3和旧版本(仅使用TCP)之间最明显的区别是HTTP / 3完全基于QUIC,它利用UDP。UDP是一种用于快速通信的传输协议,通过该协议可以错误地传输数据。这主要用于视频传输,其中接收实时图像至关重要,并且视频帧损坏不是主要问题。使用新的QUIC协议,Web服务器现在能够发送并行请求/响应。这意味着,如果一个请求或响应遇到数据包丢失,则其他请求或响应不会因此而停止。a843d486-24af-11ed-9ade-dac502259ad0.png②标头压缩 – QPACK 与 HPACK:
HTTP/3 使用 QPACK,这是一种压缩格式,用于表示 HTTP 通过 QUIC 在 HTTP 中使用的 HTTP 标头。a86c3e08-24af-11ed-9ade-dac502259ad0.png

HTTP 3.0 进化发展的意义

HTTP

就像HTTP 2.0一样,这是由Google的带头推动的进步。断续器或者很快,HTTP 3.0将再次建立在这些成就之上。虽然HTTP 2.0确实为我们提供了多路复用,并减轻了行头阻塞,但它受到TCP的约束。a89a83c6-24af-11ed-9ade-dac502259ad0.png您可以将单个TCP连接用于多路复用在一起的多个流来传输数据,但是当其中一个流遭受数据包丢失时,整个连接(及其所有流)都会受到约束,也就是说,直到TCP完成其任务(重新传输丢失的数据包)。
这意味着,在目标节点的缓冲区中,所有数据包(即使它们已经传输并正在等待)都会被阻止,直到重新传输丢失的数据包。QUIC不受此限制。通过基于无连接 UDP 协议的 QUIC 构建,连接的概念不具有 TCP 的限制,并且一个流的故障不必影响其余流。QUIC(Quick UDP Internet Connections)于2012年由Google首次部署。它重新定义了网络层的边界,依赖于较低级别的UDP协议,重新定义了“用户空间”中的握手,可靠性功能和安全功能,避免了升级互联网系统内核的需要。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • HTTP
    +关注

    关注

    0

    文章

    538

    浏览量

    35567
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何基于CANoe实现HTTP通信

    超文本传输协议(HTTP,Hypertext Transfer Protocol)是一种用于在客户端与服务器之间传输数据的应用层协议,起初主要服务于Web场景,如今被广泛引入汽车电子、工业4.0、医疗等领域。
    的头像 发表于 01-28 15:01 315次阅读
    如何基于CANoe实现<b class='flag-5'>HTTP</b>通信

    瑞芯微(EASY EAI)RV1126B http/https

    1.HTTP/HTTPS简介HTTP(全称:HyperTextTransferProtocol,超文本传输协议)是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器请求和应答标准,用于从WWW
    的头像 发表于 01-26 16:53 2634次阅读
    瑞芯微(EASY EAI)RV1126B <b class='flag-5'>http</b>/https

    工业领域为什么会用到HTTP协议

    1. 与IT系统无缝集成 企业信息化基础 :现代工业系统(如MES、ERP、SCADA)通常基于IT架构构建,而HTTP是互联网和企业内部网络的核心协议。工业设备通过HTTP接口可直接与企业信息系统(如数据库、云平台)交互,
    的头像 发表于 12-27 09:38 275次阅读

    HTTP物联网网关是什么?有什么功能?

    HTTP物联网网关是连接物联网设备与云端平台的核心设备,它以HTTP协议为基础,实现设备与云端之间的数据交互,并具备协议转换、数据预处理、安全管理和设备管理等功能 。以下是详细介绍: 一、核心定义
    的头像 发表于 12-24 11:33 545次阅读
    <b class='flag-5'>HTTP</b>物联网网关是什么?有什么功能?

    HTTP通信网关是什么?有什么功能?

    HTTP通信网关是连接不同网络或协议的关键设备/服务器,在HTTP通信中扮演着协议转换、安全加固、性能优化等核心角色,其本质是 实现不同协议或网络间的数据转发与处理 。以下是其核心功能与工作机制
    的头像 发表于 12-23 11:14 648次阅读

    使用 HTTP 协议能否实现 IAP 功能?

    使用 HTTP 协议,能否实现 IAP 功能?
    发表于 12-23 06:35

    使用HTTP实现IAP的方法

    使用 HTTP 协议进行固件升级没有使用 TFTP 常见,但是在需要通过 Internet 进行远程编程时,这种解决方案就显得极为有用。这时,需要使用 TCP 传输协议来实现 http 服务
    发表于 12-16 06:18

    请问支持小数波特率接收数据的意义在哪儿

    我看芯源支持小数波特率,话说,支持小数波特率接收数据的意义在哪儿?是通讯更有精度吗?
    发表于 12-02 07:17

    LuatOS Air780EPM 开发板 HTTP 教程:原理讲解与项目实操!

    本篇教程将系统介绍 LuatOS Air780EPM 在 HTTP 通信中的应用,从请求机制到响应解析,配合完整代码演示,让你轻松实现设备端与云端的数据交互。 一、HTTP 概述 1.1
    的头像 发表于 09-26 20:36 1247次阅读
    LuatOS Air780EPM 开发板 <b class='flag-5'>HTTP</b> 教程:原理讲解与项目实操!

    HTTP开发必备:核心库与httpplus扩展库应用示例全攻略

    HTTP开发的必备参考!本文汇总核心库基础操作与httpplus扩展库高级特性,通过示例解析,让你快速上手各类HTTP开发需求。
    的头像 发表于 09-20 15:19 3334次阅读
    <b class='flag-5'>HTTP</b>开发必备:核心库与httpplus扩展库应用示例全攻略

    第三十章 W55MH32 HTTP_Server&amp;NetBIOS示例

    本文讲解了如何在 W55MH32 芯片上实现 HTTP_Server 与 NetBIOS 功能,并通过 NetBIOS 访问 HTTP 服务器网页内容,通过实战例程展示了在主循环中并行处理 HTTP 与 NetBIOS 相关事务
    的头像 发表于 07-24 16:21 1907次阅读
    第三十章 W55MH32 <b class='flag-5'>HTTP</b>_Server&amp;NetBIOS示例

    第九章 W55MH32 HTTP Server示例

    本文介绍了在 W55MH32 芯片上实现 HTTP Server 功能,并通过浏览器修改其网络地址信息的方法。阐述了 HTTP 协议的概念、特点、应用场景、工作流程、请求方法、响应内容,以及 Web 页面构成和交互方式。展示了在W55MH32上实现的过程。
    的头像 发表于 07-24 09:35 1423次阅读
    第九章 W55MH32 <b class='flag-5'>HTTP</b> Server示例

    HTTP协议在工业领域会用到吗

    HTTP协议在工业领域会用到,并且在工业互联网、设备管理、数据交互等多个方面发挥着重要作用,以下为你详细介绍: 工业互联网场景 设备接入与管理 原理:在工业互联网平台中,各类工业设备(如传感器
    的头像 发表于 06-03 09:17 791次阅读

    基于RK3576开发板的http/https通讯

    HTTP(超文本传输协议)和HTTPS(安全超文本传输协议)是互联网中广泛应用的协议,用于客户端与服务器之间的通信。HTTPS通过SSL/TLS协议对传输数据进行加密和身份认证,确保通信安全。两者
    的头像 发表于 05-10 11:24 2020次阅读
    基于RK3576开发板的<b class='flag-5'>http</b>/https通讯

    在KaihongOS应用开发中,如何通过HTTP发起一个数据请求

    , // 可选,默认为60000msusingProtocol: http.HttpProtocol.HTTP1_1, // 可选,协议类型默认值由系统自动指定usingProxy: false
    发表于 05-08 06:44