1. Web服务器http3/QUIC支持情况测试
2. 浏览器Http3/QUIC支持情况测试
https://quic.nginx.org/quic.html
3. http3,QUIC简介
在互联网世界中,速度、安全和效率始终是永恒的追求。为了应对这些挑战,并克服传统传输协议的固有局限性,HTTP/3 应运而生,而其核心就是全新的传输协议 QUIC。
3.1 什么是 HTTP/3?
HTTP/3 是超文本传输协议(HTTP)的第三个主要版本,它是我们每天在网页浏览器中使用的协议。与前两个版本(HTTP/1.1 和 HTTP/2)不同,HTTP/3 不再依赖于传输控制协议(TCP),而是选择构建在 QUIC 之上。它于 2022 年被国际互联网工程任务组(IETF)正式采纳为标准。
3.2 什么是 QUIC?
QUIC(Quick UDP Internet Connections)是一个通用传输层协议,最初由 Google 开发,旨在解决 TCP 的一些固有限制,并提供更优异的性能和安全性。QUIC 运行在用户数据报协议(UDP)之上,这使得它能够绕过一些在 TCP 上难以解决的问题。
3.3 为什么需要 HTTP/3 和 QUIC?
HTTP/1.1 和 HTTP/2 都基于 TCP 协议,而 TCP 在某些高延迟或高丢包的网络环境下(例如移动网络)会遇到性能瓶颈。最主要的问题是 队头阻塞 (Head-of-Line Blocking)。在 TCP 中,即使一个数据包丢失,它也会阻塞该连接上的所有后续数据传输,直到丢失的包被重新传输。这极大地影响了并行传输的效率。
HTTP/3 和 QUIC 的诞生正是为了解决这些问题,旨在提供更低的延迟、更快的页面加载速度以及更强的网络弹性。
3.4 HTTP/3 和 QUIC 的关键特性与优势:
-
基于 UDP: QUIC 放弃了 TCP,转而使用 UDP。虽然 UDP 本身是无连接的、不可靠的,但 QUIC 在其之上实现了可靠性、拥塞控制和流量控制,从而结合了 UDP 的速度和 TCP 的可靠性。
-
更快的连接建立: QUIC 将传输层握手和加密握手(TLS 1.3)合并为一个步骤,实现了 0-RTT (Zero Round-Trip Time) 和 1-RTT (One Round-Trip Time) 连接建立。这意味着客户端和服务器可以在更少的往返时间内建立安全连接,从而显著减少了首次连接的延迟。
-
多路复用且无队头阻塞: QUIC 引入了独立的流(streams)概念。在一个 QUIC 连接中,可以同时传输多个独立的 HTTP 请求和响应流。即使一个流中的数据包丢失,也只影响该流,而不会阻塞同一连接上的其他流。这彻底解决了 TCP 的队头阻塞问题,尤其在网络条件不佳时能显著提升性能。
-
内置加密(TLS 1.3): QUIC 从一开始就将 TLS 1.3 作为其安全的基础,所有 QUIC 连接都默认加密。这意味着数据和大部分元数据都受到保护,增强了隐私和安全性。
-
连接迁移: QUIC 支持连接迁移。这意味着即使您的设备在不同网络之间切换(例如从 Wi-Fi 切换到蜂窝数据),QUIC 连接也能保持活跃而不会中断,因为连接不再与 IP 地址和端口号严格绑定,而是通过连接 ID 来识别。这对于移动用户体验尤其重要。
-
改进的拥塞控制: QUIC 提供了更先进和灵活的拥塞控制机制,可以更好地适应各种网络条件,从而提高吞吐量和稳定性。
3.5 总结:
HTTP/3 和 QUIC 是现代互联网通信的重大进步。它们共同为网络带来了更高的性能、更低的延迟、更强的安全性和更好的弹性,尤其是在移动和不稳定的网络环境中表现突出。随着越来越多的浏览器和服务器开始支持 HTTP/3/QUIC,我们所体验的网页加载速度和整体网络体验将得到显著提升。