sgcQUIC Salta i round trip. QUIC nativo.

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 →
  • RFC 9000, 9114, 9204
  • WebTransport (RFC 9220)
  • 0-RTT
  • Migrazione della connessione
  • Delphi
  • C++ Builder
  • .NET
  • 4Componenti in una sola pagina della palette
  • 4RFC: 9000, 9114, 9204 e 9220
  • 1Round trip prima dei dati, contro tre per TCP più TLS
  • 0-RTTPrima richiesta nel primo pacchetto di una sessione ripresa
  • 3Linguaggi: Delphi, C++ Builder e .NET
Perché QUIC

Stessa sicurezza TLS 1.3. Meno viaggi sulla rete.

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.

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 trip prima dei dati Initial + Handshake + GET Handshake + 200 OK 1 round trip prima dei dati In una sessione ripresa 0-RTT: GET + early data Stessa sicurezza TLS 1.3. Meno viaggi sulla rete.

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.

QUIC: un round trip

QUIC unisce trasporto e handshake crittografico in un unico scambio, così la richiesta viaggia con l'handshake e la risposta torna insieme a esso.

Ripresa: 0-RTT

Un client che si è già connesso in precedenza può inviare la sua prima richiesta nel primissimo pacchetto, prima che l'handshake sia terminato.

Guardalo in azione

QUIC e HTTP/3 da Delphi, in pochi minuti.

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.

Guida rapida di sgcQUIC

Avvia un server e un client HTTP/3 e apri una connessione QUIC pura da Delphi.

  1. Il client HTTP/3Crealo, chiama Get con un URL e leggi la risposta. I verbi, i codici di stato e le intestazioni sono quelli che già conosci.
  2. Sincrono o asincronoGestisci OnResponse e OnError, poi chiama GetAsync, e la richiesta viene eseguita senza bloccare il tuo form.
  3. Il server HTTP/3Crea un TsgcHTTP3Server, assegnagli una porta, un certificato e una chiave privata, e gestisci OnH3Request.
  4. QUIC puro e molti streamTsgcQUICClient da solo, con EnableMultiStream per stream indipendenti, ciascuno ordinato e con controllo di flusso.
  5. Prima di distribuireQUIC viaggia su UDP, quindi un firewall che apre solo la porta TCP 443 lo blocca.
Quattro componenti

QUIC puro, oppure HTTP/3 sopra.

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.

Client e Server QUIC

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.

Vedi i componenti QUIC →

Client e Server HTTP/3

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.

Vedi i componenti HTTP/3 →

Ripresa di sessione 0-RTT

Un client che si è già connesso in precedenza può inviare la sua prima richiesta nel primissimo pacchetto, prima che l'handshake sia terminato.

Migrazione della connessione

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.

WebTransport

Stream bidirezionali e datagrammi non affidabili su un'unica richiesta Extended CONNECT, per i client browser che parlano WebTransport.

QUIC nativo, nessuna dipendenza esterna

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.

Costruito sugli standard

QUIC e HTTP/3, alla lettera delle RFC.

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.

RFC 9000

Il protocollo di trasporto QUIC: stream, datagrammi, controllo di flusso e migrazione della connessione.

RFC 9114

HTTP/3, la stessa semantica di richiesta e risposta di HTTP/2, trasportata su stream QUIC.

RFC 9204

Compressione delle intestazioni QPACK, progettata per la consegna fuori ordine degli stream di QUIC.

RFC 9220

WebTransport su HTTP/3, stream bidirezionali e datagrammi su un'unica richiesta Extended CONNECT.

Il codice

Una richiesta su HTTP/3.

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;
  1. Una porta, un certificato, due protocolliTsgcHTTP3Server parla HTTP/3 su QUIC su una porta UDP. Affiancalo a un server HTTP/2 esistente e i client legacy continuano a funzionare su TCP, con lo stesso certificato che il tuo server HTTP/2 già carica.
  2. Alt-Svc, così gli aggiornamenti sono automaticiUna normale risposta HTTP/2 include un'intestazione Alt-Svc: h3=":443". I client che la comprendono aprono QUIC alla richiesta successiva, senza un reindirizzamento né un secondo dominio.
  3. WebTransport, sulla stessa portaUna richiesta Extended CONNECT aggiorna uno stream a WebTransport, offrendo a un client browser stream bidirezionali e datagrammi accanto alle normali richieste HTTP/3.

Il client e il server condividono lo stesso modello di connessione, stream e datagramma su entrambi i lati. La matrice completa delle funzionalità →

Il componente server HTTP/3

Parte di sgcWebSockets

Un componente aggiuntivo di sgcWebSockets Enterprise.

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.

Single

1 licenza sviluppatore. Uso su una macchina alla volta.

€149

Team

2 licenze sviluppatore. Uso su due macchine alla volta.

€249

Site

Sviluppatori illimitati. Tutte le macchine aziendali.

€399

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 edizioni
Testimonianze

Cosa dicono gli sviluppatori

Scelta da sviluppatori Delphi, C++ Builder, Lazarus e .NET in tutto il mondo.

La vostra libreria sgcWebSockets è molto utile e semplice da configurare. Continuate così!
Simone Moretti Sviluppatore Delphi
sgcWebSockets è straordinario e il vostro supporto è il migliore!
Christian Meyer Fondatore e CTO
Grazie mille per il vostro aiuto e supporto, adoro i vostri componenti.
Mark Steinfeld CTO

Distribuisci QUIC e HTTP/3 senza uscire dal tuo IDE.

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.

Altro da eSeGeCe

Altri prodotti di eSeGeCe

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.

sgcWebSockets

WebSocket, HTTP/2, MQTT, AMQP, WebRTC, IA e oltre 30 integrazioni API. La licenza Enterprise su cui si basa sgcQUIC.

sgcHTML

Componenti HTML e UI lato server su Bootstrap 5 e htmx. Servi la UI renderizzata sullo stesso trasporto HTTP/3.

sgcAI

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.

sgcMQ

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.

sgcAuth

Client OAuth2, client JWT e supporto WebAuthn per Delphi e C++ Builder. Autonomo, con il runtime sgcWebSockets Core incluso.

sgcHTTP

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.

sgcREST

Componenti server REST, server OpenAPI e client OpenAPI per Delphi e C++ Builder. Autonomo, con il runtime di sgcWebSockets Core incluso.

sgcOpenAPI

Parser OpenAPI 3.x, generatore nativo di SDK Pascal, componente server OpenAPI e oltre 1.195 SDK cloud precompilati.

sgcSign

XAdES, PAdES, CAdES e ASiC per i documenti, Authenticode, ClickOnce, NuGet e VSIX per il codice.

sgcPDF

Crea, modifica, visualizza, firma, oscura e convalida file PDF in puro Object Pascal, senza alcuna DLL da distribuire. Con licenza a parte.

sgcBiometrics

Windows Hello, sensori di impronte digitali e il Windows Biometric Framework per Delphi e C++ Builder.

sgcIndy

Componenti Indy TCP/IP aggiornati con TLS moderno, IPv6 e HTTP/2, da Delphi 7 a 13.

Le ultime dal blog

Vedi tutti gli articoli →

Questa è la vista sgcQUIC di eSeGeCe.

Mostrami un altro punto di vista →
Garanzia soddisfatti o rimborsati di 30 giorniNon sei soddisfatto? Richiedi un rimborso completo entro 30 giorni dall'acquisto. Vedi la politica di rimborso