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.
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 →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.
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 voegt de transport- en de crypto-handshake samen tot één uitwisseling, zodat het request met de handshake meereist en de respons er mee terugkomt.
Een client die eerder verbonden is, kan zijn eerste request in het allereerste pakket versturen, voordat de handshake klaar is.
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.
Draai een HTTP/3-server en -client en open een pure QUIC-verbinding vanuit Delphi.
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.
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.
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.
Een client die eerder verbonden is, kan zijn eerste request in het allereerste pakket versturen, voordat de handshake klaar is.
Een Connection ID identificeert de sessie, niet het IP-adres, zodat een telefoon die van wifi naar mobiel overschakelt zijn streams open houdt.
Bidirectionele streams en onbetrouwbare datagrams via één Extended CONNECT-request, voor browserclients die WebTransport spreken.
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.
sgcQUIC is geen gedeeltelijke implementatie. Transport, framing, headercompressie en de WebTransport-extensie zijn allemaal gedekt, bovenop de native OpenSSL 3.5 QUIC-engine.
Het QUIC-transportprotocol: streams, datagrams, flow control en connectiemigratie.
HTTP/3, dezelfde request- en response-semantiek als HTTP/2, vervoerd over QUIC-streams.
QPACK-headercompressie, ontworpen voor de out-of-order streamaflevering van QUIC.
WebTransport over HTTP/3, bidirectionele streams en datagrams op één Extended CONNECT-request.
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;
De client en de server delen aan beide kanten hetzelfde verbindings-, stream- en datagrammodel. De volledige functiematrix →
De licentie, het supportkanaal en het updateritme zijn die je al hebt. Elke licentie bevat de volledige broncode, één jaar updates en royaltyvrije implementatie.
1 ontwikkelaarslicentie. Gebruik op één machine tegelijk.
2 ontwikkelaarslicenties. Gebruik op twee machines tegelijk.
Onbeperkt aantal ontwikkelaars. Alle bedrijfsmachines.
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 editiesVertrouwd 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!
sgcWebSockets is geweldig en jullie support is de beste!
Heel erg bedankt voor jullie hulp en ondersteuning, ik ben dol op jullie componenten.
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.
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.
WebSocket, HTTP/2, MQTT, AMQP, WebRTC, AI en 30+ API-integraties. De Enterprise-licentie waarop sgcQUIC voortbouwt.
Server-side HTML- en UI-componenten op Bootstrap 5 en htmx. Lever de gerenderde UI over hetzelfde HTTP/3-transport.
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.
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.
OAuth2-client, JWT-client en WebAuthn-ondersteuning voor Delphi en C++ Builder. Standalone, met de sgcWebSockets Core runtime inbegrepen.
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.
REST-server, OpenAPI-server en OpenAPI-clientcomponenten voor Delphi en C++ Builder. Standalone, met de sgcWebSockets Core runtime inbegrepen.
OpenAPI 3.x-parser, native Pascal-SDK-generator, OpenAPI-servercomponent en 1.195+ kant-en-klare cloud-SDK's.
XAdES, PAdES, CAdES en ASiC voor documenten, Authenticode, ClickOnce, NuGet en VSIX voor code.
PDF-bestanden maken, bewerken, bekijken, ondertekenen, redigeren en valideren in pure Object Pascal, zonder DLL. Wordt los gelicentieerd.
Windows Hello, vingerafdruksensoren en het Windows Biometric Framework voor Delphi en C++ Builder.
Bijgewerkte Indy TCP/IP-componenten met moderne TLS, IPv6 en HTTP/2 voor Delphi 7 tot en met 13.