TCP + TLS: tre round trip
SYN, SYN-ACK e ACK aprono il socket. ClientHello, ServerHello e Finished impostano TLS. Solo dopo parte la prima richiesta.
TCP più TLS richiede tre round trip prima che arrivi il primo byte di una risposta. QUIC unisce l'handshake di trasporto e quello crittografico in uno solo, e una connessione ripresa può inviare dati già nel primissimo pacchetto. sgcQUIC offre a Delphi, C++ Builder e .NET un trasporto QUIC nativo e un client e un server HTTP/3 costruiti sopra di esso, sul motore QUIC di OpenSSL 3.5.
Un componente aggiuntivo a sgcWebSockets Enterprise. Vedi i prezzi →L'handshake di trasporto, l'handshake TLS e la prima richiesta costano ciascuno un round trip su TCP. QUIC li porta tutti e tre in un unico scambio.
SYN, SYN-ACK e ACK aprono il socket. ClientHello, ServerHello e Finished impostano TLS. Solo dopo parte la prima richiesta.
QUIC unisce trasporto e handshake crittografico in un unico scambio, così la richiesta viaggia con l'handshake e la risposta torna insieme a esso.
Un client che si è già connesso in precedenza può inviare la sua prima richiesta nel primissimo pacchetto, prima che l'handshake sia terminato.
Una guida rapida narrata e sottotitolata: un server e un client HTTP/3, poi una connessione QUIC pura con più stream. Non viene scaricato nulla finché non premi play.
Avvia un server e un client HTTP/3 e apri una connessione QUIC pura da Delphi.
Usa TsgcQUICClient e TsgcQUICServer per un trasporto nudo con il tuo framing personalizzato, oppure vai direttamente su TsgcHTTP3Client e TsgcHTTP3Server quando il formato sul wire è HTTP.
TsgcQUICClient e TsgcQUICServer parlano QUIC puro: più stream indipendenti su un'unica connessione crittografata, datagrammi non affidabili e migrazione della connessione quando l'indirizzo IP del client cambia durante la sessione.
TsgcHTTP3Client e TsgcHTTP3Server sovrappongono la semantica HTTP: intestazioni di richiesta e risposta compresse con QPACK, discovery Alt-Svc, e gli stessi metodi e codici di stato che il tuo codice HTTP/2 già usa.
Un client che si è già connesso in precedenza può inviare la sua prima richiesta nel primissimo pacchetto, prima che l'handshake sia terminato.
Un Connection ID identifica la sessione, non l'indirizzo IP, così un telefono che passa dal Wi-Fi alla rete cellulare mantiene aperti i suoi stream.
Stream bidirezionali e datagrammi non affidabili su un'unica richiesta Extended CONNECT, per i client browser che parlano WebTransport.
L'handshake QUIC e TLS 1.3 gira sul motore QUIC nativo di OpenSSL 3.5. Non c'è alcuna libreria QUIC separata da compilare o da includere come vendor.
sgcQUIC non è un'implementazione parziale. Trasporto, framing, compressione delle intestazioni ed estensione WebTransport sono tutti coperti, sopra il motore QUIC nativo di OpenSSL 3.5.
Il protocollo di trasporto QUIC: stream, datagrammi, controllo di flusso e migrazione della connessione.
HTTP/3, la stessa semantica di richiesta e risposta di HTTP/2, trasportata su stream QUIC.
Compressione delle intestazioni QPACK, progettata per la consegna fuori ordine degli stream di QUIC.
WebTransport su HTTP/3, stream bidirezionali e datagrammi su un'unica richiesta Extended CONNECT.
La stessa struttura di qualsiasi altro client HTTP di sgcWebSockets: imposti le proprietà, gestisci un evento, chiami un metodo. Il lato server è un componente e un gestore.
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;
Il client e il server condividono lo stesso modello di connessione, stream e datagramma su entrambi i lati. La matrice completa delle funzionalità →
La licenza, il canale di supporto e la cadenza degli aggiornamenti sono quelli che hai già. Ogni licenza include il codice sorgente completo, un anno di aggiornamenti e distribuzione senza royalty.
1 licenza sviluppatore. Uso su una macchina alla volta.
2 licenze sviluppatore. Uso su due macchine alla volta.
Sviluppatori illimitati. Tutte le macchine aziendali.
sgcQUIC richiede sgcWebSockets Enterprise, che puoi aggiungere allo stesso ordine. Client e server QUIC, client e server HTTP/3, QPACK, Alt-Svc e WebTransport, per Delphi, C++ Builder e .NET.
Vedi prezzi ed edizioniScelta da sviluppatori Delphi, C++ Builder, Lazarus e .NET in tutto il mondo.
La vostra libreria sgcWebSockets è molto utile e semplice da configurare. Continuate così!
sgcWebSockets è straordinario e il vostro supporto è il migliore!
Grazie mille per il vostro aiuto e supporto, adoro i vostri componenti.
Trasporto QUIC puro, client e server HTTP/3, e WebTransport, sul motore QUIC di OpenSSL 3.5. Sorgente completo, distribuzione senza royalty, come componente aggiuntivo a sgcWebSockets Enterprise.
PanoramicaMatrice delle funzionalitàClient QUICServer HTTP/3
sgcQUIC condivide le convenzioni con le altre librerie di componenti eSeGeCe per Delphi, C++ Builder e .NET. Includono il sorgente completo e si distribuiscono senza royalty.
WebSocket, HTTP/2, MQTT, AMQP, WebRTC, IA e oltre 30 integrazioni API. La licenza Enterprise su cui si basa sgcQUIC.
Componenti HTML e UI lato server su Bootstrap 5 e htmx. Servi la UI renderizzata sullo stesso trasporto HTTP/3.
Componenti AI, LLM e MCP per Delphi e C++ Builder. Sette provider di LLM dietro un solo componente, più MCP, embeddings e voce. Autonomo, il runtime sgcWebSockets Core è incluso.
Componenti client MQTT, AMQP 0.9.1 e 1.0, Apache Kafka e STOMP per Delphi e C++ Builder. Autonomo, il runtime sgcWebSockets Core è incluso.
Client OAuth2, client JWT e supporto WebAuthn per Delphi e C++ Builder. Autonomo, con il runtime sgcWebSockets Core incluso.
Server HTTP, client HTTP/2, client gRPC e client Google Cloud Pub/Sub, Calendar e FCM per Delphi e C++ Builder. Autonomo, il runtime sgcWebSockets Core è incluso.
Componenti server REST, server OpenAPI e client OpenAPI per Delphi e C++ Builder. Autonomo, con il runtime di sgcWebSockets Core incluso.
Parser OpenAPI 3.x, generatore nativo di SDK Pascal, componente server OpenAPI e oltre 1.195 SDK cloud precompilati.
XAdES, PAdES, CAdES e ASiC per i documenti, Authenticode, ClickOnce, NuGet e VSIX per il codice.
Crea, modifica, visualizza, firma, oscura e convalida file PDF in puro Object Pascal, senza alcuna DLL da distribuire. Con licenza a parte.
Windows Hello, sensori di impronte digitali e il Windows Biometric Framework per Delphi e C++ Builder.
Componenti Indy TCP/IP aggiornati con TLS moderno, IPv6 e HTTP/2, da Delphi 7 a 13.