ICode9

精准搜索请尝试: 精确搜索
首页 > 互联网> 文章详细

HTTP/3 真的有这么强大吗?有人说他正在吞噬世界?

2023-10-26 23:31:23  阅读:155  来源: 互联网

标签:


HTTP/3是一种新的互联网协议,也被称为QUIC(Quick UDP Internet Connections)。它是HTTP/2的后继版本,旨在改进网络性能和安全性。与之前的版本有一个重要的区别,即它使用了UDP协议而不是TCP协议。

尽管HTTP/3正在逐渐被广泛采用,但它还没有完全取代传统的HTTP协议。目前,大多数互联网流量仍然使用HTTP/1.1或HTTP/2协议。然而,随着时间的推移,HTTP/3可能会变得越来越流行,因为它的性能优势和改进的网络安全性。

HTTP/3的优势包括:

提高了吞吐量和响应速度:由于HTTP/3使用了UDP协议而不是TCP协议,它可以更快速地传输数据,从而提高了吞吐量和响应速度。
改进了网络安全性:HTTP/3支持加密通信,可以更好地保护用户的数据安全。
更好的支持移动设备:由于UDP协议在移动设备上更可靠,HTTP/3可以更好地支持移动设备上的网络通信。
总之,尽管HTTP/3正在逐渐被采用,但它还没有完全取代传统的HTTP协议。然而,随着时间的推移,它可能会变得越来越流行,因为它提供了更好的性能和网络安全性。

为什么我们需要HTTP/3?
网络协议描述了网络上的两个实体之间如何进行数据通信,通常是用户设备和Web服务器之间的通信。由于有许多不同的公司构建面向Web的软件,因此协议需要标准化,以便所有这些软件可以“互操作”,也就是说它们都遵循相同的规则,可以相互理解。

在实践中,我们不会只使用一种协议,而是组合使用多个协议,每个协议都有自己的职责和规则(如图1所示)。这是为了提高灵活性和可重用性,无论是使用Wi-Fi、有线连接还是4G/5G,都可以使用完全相同的HTTP逻辑。

图1:HTTP/2和HTTP/3的协议栈,展示了多个协议如何组合以提供完整的互联网功能。

许多最初用于互联网的协议是在80年代和90年代标准化的,这意味着它们是根据那些年代的目标和限制构建的。尽管其中一些协议经受住了时间的考验,但有一些则显得有些过时。大多数问题都已通过权宜之计和巧妙的技巧解决。但是显然有些协议需要一些改变。尤其是负责保证数据可靠穿越互联网的TCP协议(传输控制协议)。

为什么TCP不适合如今的网络?
HTTP/1.1和HTTP/2依赖于TCP来执行任务。客户端和服务器必须先建立一个TCP连接,才能交换HTTP请求和响应。

随着时间的推移,人们已经做出了许多努力来更新TCP并解决一些效率问题,如TCP仍然像加载单个文件一样加载网页,而不会加载数百个单独文件的集合。其中一些更新取得了成功,但大多数影响过大的更新(例如TCP多路径和TCP快速开启)几乎花费了将近十年的时间才能在公共互联网上实际使用。

更改TCP的主要难点是,互联网上有成千上万的设备都拥有自己的TCP协议实现。这些设备包括手机、笔记本电脑、服务器,以及路由器、防火墙、负载均衡器和其他类型的“中间设备”。因此,如果我们想要更新TCP,必须等待相当一部分设备更新其实现,而实际上这可能需要数年的时间。

QUIC解决方案
TCP的问题十分严重,如今最切实可行的方法是用全新的协议替代TCP。这个替代品就是QUIC协议,尽管许多人(打趣地)将其称为TCP 2.0。这个绰号很贴切,因为QUIC包含了TCP的许多高级特性,但有一些关键的改变。

主要的变化是,QUIC与传输层安全性(TLS)协议紧密集成。TLS负责在网络上加密敏感数据,它就是HTTPS中的S(安全)。在TCP中,TLS只加密实际的HTTP数据(图2)。而在QUIC中,TLS还加密了QUIC协议本身的大部分内容。这意味着,数据包编号和连接关闭信号等元数据在TCP中对所有中间设备可见(且可更改),但在QUIC中现在只对客户端和服务器可见。
此外,由于QUIC的加密更加广泛,因此比TCP更容易更改或添加新功能——我们只需要更新客户端和服务器,因为中间设备无法解密元数据。因此,QUIC成为了一种面向未来的协议,可以让我们更快地解决新的挑战。
QUIC还具有许多其他与安全相关的功能,包括抵御分布式拒绝服务(DDoS)攻击,具有防放大和RETRY数据包等功能。
最后,与TCP相比,QUIC还包括大量的效率和性能改进,例如更快的连接握手(请参见图3),消除了“首行阻塞”问题,更好的数据包丢失检测/恢复,以及处理用户切换网络的方法。
QUIC具有更快的连接设置,因为它将“传输”三次握手与TLS加密会话建立结合在一起,而在TCP+TLS中,这是两个单独的过程。
我们不需要HTTP/3;我们需要的是QUIC。
最初,人们曾尝试保留HTTP/2,并进行最小的调整,以便在较低的层上也可以使用QUIC(毕竟,这么多可重用协议的整个目的就在于此)。然而,我们很快就发现,QUIC与TCP有很大区别,无法兼容HTTP/2。因此,人们决定制定一个只能用于QUIC的新版本HTTP,最终成为了HTTP/3。

HTTP/3几乎与HTTP/2相同。它与HTTP/2的主要区别是它基于QUIC,而不是TCP。然而,由于HTTP/3可以使用QUIC的所有新功能,因此在加载网页和流式传输视频时,具有更高的性能。实际上,这正是HTTP/3迅速被采用的原因。
 

标签:
来源:

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有