sgcQUIC — 面向 Delphi、C++ Builder 和 .NET 的 QUIC 与 HTTP/3

sgcQUIC — 面向 Delphi、C++ Builder 和 .NET 的 QUIC 与 HTTP/3

面向 Delphi、C++ Builder 和 .NET 的完整 QUIC 与 HTTP/3 技术栈。sgcQUIC 提供四个调色板组件 — 一对原始 QUIC 传输客户端与服务器(RFC 9000),以及一对 HTTP/3 客户端与服务器(RFC 9114)— 均基于 OpenSSL 3.5 中的原生 QUIC 引擎构建。QPACK 头部压缩、Alt-Svc 发现、0-RTT、连接迁移和 WebTransport 均内置其中,同一套 API 同时运行于 Object Pascal 和 C#。

QUIC 传输 (RFC 9000)
HTTP/3 (RFC 9114) + QPACK
OpenSSL 3.5 原生 QUIC
Delphi / C++ Builder / .NET
WebTransport (RFC 9220)

同样的 HTTP 语义,全新的传输层

HTTP/3 保留了您已经熟悉的方法、状态码和头部,并用 QUIC 取代 TCP — 一种内置 TLS 1.3 的基于 UDP 的传输协议。sgcQUIC 通过 OpenSSL 3.5 中的原生 QUIC 支持来驱动它,因此您可以从 Delphi、C++ Builder 或 .NET 获得现代传输层,而无需单独的库。

一次握手,无队头阻塞

QUIC(RFC 9000)将传输层握手与 TLS 1.3 握手合并为一次发送,并消除了传输层的队头阻塞 — 丢失的数据包只会阻塞其承载数据所属的流,而不会阻塞整个连接。

基于 OpenSSL 3.5 原生 QUIC 构建

该引擎在 OpenSSL 加载时自动被检测到。使用附带的 OpenSSL 3.5 二进制文件,您将获得 qmBuiltin 引擎,它支持每个连接上的多个流,也是这些组件所围绕构建的引擎。

QPACK 头部压缩

HTTP/3 使用 QPACK(RFC 9204)压缩头部 — 这是 HTTP/3 对 HPACK 的替代方案,专为 QUIC 的乱序传递而设计,动态表更新通过专用的编码器和解码器流传输。

连接迁移

QUIC 连接通过连接 ID 而非地址四元组来标识,因此会话可以在客户端更换网络后继续存活 — 一个连接可以跟随设备从 Wi-Fi 切换到移动数据,而无需重新握手。

0-RTT 与多流

全新连接只需一次往返即可完成,恢复的会话可以在第一次发送中携带 0-RTT 数据。在内置引擎上,EnableMultiStreamOpenStream 可在一个连接上开出多个独立的 QUIC 流。

WebTransport 会话

WebTransport(RFC 9220)通过 Extended CONNECT 协商,并直接把 QUIC 流交给应用程序,专为内置引擎之上的低延迟双向流量而设计。

四个组件,两个层级

一对用于流和数据报的原始 QUIC 传输组件,以及一对在同一引擎之上进行请求/响应通信的 HTTP/3 组件。每个组件都链接到自己的页面,附带 Delphi、C++ Builder 和 .NET 示例。

TsgcQUICClient

原始 QUIC 传输客户端。打开一个 QUIC 连接,在一个或多个流上发送和接收字节(RFC 9000),支持 0-RTT 和连接迁移 — 不含 HTTP 语义的纯 QUIC。

查看组件 →

TsgcQUICServer

原始 QUIC 传输服务器。绑定一个 UDP 端口,终止 TLS 1.3,并为每个 QUIC 连接和流引发事件,让您在 QUIC 之上构建自己的协议。

查看组件 →

TsgcHTTP3Client

HTTP/3 客户端(RFC 9114)。所有动词均可以阻塞或异步方式调用,支持 QPACK 压缩、Alt-Svc 发现、服务器推送、Extended CONNECT 隧道和 WebTransport 会话。

查看组件 →

TsgcHTTP3Server

HTTP/3 服务器。通过 QUIC 处理请求,继承自 TsgcQUICServer,为每个请求引发一个事件,并可以推送响应、打开 WebTransport 会话和发送数据报。

查看组件 →

查看完整功能矩阵 →

通过 HTTP/3 发起 GET 请求

连接到主机和端口,然后发出请求。默认端口是 443。Delphi、C++ Builder 和 .NET 中使用同一套 API。

uses
  sgcHTTP3_Client;

var
  oClient: TsgcHTTP3Client;
  vBody: string;
begin
  oClient := TsgcHTTP3Client.Create(nil);
  oClient.OnResponse := OnResponseHandler;
  oClient.OnAltSvc   := OnAltSvcHandler;

  oClient.Connect('www.example.com', 443);
  vBody := oClient.Get('https://www.example.com/');   // request over QUIC
  oClient.Disconnect;
end;
// includes: sgcHTTP3_Client.hpp

TsgcHTTP3Client *oClient = new TsgcHTTP3Client(NULL);
oClient->OnResponse = OnResponseHandler;
oClient->OnAltSvc   = OnAltSvcHandler;

oClient->Connect("www.example.com", 443);
String vBody = oClient->Get("https://www.example.com/");   // request over QUIC
oClient->Disconnect();
using esegece.sgcWebSockets;

var oClient = new TsgcHTTP3Client();
oClient.OnResponse += OnResponseHandler;
oClient.OnAltSvc   += OnAltSvcHandler;

oClient.Connect("www.example.com", 443);
var vBody = oClient.Get("https://www.example.com/");   // request over QUIC
oClient.Disconnect();

sgcQUIC 实现的 RFC 标准

基于标准构建的技术栈,而非私有传输协议。

RFC 9000 — QUIC

QUIC 传输层:单次合并的传输 + TLS 1.3 握手、独立的流、连接 ID 和连接迁移。通过 TsgcQUICClientTsgcQUICServer 直接暴露。

RFC 9114 — HTTP/3

QUIC 之上的 HTTP 语义:您熟悉的方法、状态码和头部,映射到 QUIC 流上。由 TsgcHTTP3ClientTsgcHTTP3Server 实现。

RFC 9204 — QPACK

HTTP/3 的头部压缩,专为 QUIC 的乱序传递而设计,动态表通过专用的编码器和解码器流同步。

RFC 9220 — WebTransport

通过 Extended CONNECT 在 HTTP/3 之上引导 WebTransport,将 QUIC 流交给应用程序,用于低延迟双向流量。

sgcWebSockets 的附加组件

sgcQUIC 以附加组件的形式授权。所有许可证都包含完整源代码、1 年更新以及 70% 的续订折扣。

sgcQUIC

€149

提供 Single、Team 和 Site 授权,均含完整源代码。

  • TsgcQUICClient & TsgcQUICServer
  • TsgcHTTP3Client & TsgcHTTP3Server
  • Delphi、C++ Builder 和 .NET
  • 完整源代码
  • 1 年更新

★ 需要 sgcWebSockets

sgcQUIC 需要 sgcWebSockets Enterprise。

查看价格并订购
3,000+Developers
20+Years
761+Components
30+API Integrations
5Platforms
30 天退款保证不满意?可在购买后 30 天内申请全额退款。 查看退款政策

无需离开 IDE 即可交付 QUIC 与 HTTP/3

为您的 Delphi、C++ Builder 或 .NET 应用程序添加现代 Web 正在迁移的传输协议 — 使用您已经在用的语言。

eSeGeCe 的其他产品

将 sgcQUIC 与我们的其他 Delphi、C++ Builder 和 .NET 组件库搭配使用。

sgcWebSockets

企业级 WebSocket、HTTP/2、MQTT、AMQP、WebRTC 和 AI/LLM 组件。sgcQUIC 是 sgcWebSockets Enterprise 的附加组件。

了解更多 →

sgcHTML

89 个面向 Delphi、C++ Builder 和 .NET 的数据感知服务器端 HTML/UI 组件,基于 Bootstrap 5 和 htmx。

了解更多 →

sgcSign

企业级数字签名 — XAdES、PAdES、CAdES 和 ASiC,支持 10 个密钥提供商和 21 个欧盟国家配置文件。

了解更多 →

sgcOpenAPI

OpenAPI 3.0 解析器和 SDK 生成器。几秒钟内将任何 OpenAPI 规范转换为强类型的 Delphi 客户端。

了解更多 →

sgcBiometrics

面向 Delphi 和 C++ Builder 的原生 Windows Hello、指纹和 Windows 生物识别框架组件。

了解更多 →

sgcIndy

更新版 Indy TCP/IP 组件,为 Delphi 7 至 13 提供现代 TLS、IPv6 和 HTTP/2 支持。

了解更多 →