HTTP/3是最新的超文本传输协议,它是基于QUIC(Quick UDP Inte.NET Connections)协议开发的。HTTP/3是HTTP/2的后继者,可以有效地提高网页加载速度、改善安全性,并提供更好的流控制功能。
HTTP/3是由Internet Engineering Task Force(IETF)标准化的,旨在通过重新设计协议来克服TCP协议的一些限制。QUIC协议可以提供比TCP更高的可靠性(尽管QUIC 基于 UDP,但它在应用层实现了可靠的传输机制,如数据包确认、重传、拥塞控制等)和更好的性能(这是因为它是基于UDP协议而不是TCP协议构建的)。
相比于HTTP/2,HTTP/3有许多新的特性和改进。例如,HTTP/3使用QUIC协议中的快速连接建立机制,可以更快地建立连接。另外,HTTP/3可以同时处理多个请求和响应,从而提高了并发处理能力。
HTTP/3 在保留 HTTP/2 的许多优点的基础上,引入了一系列新特性和改进。以下是 HTTP/3 的主要特性:
HTTP/3的实现基于QUIC(Quick UDP Internet Connections),这是一种基于UDP协议的新型传输协议。QUIC是由google于2012年开始开发的,旨在替代TCP协议,用于提高Web应用程序的性能和安全性。QUIC相比TCP协议,具有以下优势:
HTTP/3基于QUIC实现的主要目的是提高性能和安全性。QUIC协议的特点,如连接建立速度快、抗丢包能力强、降低延迟等,都可以通过HTTP/3来发挥。此外,HTTP/3在数据传输过程中采用了TLS 1.3协议加密数据,更加安全可靠。
在实现上,HTTP/3使用了与HTTP/2相同的API接口,使得应用程序可以在不修改代码的情况下切换到HTTP/3。但由于HTTP/3使用了不同的传输协议,所以底层的实现细节与HTTP/2有所不同。
目前,HTTP/3的实现主要是由谷歌和互联网工程任务组(IETF)推进。IETF于2020年2月宣布QUIC进入正式标准化流程,HTTP/3也在2022年6月6号正式标准化。
HTTP/2 依赖于 TCP 作为底层传输协议,而 HTTP/3 则选择了基于 UDP 的 QUIC 协议。这使得 HTTP/3 具有更低的延迟和更好的拥塞控制能力,尤其是在不稳定的网络环境中。
HTTP/2 和 HTTP/3 都支持多路复用,即允许在单个连接中同时传输多个请求和响应。然而,它们实现多路复用的方式有所不同。HTTP/2 使用基于帧的流来分隔不同的请求和响应,而 QUIC 使用完全独立的流。这使得 HTTP/3 能够避免队头阻塞问题,提高传输效率。
HTTP/2 依赖于 TCP 的三次握手来建立连接,并在使用 TLS 时需要额外的往返。相比之下,QUIC 支持零往返时间(0-RTT)连接建立,可以显著降低连接建立所需的时间。
HTTP/2 通过单独的 TLS 层来实现加密,而 HTTP/3 的 QUIC 协议将加密作为其核心功能,不再依赖单独的 TLS 层。这不仅可以提高安全性,而且可以简化协议栈,提高传输性能。
HTTP/2 依赖于 TCP 的拥塞控制策略,而 HTTP/3 的 QUIC 协议实现了更先进的拥塞控制算法,能够更好地应对网络拥塞,提高数据传输速率。
以下是专业人士做的HTTP/2 和 HTTP/3 的单次请求性能对比:
|
小网站 |
内容网站 |
单页面网站 |
HTTP/2 |
500ms |
1000ms |
600ms |
HTTP/3 |
100ms |
675ms |
300ms |
不过想用上HTTP/3还需要很长的时间,毕竟现在HTTP/2也还未全部推广。