eSeGeCe — Enterprise-Kommunikationskomponenten für Delphi & .NET
IM FOKUS · sgcQUIC

Überspringe die Umläufe

TCP plus TLS braucht drei Umläufe, bevor das erste Byte einer Antwort ankommt. QUIC vereint den Transport- und den Krypto-Handshake in einem einzigen Schritt, und eine wiederaufgenommene Verbindung kann bereits im allerersten Paket Daten senden. sgcQUIC gibt Delphi, C++ Builder und .NET einen nativen QUIC-Transport sowie einen darauf aufbauenden HTTP/3-Client und -Server, auf der OpenSSL-3.5-QUIC-Engine.

  • RFC 9000, 9114, 9204
  • WebTransport (RFC 9220)
  • 0-RTT & Verbindungsmigration
  • Delphi · C++ Builder · .NET

QUIC und HTTP/3, buchstabengetreu nach den RFCs

sgcQUIC ist keine Teilimplementierung. Transport, Framing, Header-Kompression und die WebTransport-Erweiterung sind vollständig abgedeckt, aufgebaut auf der nativen OpenSSL-3.5-QUIC-Engine.

4 Komponenten TsgcQUICClient, TsgcQUICServer, TsgcHTTP3Client und TsgcHTTP3Server, eine Palettenseite.
9000 RFC 9000 Das QUIC-Transportprotokoll: Streams, Datagramme, Flusskontrolle und Verbindungsmigration.
9114 RFC 9114 HTTP/3, dieselbe Anfrage- und Antwortsemantik wie HTTP/2, transportiert über QUIC-Streams.
9204 RFC 9204 QPACK-Header-Kompression, konzipiert für die außer der Reihe erfolgende Zustellung von QUIC-Streams.
9220 RFC 9220 WebTransport über HTTP/3, bidirektionale Streams und Datagramme über eine einzige Extended-CONNECT-Anfrage.
sgcQUIC

Ein reiner QUIC-Transport sowie ein HTTP/3-Client und -Server für Delphi, C++ Builder und .NET. Ein Add-on zu sgcWebSockets Enterprise, auf derselben nativen OpenSSL-3.5-QUIC-Engine. Vollständiger Quellcode, royaltyfreie Bereitstellung.

Reines QUIC, oder HTTP/3 obendrauf

Verwende TsgcQUICClient und TsgcQUICServer für einen reinen Transport mit eigenem Framing, oder greife direkt zu TsgcHTTP3Client und TsgcHTTP3Server, wenn das Wire-Format HTTP ist.

RFC 9000

QUIC-Client & -Server

TsgcQUICClient und TsgcQUICServer sprechen reines QUIC: mehrere unabhängige Streams auf einer verschlüsselten Verbindung, unzuverlässige Datagramme und Verbindungsmigration, wenn sich die IP-Adresse des Clients mitten in der Sitzung ändert.

QUIC-Komponenten ansehen →
RFC 9114

HTTP/3-Client & -Server

TsgcHTTP3Client und TsgcHTTP3Server legen HTTP-Semantik obendrauf: Anfrage- und Antwort-Header komprimiert mit QPACK, Alt-Svc-Discovery und dieselben Methoden und Statuscodes, die dein HTTP/2-Code bereits verwendet.

HTTP/3-Komponenten ansehen →
0-RTT

Sitzungswiederaufnahme

Ein Client, der sich zuvor schon einmal verbunden hat, kann seine erste Anfrage bereits im allerersten Paket senden, noch bevor der Handshake abgeschlossen ist.

Migration

Verbindungsmigration

Eine Connection-ID identifiziert die Sitzung, nicht die IP-Adresse, sodass ein Smartphone beim Wechsel von WLAN zu Mobilfunk seine Streams offen hält.

WebTransport

RFC 9220

Bidirektionale Streams und unzuverlässige Datagramme über eine einzige Extended-CONNECT-Anfrage, für Browser-Clients, die WebTransport sprechen.

Ausführliche Anleitungen zu den QUIC- und HTTP/3-Komponenten:

Eine Anfrage über HTTP/3

Dieselbe Form wie jeder andere sgcWebSockets-HTTP-Client: Eigenschaften setzen, ein Ereignis behandeln, eine Methode aufrufen.

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;

Client und Server teilen sich auf beiden Seiten dasselbe Verbindungs-, Stream- und Datagramm-Modell. Die vollständige Funktionsmatrix →

Ein Port, ein Zertifikat, zwei Protokolle

TsgcHTTP3Server spricht HTTP/3 über QUIC auf einem UDP-Port, während eine Kopplung im Stil von TsgcHTTP3ServerBridge mit einem bestehenden HTTP/2-Server dafür sorgt, dass ältere Clients weiter über TCP funktionieren. Kündige Alt-Svc an, und moderne Clients steigen von selbst um.

HTTP3Server.pas
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;

Was dir das bringt

Eine einzige Delphi-Komponente, die QUIC terminiert, h3 aushandelt und jede Anfrage an einen Handler weiterleitet, mit demselben Zertifikat, das dein HTTP/2-Server bereits lädt.

Alt-Svc, damit Upgrades automatisch ablaufen

Eine normale HTTP/2-Antwort trägt einen Alt-Svc: h3=":443"-Header. Clients, die ihn verstehen, öffnen beim nächsten Request QUIC, ohne Redirect und ohne zweite Domain.

WebTransport, auf demselben Port

Eine Extended-CONNECT-Anfrage hebt einen Stream auf WebTransport-Niveau, sodass ein Browser-Client bidirektionale Streams und Datagramme neben gewöhnlichen HTTP/3-Anfragen erhält.

Natives QUIC, keine externe Abhängigkeit

Der QUIC- und TLS-1.3-Handshake läuft auf der eigenen QUIC-Engine von OpenSSL 3.5. Es gibt keine separate QUIC-Bibliothek zu bauen oder einzubinden.

OpenSSL 3.5 TLS 1.3 Alt-Svc QPACK WebTransport

Die HTTP/3-Server-Komponente →

sgcQUIC ist ein Add-on zu sgcWebSockets Enterprise, daher gelten dieselbe Lizenz, derselbe Support-Kanal und derselbe Update-Rhythmus, die du bereits hast.

Neun Bibliotheken, ein Werkzeugkasten

sgcQUIC ist eine von neun eSeGeCe-Komponentenbibliotheken für Delphi, C++ Builder und .NET. Sie teilen dieselben Konventionen, werden mit vollständigem Quellcode ausgeliefert und lassen sich royaltyfrei verteilen.

sgcQUIC

Reiner QUIC-Transport und ein HTTP/3-Client und -Server, mit WebTransport. Ein Add-on zu sgcWebSockets Enterprise.

Mehr erfahren →

sgcWebSockets

WebSocket, HTTP/2, MQTT, AMQP, WebRTC, KI und 30+ API-Integrationen. Die Enterprise-Lizenz, auf der sgcQUIC aufbaut.

Mehr erfahren →

sgcHTML

Serverseitige HTML- und UI-Komponenten auf Bootstrap 5 und htmx. Liefere die gerenderte UI über denselben HTTP/3-Transport aus.

Mehr erfahren →

sgcAI

Komponenten für KI, LLM und MCP für Delphi und C++ Builder. Sieben LLM-Anbieter hinter einer einzigen Komponente, dazu MCP, Embeddings und Sprache. Eigenständig, die sgcWebSockets Core Runtime ist enthalten.

Mehr erfahren →

sgcMQ

Client-Komponenten für MQTT, AMQP 0.9.1 und 1.0, Apache Kafka und STOMP für Delphi und C++ Builder. Eigenständig, die sgcWebSockets Core Runtime ist enthalten.

Mehr erfahren →

sgcAuth

OAuth2-Client, JWT-Client und WebAuthn-Unterstützung für Delphi und C++ Builder. Melde dich bei jedem OAuth2-/OIDC-Anbieter an, stelle JWTs aus und verifiziere sie, und ergänze native Anwendungen um Passkey-Authentifizierung. Eigenständig, die sgcWebSockets Core Runtime ist enthalten.

Mehr erfahren →

sgcHTTP

HTTP/2-Client, gRPC-Client sowie Clients für Google Cloud Pub/Sub, Calendar und FCM für Delphi und C++ Builder. Eigenständig, die sgcWebSockets Core Runtime ist enthalten.

Mehr erfahren →

sgcREST

REST-Server-, OpenAPI-Server- und OpenAPI-Client-Komponenten für Delphi und C++ Builder. Veröffentliche REST-APIs aus einem OpenAPI-3.x-Vertrag, oder nutze jede über OpenAPI beschriebene API. Eigenständig, die sgcWebSockets Core Runtime ist enthalten.

Mehr erfahren →

sgcOpenAPI

OpenAPI-3.x-Parser, nativer Pascal-SDK-Generator, OpenAPI-Server-Komponente und 1.195+ vorgefertigte Cloud-SDKs.

Mehr erfahren →

sgcSign

XAdES, PAdES, CAdES und ASiC für Dokumente, Authenticode, ClickOnce, NuGet und VSIX für Code.

Mehr erfahren →

sgcBiometrics

Windows Hello, Fingerabdrucksensoren und das Windows Biometric Framework für Delphi und C++ Builder.

Mehr erfahren →

sgcIndy

Aktualisierte Indy-TCP/IP-Komponenten mit modernem TLS, IPv6 und HTTP/2 für Delphi 7 bis 13.

Mehr erfahren →

Preise und Editionen ansehen Kostenlose Testversion herunterladen

Was Entwickler sagen

Vertrauen von Delphi-, C++ Builder-, Lazarus- und .NET-Entwicklern weltweit.

Eure sgcWebSockets-Bibliothek ist sehr nützlich und einfach einzurichten. Macht weiter so!

Simone Moretti Delphi-Entwickler

sgcWebSockets ist großartig und euer Support ist der beste!

Christian Meyer Gründer & CTO

Vielen Dank für eure Hilfe und Unterstützung, ich liebe eure Komponenten.

Mark Steinfeld CTO

Neues aus dem Blog

Alle Beiträge ansehen →

Du siehst gerade die Ansicht QUIC von eSeGeCe.

Zeig mir eine andere Perspektive →
30 Tage Geld-zurück-GarantieNicht zufrieden? Fordern Sie innerhalb von 30 Tagen nach dem Kauf eine vollständige Rückerstattung an. Rückerstattungsrichtlinie ansehen

Liefere QUIC und HTTP/3 aus, ohne deine IDE zu verlassen

Reiner QUIC-Transport, HTTP/3-Client und -Server sowie WebTransport, auf der OpenSSL-3.5-QUIC-Engine. Vollständiger Quellcode, royaltyfreie Bereitstellung, als Add-on zu sgcWebSockets Enterprise.