sgcQUIC Geen round trips meer. Native QUIC.

TCP plus TLS heeft drie round trips nodig voordat de eerste byte van een respons aankomt. QUIC voegt de transport- en de crypto-handshake samen tot één, en een hervatte verbinding kan al data versturen in het allereerste pakket. sgcQUIC geeft Delphi, C++ Builder en .NET een native QUIC-transport en daarbovenop een HTTP/3-client en -server, op de OpenSSL 3.5 QUIC-engine.

Een add-on voor sgcWebSockets Enterprise. Bekijk de prijzen →
  • RFC 9000, 9114, 9204
  • WebTransport (RFC 9220)
  • 0-RTT
  • Connectiemigratie
  • Delphi
  • C++ Builder
  • .NET
  • 4Componenten op één paletpagina
  • 4RFC's: 9000, 9114, 9204 en 9220
  • 1Round trip voor de data, tegenover drie bij TCP plus TLS
  • 0-RTTEerste request in het eerste pakket van een hervatte sessie
  • 3Talen: Delphi, C++ Builder en .NET
Waarom QUIC

Dezelfde TLS 1.3-beveiliging. Minder round trips over de lijn.

De transport-handshake, de TLS-handshake en het eerste request kosten over TCP elk een round trip. QUIC verwerkt ze alle drie in één uitwisseling.

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 round trips voor de data Initial + Handshake + GET Handshake + 200 OK 1 round trip voor de data Bij een hervatte sessie 0-RTT: GET + early data Dezelfde TLS 1.3-beveiliging. Minder round trips over de lijn.

TCP + TLS: drie round trips

SYN, SYN-ACK en ACK openen de socket. ClientHello, ServerHello en Finished zetten TLS op. Pas daarna gaat het eerste request de deur uit.

QUIC: één round trip

QUIC voegt de transport- en de crypto-handshake samen tot één uitwisseling, zodat het request met de handshake meereist en de respons er mee terugkomt.

Hervat: 0-RTT

Een client die eerder verbonden is, kan zijn eerste request in het allereerste pakket versturen, voordat de handshake klaar is.

Zie het draaien

QUIC en HTTP/3 vanuit Delphi, in een paar minuten.

Een ingesproken quickstart met ondertiteling: een HTTP/3-server en -client, daarna een pure QUIC-verbinding met meerdere streams. Er wordt niets gedownload tot je op afspelen drukt.

sgcQUIC-quickstart

Draai een HTTP/3-server en -client en open een pure QUIC-verbinding vanuit Delphi.

  1. De HTTP/3-clientMaak hem aan, roep Get aan met een URL en lees de respons. De methoden, statuscodes en headers zijn de bekende.
  2. Synchroon of asynchroonHandel OnResponse en OnError af, roep dan GetAsync aan, en het request draait zonder je formulier te blokkeren.
  3. De HTTP/3-serverMaak een TsgcHTTP3Server aan, geef hem een poort, een certificaat en een private key, en handel OnH3Request af.
  4. Pure QUIC en veel streamsTsgcQUICClient op zichzelf, met EnableMultiStream voor onafhankelijke streams, elk geordend en met flow control.
  5. Voordat je uitroltQUIC reist over UDP, dus een firewall die alleen TCP 443 opent, blokkeert het.
Vier componenten

Pure QUIC, of HTTP/3 erbovenop.

Gebruik TsgcQUICClient en TsgcQUICServer voor een kaal transport met je eigen framing, of grijp direct naar TsgcHTTP3Client en TsgcHTTP3Server wanneer het wire-formaat HTTP is.

QUIC-client & -server

TsgcQUICClient en TsgcQUICServer spreken pure QUIC: meerdere onafhankelijke streams op één versleutelde verbinding, onbetrouwbare datagrams en connectiemigratie wanneer het IP-adres van de client midden in een sessie verandert.

Bekijk de QUIC-componenten →

HTTP/3-client & -server

TsgcHTTP3Client en TsgcHTTP3Server leggen HTTP-semantiek erbovenop: request- en response-headers gecomprimeerd met QPACK, Alt-Svc-discovery, en dezelfde methoden en statuscodes die je HTTP/2-code al gebruikt.

Bekijk de HTTP/3-componenten →

0-RTT-sessiehervatting

Een client die eerder verbonden is, kan zijn eerste request in het allereerste pakket versturen, voordat de handshake klaar is.

Connectiemigratie

Een Connection ID identificeert de sessie, niet het IP-adres, zodat een telefoon die van wifi naar mobiel overschakelt zijn streams open houdt.

WebTransport

Bidirectionele streams en onbetrouwbare datagrams via één Extended CONNECT-request, voor browserclients die WebTransport spreken.

Native QUIC, geen externe afhankelijkheid

De QUIC- en TLS 1.3-handshake draaien op de eigen QUIC-engine van OpenSSL 3.5. Er is geen aparte QUIC-bibliotheek om te bouwen of mee te leveren.

Gebouwd op de standaarden

QUIC en HTTP/3, tot op de letter van de RFC's.

sgcQUIC is geen gedeeltelijke implementatie. Transport, framing, headercompressie en de WebTransport-extensie zijn allemaal gedekt, bovenop de native OpenSSL 3.5 QUIC-engine.

RFC 9000

Het QUIC-transportprotocol: streams, datagrams, flow control en connectiemigratie.

RFC 9114

HTTP/3, dezelfde request- en response-semantiek als HTTP/2, vervoerd over QUIC-streams.

RFC 9204

QPACK-headercompressie, ontworpen voor de out-of-order streamaflevering van QUIC.

RFC 9220

WebTransport over HTTP/3, bidirectionele streams en datagrams op één Extended CONNECT-request.

De code

Eén request over HTTP/3.

Dezelfde vorm als elke andere sgcWebSockets HTTP-client: stel eigenschappen in, handel een event af, roep een methode aan. Aan de serverkant is het één component en één 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. Eén poort, één certificaat, twee protocollenTsgcHTTP3Server spreekt HTTP/3 over QUIC op een UDP-poort. Combineer hem met een bestaande HTTP/2-server en legacy clients blijven via TCP werken, met hetzelfde certificaat dat je HTTP/2-server al laadt.
  2. Alt-Svc, dus upgrades gaan automatischEen gewone HTTP/2-respons bevat een Alt-Svc: h3=":443"-header. Clients die dit begrijpen openen QUIC bij het volgende request, zonder redirect of tweede domein.
  3. WebTransport, op dezelfde poortEen Extended CONNECT-request upgradet een stream naar WebTransport, zodat een browserclient bidirectionele streams en datagrams krijgt naast gewone HTTP/3-requests.

De client en de server delen aan beide kanten hetzelfde verbindings-, stream- en datagrammodel. De volledige functiematrix →

De HTTP/3-servercomponent

Onderdeel van sgcWebSockets

Een add-on voor sgcWebSockets Enterprise.

De licentie, het supportkanaal en het updateritme zijn die je al hebt. Elke licentie bevat de volledige broncode, één jaar updates en royaltyvrije implementatie.

Single

1 ontwikkelaarslicentie. Gebruik op één machine tegelijk.

€149

Team

2 ontwikkelaarslicenties. Gebruik op twee machines tegelijk.

€249

Site

Onbeperkt aantal ontwikkelaars. Alle bedrijfsmachines.

€399

sgcQUIC vereist sgcWebSockets Enterprise, dat je aan dezelfde bestelling kunt toevoegen. QUIC-client en -server, HTTP/3-client en -server, QPACK, Alt-Svc en WebTransport, voor Delphi, C++ Builder en .NET.

Bekijk de prijzen en edities
Referenties

Wat ontwikkelaars zeggen

Vertrouwd door Delphi-, C++ Builder-, Lazarus- en .NET-ontwikkelaars over de hele wereld.

Jullie sgcWebSockets-bibliotheek is erg handig en eenvoudig op te zetten. Ga zo door!
Simone Moretti Delphi-ontwikkelaar
sgcWebSockets is geweldig en jullie support is de beste!
Christian Meyer Oprichter & CTO
Heel erg bedankt voor jullie hulp en ondersteuning, ik ben dol op jullie componenten.
Mark Steinfeld CTO

Lever QUIC en HTTP/3 zonder je IDE te verlaten.

Pure QUIC-transport, HTTP/3-client en -server en WebTransport, op de OpenSSL 3.5 QUIC-engine. Volledige broncode, royaltyvrije implementatie, als add-on voor sgcWebSockets Enterprise.

Meer van eSeGeCe

Andere producten van eSeGeCe

sgcQUIC deelt conventies met de andere eSeGeCe-componentbibliotheken voor Delphi, C++ Builder en .NET. Ze worden geleverd met volledige broncode en zijn royaltyvrij te implementeren.

sgcWebSockets

WebSocket, HTTP/2, MQTT, AMQP, WebRTC, AI en 30+ API-integraties. De Enterprise-licentie waarop sgcQUIC voortbouwt.

sgcHTML

Server-side HTML- en UI-componenten op Bootstrap 5 en htmx. Lever de gerenderde UI over hetzelfde HTTP/3-transport.

sgcAI

AI-, LLM- en MCP-componenten voor Delphi en C++ Builder. Zeven LLM-providers achter één component, plus MCP, embeddings en spraak. Standalone, met de sgcWebSockets Core runtime inbegrepen.

sgcMQ

Clientcomponenten voor MQTT, AMQP 0.9.1 en 1.0, Apache Kafka en STOMP voor Delphi en C++ Builder. Standalone, met de sgcWebSockets Core runtime inbegrepen.

sgcAuth

OAuth2-client, JWT-client en WebAuthn-ondersteuning voor Delphi en C++ Builder. Standalone, met de sgcWebSockets Core runtime inbegrepen.

sgcHTTP

HTTP-server, HTTP/2-client, gRPC-client en clients voor Google Cloud Pub/Sub, Calendar en FCM, voor Delphi en C++ Builder. Standalone, met de sgcWebSockets Core runtime inbegrepen.

sgcREST

REST-server, OpenAPI-server en OpenAPI-clientcomponenten voor Delphi en C++ Builder. Standalone, met de sgcWebSockets Core runtime inbegrepen.

sgcOpenAPI

OpenAPI 3.x-parser, native Pascal-SDK-generator, OpenAPI-servercomponent en 1.195+ kant-en-klare cloud-SDK's.

sgcSign

XAdES, PAdES, CAdES en ASiC voor documenten, Authenticode, ClickOnce, NuGet en VSIX voor code.

sgcPDF

PDF-bestanden maken, bewerken, bekijken, ondertekenen, redigeren en valideren in pure Object Pascal, zonder DLL. Wordt los gelicentieerd.

sgcBiometrics

Windows Hello, vingerafdruksensoren en het Windows Biometric Framework voor Delphi en C++ Builder.

sgcIndy

Bijgewerkte Indy TCP/IP-componenten met moderne TLS, IPv6 en HTTP/2 voor Delphi 7 tot en met 13.

Laatste blogberichten

Bekijk alle berichten →

Je bekijkt nu de sgcQUIC-weergave van eSeGeCe.

Toon me een andere kant →
Niet-goed-geld-terug-garantie van 30 dagenNiet tevreden? Vraag binnen 30 dagen na aankoop een volledige terugbetaling aan. Bekijk het terugbetalingsbeleid