HTTP/3 是 HTTP 协议的第三个主要版本。它与 HTTP/1.1 和 HTTP/2 具有相同的语义(方法、状态码、标头),因此现有应用程序的行为方式不变,但它改变了传输层:HTTP/3 不再基于 TCP 运行,而是基于 QUIC——一种构建在 UDP 之上的现代传输协议。
HTTP/2 在应用层解决了请求多路复用问题,但其所有流仍共享一条 TCP 连接。当 TCP 数据包丢失时,每条流都必须等待重传(传输层队头阻塞)。QUIC 将流多路复用下移到传输层,因此丢失的数据包只会阻塞其所属的流,其他流继续正常流动。
HTTP/3 定义于 RFC 9114,QUIC 定义于 RFC 9000,QPACK 定义于 RFC 9204。
HTTP/3 在企业版中提供,需要 SGC_HTTP3 定义,默认使用 OpenSSL 3.5 或更高版本提供的原生 QUIC 支持。将 TLS 的 IOHandler 设为 iohNativeTLS 时,HTTP/3 运行在 sgc QUIC 引擎上,无需 OpenSSL,参阅不使用 OpenSSL 运行。