sgcQUIC Spare dir die Roundtrips. Natives QUIC.

TCP plus TLS braucht drei Roundtrips, bevor das erste Byte einer Antwort ankommt. QUIC fasst den Transport- und den Krypto-Handshake in einem zusammen, und eine wiederaufgenommene Verbindung kann schon 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 Basis der QUIC-Engine von OpenSSL 3.5.

Ein Add-on zu sgcWebSockets Enterprise. Preise ansehen →
  • RFC 9000, 9114, 9204
  • WebTransport (RFC 9220)
  • 0-RTT
  • Verbindungsmigration
  • Delphi
  • C++ Builder
  • .NET
  • 4Komponenten auf einer Palettenseite
  • 4RFCs: 9000, 9114, 9204 und 9220
  • 1Roundtrip vor den Daten, gegenüber drei bei TCP plus TLS
  • 0-RTTErste Anfrage im ersten Paket einer wiederaufgenommenen Sitzung
  • 3Sprachen: Delphi, C++ Builder und .NET
Warum QUIC

Dieselbe TLS-1.3-Sicherheit. Weniger Wege über die Leitung.

Der Transport-Handshake, der TLS-Handshake und die erste Anfrage kosten über TCP jeweils einen Roundtrip. QUIC erledigt alle drei in einem Austausch.

TCP + TLS 1.3 QUIC (HTTP/3) Client Server Client Server SYN SYN-ACK ACK ClientHello ServerHello, cert Finished GET /pets/42 200 OK 3 Umläufe vor den Daten Initial + Handshake + GET Handshake + 200 OK 1 Umlauf vor den Daten Bei einer fortgesetzten Sitzung 0-RTT: GET + Early Data Dieselbe TLS-1.3-Sicherheit. Weniger Wege über die Leitung.

TCP + TLS: drei Roundtrips

SYN, SYN-ACK und ACK öffnen den Socket. ClientHello, ServerHello und Finished richten TLS ein. Erst dann geht die erste Anfrage raus.

QUIC: ein Roundtrip

QUIC fasst den Transport- und den Krypto-Handshake in einem Austausch zusammen, sodass die Anfrage mit dem Handshake reist und die Antwort mit ihm zurückkommt.

Wiederaufgenommen: 0-RTT

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

Sieh es laufen

QUIC und HTTP/3 aus Delphi, in wenigen Minuten.

Ein vertonter Schnellstart mit Untertiteln: ein HTTP/3-Server und -Client, dann eine rohe QUIC-Verbindung mit mehreren Streams. Nichts wird geladen, bevor du auf Play drückst.

sgcQUIC-Schnellstart

Starte einen HTTP/3-Server und -Client und öffne eine rohe QUIC-Verbindung aus Delphi.

  1. Der HTTP/3-ClientErzeuge ihn, rufe Get mit einer URL auf und lies die Antwort. Die Verben, Statuscodes und Header kennst du bereits.
  2. Synchron oder asynchronBehandle OnResponse und OnError, rufe dann GetAsync auf, und die Anfrage läuft, ohne dein Formular zu blockieren.
  3. Der HTTP/3-ServerErzeuge einen TsgcHTTP3Server, gib ihm einen Port, ein Zertifikat und einen privaten Schlüssel und behandle OnH3Request.
  4. Rohes QUIC und viele StreamsTsgcQUICClient allein, mit EnableMultiStream für unabhängige Streams, jeder geordnet und flusskontrolliert.
  5. Bevor du ausrollstQUIC läuft über UDP, daher blockiert eine Firewall, die nur TCP 443 öffnet, es.
Vier Komponenten

Rohes 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.

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 →

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.

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

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

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.

Auf Standards gebaut

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.

RFC 9000

Das QUIC-Transportprotokoll: Streams, Datagramme, Flusskontrolle und Verbindungsmigration.

RFC 9114

HTTP/3, dieselbe Anfrage- und Antwortsemantik wie HTTP/2, transportiert über QUIC-Streams.

RFC 9204

QPACK-Header-Kompression, konzipiert für die außer der Reihe erfolgende Zustellung von QUIC-Streams.

RFC 9220

WebTransport über HTTP/3, bidirektionale Streams und Datagramme über eine einzige Extended-CONNECT-Anfrage.

Der Code

Eine Anfrage über HTTP/3.

Dieselbe Form wie bei jedem anderen sgcWebSockets-HTTP-Client: Eigenschaften setzen, ein Ereignis behandeln, eine Methode aufrufen. Die Serverseite besteht aus einer Komponente und einem Handler.

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. Ein Port, ein Zertifikat, zwei ProtokolleTsgcHTTP3Server spricht HTTP/3 über QUIC auf einem UDP-Port. Kombiniere ihn mit einem bestehenden HTTP/2-Server, und ältere Clients arbeiten weiter über TCP, mit demselben Zertifikat, das dein HTTP/2-Server bereits lädt.
  2. Alt-Svc, damit Upgrades automatisch ablaufenEine normale HTTP/2-Antwort trägt einen Alt-Svc: h3=":443"-Header. Clients, die ihn verstehen, öffnen bei der nächsten Anfrage QUIC, ohne Weiterleitung und ohne zweite Domain.
  3. WebTransport, auf demselben PortEine 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.

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

Die HTTP/3-Server-Komponente

Teil von sgcWebSockets

Ein Add-on zu sgcWebSockets Enterprise.

Die Lizenz, der Support-Kanal und der Update-Rhythmus sind die, die du bereits hast. Jede Lizenz enthält den vollständigen Quellcode, ein Jahr Updates und lizenzgebührenfreie Weitergabe.

Single

Lizenz für 1 Entwickler. Nutzung auf einem Rechner gleichzeitig.

€149

Team

Lizenzen für 2 Entwickler. Nutzung auf zwei Rechnern gleichzeitig.

€249

Site

Unbegrenzte Entwicklerzahl. Alle Rechner im Unternehmen.

€399

sgcQUIC setzt sgcWebSockets Enterprise voraus, das du derselben Bestellung hinzufügen kannst. QUIC-Client und -Server, HTTP/3-Client und -Server, QPACK, Alt-Svc und WebTransport, für Delphi, C++ Builder und .NET.

Preise und Editionen ansehen
Referenzen

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

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.

Mehr von eSeGeCe

Weitere Produkte von eSeGeCe

sgcQUIC teilt seine Konventionen mit den anderen eSeGeCe-Komponentenbibliotheken für Delphi, C++ Builder und .NET. Sie werden mit vollständigem Quellcode geliefert und lassen sich lizenzgebührenfrei weitergeben.

sgcWebSockets

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

sgcHTML

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

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.

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.

sgcAuth

OAuth2-Client, JWT-Client und WebAuthn-Unterstützung für Delphi und C++ Builder. Eigenständig, mit gebündelter sgcWebSockets-Core-Runtime.

sgcHTTP

HTTP-Server, 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.

sgcREST

REST-Server-, OpenAPI-Server- und OpenAPI-Client-Komponenten für Delphi und C++ Builder. Eigenständig, mit gebündelter sgcWebSockets-Core-Runtime.

sgcOpenAPI

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

sgcSign

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

sgcPDF

PDF-Dateien erstellen, bearbeiten, ansehen, signieren, schwärzen und validieren in reinem Object Pascal, ganz ohne DLL. Wird eigenständig lizenziert.

sgcBiometrics

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

sgcIndy

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

Neues aus dem Blog

Alle Beiträge ansehen →

Du siehst gerade die Ansicht sgcQUIC von eSeGeCe.

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