eSeGeCe — Componenti di comunicazione enterprise per Delphi e .NET
IN EVIDENZA · sgcQUIC

Salta i round trip

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.

  • RFC 9000, 9114, 9204
  • WebTransport (RFC 9220)
  • 0-RTT e migrazione della connessione
  • Delphi · C++ Builder · .NET

QUIC e HTTP/3, alla lettera degli 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.

4 Componenti TsgcQUICClient, TsgcQUICServer, TsgcHTTP3Client e TsgcHTTP3Server, un'unica pagina di palette.
9000 RFC 9000 Il protocollo di trasporto QUIC: stream, datagrammi, controllo di flusso e migrazione della connessione.
9114 RFC 9114 HTTP/3, la stessa semantica di richiesta e risposta di HTTP/2, trasportata su stream QUIC.
9204 RFC 9204 Compressione delle intestazioni QPACK, progettata per la consegna fuori ordine degli stream di QUIC.
9220 RFC 9220 WebTransport su HTTP/3, stream bidirezionali e datagrammi su un'unica richiesta Extended CONNECT.
sgcQUIC

Un trasporto QUIC puro e un client e un server HTTP/3 per Delphi, C++ Builder e .NET. Un componente aggiuntivo a sgcWebSockets Enterprise, sullo stesso motore QUIC nativo di OpenSSL 3.5. Sorgente completo, distribuzione senza royalty.

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.

RFC 9000

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 →
RFC 9114

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 →
0-RTT

Ripresa della sessione

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

Migrazione

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

RFC 9220

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

Guide pratiche per i componenti QUIC e HTTP/3:

Una richiesta su HTTP/3

La stessa forma di qualsiasi altro client HTTP di sgcWebSockets: imposta le proprietà, gestisci un evento, chiama un metodo.

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;

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

Una porta, un certificato, due protocolli

TsgcHTTP3Server parla HTTP/3 su QUIC su una porta UDP, mentre l'abbinamento in stile TsgcHTTP3ServerBridge con un server HTTP/2 esistente permette ai client legacy di continuare a funzionare su TCP. Annuncia Alt-Svc e i client moderni si aggiornano da soli.

HTTP3Server.pas
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;

Cosa ottieni

Un singolo componente Delphi che termina QUIC, negozia h3 e instrada ogni richiesta verso un unico handler, con lo stesso certificato che il tuo server HTTP/2 carica già.

Alt-Svc, così gli aggiornamenti sono automatici

Una normale risposta HTTP/2 porta un'intestazione Alt-Svc: h3=":443". I client che la comprendono aprono QUIC alla richiesta successiva, senza un redirect o un secondo dominio.

WebTransport, sulla stessa porta

Una richiesta Extended CONNECT aggiorna uno stream a WebTransport, offrendo a un client browser stream bidirezionali e datagrammi accanto alle normali richieste HTTP/3.

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.

OpenSSL 3.5 TLS 1.3 Alt-Svc QPACK WebTransport

Il componente server HTTP/3 →

sgcQUIC è un componente aggiuntivo a sgcWebSockets Enterprise, quindi la licenza, il canale di supporto e il ritmo degli aggiornamenti sono quelli che hai già.

Nove librerie, un'unica cassetta degli attrezzi

sgcQUIC è una delle nove librerie di componenti eSeGeCe per Delphi, C++ Builder e .NET. Condividono le stesse convenzioni, includono il sorgente completo e si distribuiscono senza royalty.

sgcQUIC

Trasporto QUIC puro e un client e un server HTTP/3, con WebTransport. Un componente aggiuntivo a sgcWebSockets Enterprise.

Scopri di più →

sgcWebSockets

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

Scopri di più →

sgcHTML

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

Scopri di più →

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.

Scopri di più →

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.

Scopri di più →

sgcAuth

Client OAuth2, client JWT e supporto WebAuthn per Delphi e C++ Builder. Accedi con qualsiasi provider OAuth2/OIDC, emetti e verifica JWT, e aggiungi l'autenticazione con passkey alle app native. Autonomo, il runtime sgcWebSockets Core è incluso.

Scopri di più →

sgcHTTP

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.

Scopri di più →

sgcREST

Componenti server REST, server OpenAPI e client OpenAPI per Delphi e C++ Builder. Pubblica API REST da un contratto OpenAPI 3.x, oppure consuma qualsiasi API descritta con OpenAPI. Autonomo, il runtime sgcWebSockets Core è incluso.

Scopri di più →

sgcOpenAPI

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

Scopri di più →

sgcSign

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

Scopri di più →

sgcBiometrics

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

Scopri di più →

sgcIndy

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

Scopri di più →

Vedi prezzi ed edizioni Scarica la versione di prova

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 Delphi Developer

sgcWebSockets è straordinario e il vostro supporto è il migliore!

Christian Meyer Founder & CTO

Grazie mille per il vostro aiuto e supporto, adoro i vostri componenti.

Mark Steinfeld CTO

Le ultime dal blog

Vedi tutti gli articoli →

Questa è la vista QUIC 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

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.