learning center banner

HTTP/3是什么?

HTTP/3是什么?

HTTP/3是下一代互联网传输协议,旨在提供更快、更安全和更可靠的网络通信。它基于QUIC(快速UDP互联网连接)协议,带来了众多创新和优势。

HTTP协议的发展

HTTP协议的发展经历了多个版本和改进。以下是HTTP协议演变中的主要里程碑总结:

  • HTTP/0.9: 于1991年发布,是HTTP的最早版本。它是一个简单的协议,仅支持用于检索HTML文档的GET方法。缺乏头部、状态码和高级功能。
  • HTTP/1.0: 于1996年发布,引入了重要的增强功能。增加了对其他请求方法(如POST、HEAD等)的支持,引入了请求和响应的头部,并支持状态码和错误处理。HTTP/1.0还引入了持久连接,允许在单个连接上进行多个请求和响应。
  • HTTP/1.1: 于1999年发布,是使用最广泛的HTTP版本。它引入了管道化支持、缓存控制、虚拟主机和分块传输编码等功能。HTTP/1.1显著提高了性能和效率。
  • SPDY: SPDY是谷歌开发的一种实验性协议,旨在提高网页加载速度。它引入了多路复用、头部压缩和服务器推送等功能。一些SPDY的特性后来被纳入HTTP/2标准。
  • HTTP/2: 于2015年发布,是对HTTP/1.1的重大改进。它引入了二进制协议、使用帧进行通信、支持多路复用,以及能够在单个连接上发送多个请求和响应。HTTP/2还引入了头部压缩和服务器推送,进一步提升了性能和效率。
  • HTTP/3: HTTP/3是基于QUIC(快速UDP互联网连接)协议的下一代HTTP协议。QUIC是一种基于UDP的传输协议,旨在提供更快的连接建立和数据传输。HTTP/3利用QUIC的特性提供更快的加载速度、改进的安全性和适应性。HTTP/3仍在开发中,但已开始在一些浏览器和服务器中获得支持。

这些版本和改进使得HTTP协议能够不断适应和满足互联网不断发展的需求,提供更好的性能、安全性和用户体验。特别是HTTP/2和HTTP/3的引入,带来了显著的性能改进和新特性,推动了网络的发展和创新。

什么是HTTP/3?

HTTP/3是超文本传输协议(HTTP)的最新版本,它是任何数据交换的基础。HTTP/3引入了几个重要的改进和优化,以增强网页加载速度和整体网络性能。

HTTP/3的一个重要变化是,它不再使用传输控制协议(TCP)作为其基础传输协议。相反,它切换到了快速UDP互联网连接(QUIC)。QUIC是一种基于用户数据报协议(UDP)的传输协议,结合了TCP的可靠性和UDP的速度。QUIC还引入了新的功能,如内置的传输层安全(TLS)加密,以及改进的拥塞控制和错误恢复机制。

使用QUIC的主要优点之一是可以减少网络延迟。在TCP中,建立新连接需要多个往返通信,这会增加网络延迟。相比之下,QUIC可以通过一次往返建立连接,从而减少延迟。此外,QUIC支持多路复用,意味着可以在单个连接上并行发送多个请求,进一步提升网络性能。

quic over http/3

然而,HTTP/3也面临一些挑战。由于它基于UDP,某些网络设备可能会阻止或限制UDP流量,这可能影响HTTP/3的部署和性能。此外,HTTP/3的实现和优化需要更多的计算资源,这可能增加服务器负载。

HTTP/3有什么新内容?

HTTP/3引入了几个新特性和改进,以提供更快、更安全和更可靠的网络通信体验。以下是HTTP/3的一些新特性:

  • QUIC协议: HTTP/3利用QUIC(快速UDP互联网连接)协议作为基础传输协议。QUIC是一种基于UDP的传输协议,提供更快的连接建立和数据传输,更低的延迟,以及比TCP更好的适应性和拥塞控制。
  • 快速连接建立: HTTP/3通过0-RTT(零往返时间)握手实现快速连接建立。这使得客户端如果之前已经建立过连接,可以在第一次请求时立即发送数据,从而减少握手延迟。
  • 多路复用: HTTP/3支持多路复用,允许在单个连接上同时传输多个请求和响应。这改善了网络利用率,减少了连接建立和关闭的开销,提高了性能。
  • 低延迟: 通过最小化连接建立和恢复的往返时间,HTTP/3中的QUIC协议降低了延迟。这在高丢包网络环境中特别有利,因为HTTP/3可以维持低延迟。
  • 传输层安全: HTTP/3集成了传输层安全(TLS),确保所有数据以加密形式传输。这提供了更高的安全性和隐私保护,防止数据被窃取或篡改。
  • 拥塞控制: HTTP/3中的QUIC协议采用了先进的拥塞控制算法,更好地适应网络拥塞。这导致更稳定的传输性能。

这些新特性和改进使HTTP/3在连接建立和数据传输方面更快,延迟更低,更能适应网络条件,并且在安全性方面增强了隐私保护。HTTP/3代表了下一代互联网传输协议的重要创新。

HTTP/3与HTTP/2的比较

HTTP/3和HTTP/2都是超文本传输协议的版本,用于在万维网上传输数据。虽然HTTP/2对HTTP/1.1进行了显著改进,但HTTP/3引入了新的特性和优化。以下是两者的比较:

1. 传输协议

  • HTTP/2: 使用TCP(传输控制协议)作为其传输协议,虽然可靠,但可能会遭受首行阻塞(HOL),即单个丢失的数据包可能会延迟后续数据包的传输。
  • HTTP/3: 使用QUIC(快速UDP互联网连接)作为其传输协议,构建在UDP(用户数据报协议)之上。QUIC旨在最小化延迟,消除首行阻塞,从而实现更快和更高效的数据传输。

2. 连接建立

  • HTTP/2: 建立连接需要客户端和服务器之间进行多次往返,包括TCP握手和TLS(传输层安全)协商。
  • HTTP/3: QUIC允许通过将连接和安全握手合并为一次往返来实现更快的连接建立,从而减少延迟。

3. 多路复用

  • HTTP/2: 支持多路复用,允许多个请求和响应在单个TCP连接上同时发送,减少了多个连接的需要,提高了性能。
  • HTTP/3: 也支持多路复用,但在QUIC上实现,消除了首行阻塞问题,进一步提高了性能。

4. 加密

  • HTTP/2: 使用TLS进行加密,但不是强制性的,一些连接可能没有加密。
  • HTTP/3: 加密是QUIC协议内置的,对所有连接都是强制性的,增强了安全性和隐私。

5. 错误处理

  • HTTP/2: 一个流中的错误可能会影响其他流,因为共享的TCP连接可能导致性能问题。
  • HTTP/3: 错误被隔离到各个独立流中,因为QUIC独立管理流,改善了错误处理,减少了错误对其他流的影响。

总之,HTTP/3通过引入QUIC协议改进了HTTP/2,提供了更快的连接建立,消除了首行阻塞,并通过强制加密增强了安全性。这些改进预计将导致更好的性能和用户体验。

HTTP/3的兼容性

HTTP/3目前已在各种组织和互联网公司中实施。然而,需要注意的是,HTTP/3仍处于开发和采用阶段。基于QUIC协议的HTTP/3正在由互联网工程任务组(IETF)标准化。

以下是一些主要浏览器和服务器的支持状态:

浏览器支持:

  • Google Chrome: 从Chrome版本79开始支持HTTP/3。
  • Mozilla Firefox: 从Firefox版本78开始支持HTTP/3。
  • Microsoft Edge: 从Edge版本92开始支持HTTP/3。

服务器支持:

  • Nginx: 从Nginx版本1.19.10开始支持HTTP/3。
  • Apache: Apache目前尚未正式支持HTTP/3,但有第三方模块(如quiche)可用以启用HTTP/3支持。

需要注意的是,尽管HTTP/3得到支持,但其广泛采用和支持仍在进行中。一些旧版本的浏览器和服务器可能不支持HTTP/3,因此在使用HTTP/3时需要确保客户端和服务器都支持该协议。

此外,由于HTTP/3基于QUIC协议,它需要网络基础设施(如路由器、防火墙等)对QUIC协议的支持才能正常工作。随着时间的推移,预计HTTP/3的支持将更加广泛和成熟。

EdgeOne对HTTP/3的支持

EdgeOne现在支持HTTP/3和QUIC协议。HTTP/3提供更快的连接建立和数据传输速度,支持多路复用以同时传输多个请求和响应,并在拥塞控制、头部压缩等领域取得了改进,显著减少延迟和等待时间,提高网站性能和用户体验。