TCP + TLS:三次往返
SYN、SYN-ACK 和 ACK 打开套接字。ClientHello、ServerHello 和 Finished 建立 TLS。然后才发出第一个请求。
TCP 加 TLS 需要三次往返,才能等到响应的第一个字节。QUIC 把传输层握手和加密握手合并成一次,恢复的连接甚至可以在第一个数据包中就发送数据。sgcQUIC 为 Delphi、C++ Builder 和 .NET 提供了一个原生 QUIC 传输,以及构建在其上的 HTTP/3 客户端和服务器,基于 OpenSSL 3.5 QUIC 引擎。
sgcWebSockets Enterprise 的附加组件。查看价格 →在 TCP 上,传输层握手、TLS 握手和首个请求各需要一次往返。QUIC 把这三者合并在一次交换中完成。
SYN、SYN-ACK 和 ACK 打开套接字。ClientHello、ServerHello 和 Finished 建立 TLS。然后才发出第一个请求。
QUIC 把传输层握手和加密握手合并成一次交换,因此请求随握手一同发出,响应也随握手一同返回。
之前连接过的客户端可以在第一个数据包中就发送首个请求,甚至在握手完成之前。
配有旁白和字幕的快速入门:先是一个 HTTP/3 服务器和客户端,然后是带有多个流的原始 QUIC 连接。按下播放之前不会下载任何内容。
在 Delphi 中运行 HTTP/3 服务器和客户端,并打开一个原始 QUIC 连接。
如果需要自行定义帧格式的纯传输层,请使用 TsgcQUICClient 和 TsgcQUICServer ;如果线上格式就是 HTTP,则直接使用 TsgcHTTP3Client 和 TsgcHTTP3Server 。
TsgcQUICClient 和 TsgcQUICServer 使用原始 QUIC 通信:在一个加密连接上运行多个独立的流、不可靠数据报,以及当客户端 IP 地址在会话中途改变时的连接迁移。
TsgcHTTP3Client 和 TsgcHTTP3Server 在其上叠加 HTTP 语义:使用 QPACK 压缩的请求和响应头部、Alt-Svc 发现,以及您的 HTTP/2 代码已经在使用的相同方法和状态码。
之前连接过的客户端可以在第一个数据包中就发送首个请求,甚至在握手完成之前。
连接 ID 而非 IP 地址标识会话,因此手机从 Wi-Fi 切换到蜂窝网络时,其数据流仍能保持打开。
通过一次 Extended CONNECT 请求提供双向流和不可靠数据报,供支持 WebTransport 的浏览器客户端使用。
QUIC 和 TLS 1.3 握手运行在 OpenSSL 3.5 自身的 QUIC 引擎上。没有需要单独构建或引入的 QUIC 库。
sgcQUIC 不是一个残缺的实现。传输、成帧、头部压缩以及 WebTransport 扩展全部涵盖,构建在原生 OpenSSL 3.5 QUIC 引擎之上。
QUIC 传输协议:流、数据报、流量控制和连接迁移。
HTTP/3,与 HTTP/2 相同的请求和响应语义,通过 QUIC 流承载。
QPACK 头部压缩,专为 QUIC 的乱序流传递而设计。
基于 HTTP/3 的 WebTransport,通过一次 Extended CONNECT 请求实现双向流和数据报。
和其他任何 sgcWebSockets HTTP 客户端一样的形态:设置属性、处理一个事件、调用一个方法。服务器端是一个组件加一个处理程序。
uses
sgcHTTP3_Client;
var
vClient: TsgcHTTP3Client;
begin
vClient := TsgcHTTP3Client.Create(nil);
vClient.Host := 'api.example.com';
vClient.Port := 443;
vClient.OnResponse :=
procedure(Sender: TObject; const AStatus: Integer; const ABody: string)
begin
Memo1.Lines.Add(Format('%d: %s', [AStatus, ABody]));
end;
vClient.OnAltSvc :=
procedure(Sender: TObject; const AAltSvc: string)
begin
Memo1.Lines.Add('Alt-Svc: ' + AAltSvc); // h3 advertised over HTTP/2
end;
vClient.Connect;
vClient.Get('/pets/42');
end;
uses
sgcQUIC_Client;
var
vQUIC: TsgcQUICClient;
begin
vQUIC := TsgcQUICClient.Create(nil);
vQUIC.Host := 'quic.example.com';
vQUIC.Port := 4433;
vQUIC.EnableMultiStream := True;
vQUIC.OnQUICConnect :=
procedure(Sender: TObject)
var
vStreamId: Int64;
begin
vStreamId := vQUIC.OpenStream;
vQUIC.WriteData(vStreamId, 'ping');
end;
vQUIC.OnQUICStreamData :=
procedure(Sender: TObject; const AStreamId: Int64; const AData: string)
begin
Memo1.Lines.Add(Format('stream %d: %s', [AStreamId, AData]));
end;
vQUIC.Active := True;
end;
uses
sgcHTTP3_Server;
procedure TForm1.FormCreate(Sender: TObject);
begin
FServer := TsgcHTTP3Server.Create(nil);
FServer.Port := 443;
FServer.QUICOptions.SSLOptions.CertFile := 'server.crt';
FServer.QUICOptions.SSLOptions.KeyFile := 'server.key';
// One handler for every incoming HTTP/3 request
FServer.OnH3Request :=
procedure(const Ctx: TsgcHTTP3Context)
begin
if Ctx.Path = '/pets/42' then
Ctx.RespondJSON(200, '{"name":"Rex"}')
else
Ctx.Respond(404, 'Not found');
end;
FServer.Active := True;
end;
客户端和服务器在两侧共享同一套连接、流和数据报模型。 完整功能矩阵 →
许可证、支持渠道和更新节奏都和您已经拥有的一致。每个许可证都包含完整源代码、一年更新和免版税部署。
1 位开发者许可证。同一时间用于一台机器。
2 位开发者许可证。同一时间用于两台机器。
开发者人数不限。公司所有机器。
sgcQUIC 需要 sgcWebSockets Enterprise,您可以把它加入同一份订单。包含 QUIC 客户端和服务器、HTTP/3 客户端和服务器、QPACK、Alt-Svc 和 WebTransport,适用于 Delphi、C++ Builder 和 .NET。
查看价格和版本受到全球各地 Delphi、C++ Builder、Lazarus 和 .NET 开发者的信赖。
你们的 sgcWebSockets 库非常实用,而且易于设置。请继续保持!
sgcWebSockets 非常出色,你们的支持也是最棒的!
非常感谢你们的帮助和支持,我很喜欢你们的组件。
sgcQUIC 与 eSeGeCe 面向 Delphi、C++ Builder 和 .NET 的其他组件库共享同样的约定。它们提供完整源代码,并可免版税部署。
WebSocket、HTTP/2、MQTT、AMQP、WebRTC、AI 及 30+ API 集成。sgcQUIC 正是构建在这份 Enterprise 许可证之上。
基于 Bootstrap 5 和 htmx 的服务器端 HTML 和界面组件。通过同一个 HTTP/3 传输提供渲染好的界面。
面向 Delphi 和 C++ Builder 的 AI、LLM 和 MCP 组件。一个组件即可对接七家 LLM 提供商,另有 MCP、嵌入和语音。独立产品,随附 sgcWebSockets Core 运行时。
面向 Delphi 和 C++ Builder 的 MQTT、AMQP 0.9.1 和 1.0、Apache Kafka 与 STOMP 客户端组件。独立产品,随附 sgcWebSockets Core 运行时。
面向 Delphi 和 C++ Builder 的 OAuth2 客户端、JWT 客户端和 WebAuthn 支持。独立产品,随附 sgcWebSockets Core 运行时。
面向 Delphi 和 C++ Builder 的 HTTP 服务器、HTTP/2 客户端、gRPC 客户端以及 Google Cloud Pub/Sub、Calendar 和 FCM 客户端。独立产品,随附 sgcWebSockets Core 运行时。
面向 Delphi 和 C++ Builder 的 REST 服务器、OpenAPI 服务器和 OpenAPI 客户端组件。独立产品,随附 sgcWebSockets Core 运行时。
OpenAPI 3.x 解析器、原生 Pascal SDK 生成器、OpenAPI 服务器组件,以及 1,195+ 预构建云 SDK。
文档使用 XAdES、PAdES、CAdES 和 ASiC,代码使用 Authenticode、ClickOnce、NuGet 和 VSIX。
使用纯 Object Pascal 创建、编辑、查看、签名、涂黑并验证 PDF 文件,无需部署任何 DLL。单独许可销售。
面向 Delphi 和 C++ Builder 的 Windows Hello、指纹传感器和 Windows 生物特征框架。
更新后的 Indy TCP/IP 组件,为 Delphi 7 到 13 提供现代 TLS、IPv6 和 HTTP/2。