eSeGeCe — Composants de communication d’entreprise pour Delphi & .NET
EN VEDETTE · sgcQUIC

Saute les allers-retours

TCP plus TLS a besoin de trois allers-retours avant que le premier octet de la réponse n’arrive. QUIC fusionne le handshake de transport et le handshake cryptographique en un seul, et une connexion reprise peut envoyer des données dès le tout premier paquet. sgcQUIC apporte à Delphi, C++ Builder et .NET un transport QUIC natif ainsi qu’un client et un serveur HTTP/3 construits par-dessus, sur le moteur QUIC d’OpenSSL 3.5.

  • RFC 9000, 9114, 9204
  • WebTransport (RFC 9220)
  • 0-RTT et migration de connexion
  • Delphi · C++ Builder · .NET

QUIC et HTTP/3, à la lettre des RFC

sgcQUIC n’est pas une implémentation partielle. Le transport, le framing, la compression des en-têtes et l’extension WebTransport sont tous couverts, par-dessus le moteur QUIC natif d’OpenSSL 3.5.

4 Composants TsgcQUICClient, TsgcQUICServer, TsgcHTTP3Client et TsgcHTTP3Server, une seule page de palette.
9000 RFC 9000 Le protocole de transport QUIC : streams, datagrammes, contrôle de flux et migration de connexion.
9114 RFC 9114 HTTP/3, la même sémantique de requêtes et réponses que HTTP/2, transportée sur des streams QUIC.
9204 RFC 9204 La compression d’en-têtes QPACK, conçue pour la livraison désordonnée des streams QUIC.
9220 RFC 9220 WebTransport sur HTTP/3, des streams bidirectionnels et des datagrammes sur une seule requête Extended CONNECT.
sgcQUIC

Un transport QUIC pur et un client et un serveur HTTP/3 pour Delphi, C++ Builder et .NET. Un complément à sgcWebSockets Enterprise, sur le même moteur QUIC natif OpenSSL 3.5. Code source complet, déploiement sans royalties.

QUIC pur, ou HTTP/3 par-dessus

Utilise TsgcQUICClient et TsgcQUICServer pour un transport nu avec ton propre framing, ou pars directement sur TsgcHTTP3Client et TsgcHTTP3Server quand le format sur le fil est HTTP.

RFC 9000

Client et serveur QUIC

TsgcQUICClient et TsgcQUICServer parlent QUIC pur : plusieurs streams indépendants sur une seule connexion chiffrée, des datagrammes non fiables, et une migration de connexion quand l’adresse IP du client change en cours de session.

Voir les composants QUIC →
RFC 9114

Client et serveur HTTP/3

TsgcHTTP3Client et TsgcHTTP3Server ajoutent la sémantique HTTP par-dessus : en-têtes de requête et de réponse compressés avec QPACK, découverte Alt-Svc, et les mêmes méthodes et codes de statut que ton code HTTP/2 utilise déjà.

Voir les composants HTTP/3 →
0-RTT

Reprise de session

Un client déjà connecté auparavant peut envoyer sa première requête dès le tout premier paquet, avant même la fin du handshake.

Migration

Migration de connexion

Un Connection ID identifie la session, pas l’adresse IP, si bien qu’un téléphone qui passe du Wi-Fi aux données mobiles garde ses streams ouverts.

WebTransport

RFC 9220

Des streams bidirectionnels et des datagrammes non fiables sur une seule requête Extended CONNECT, pour les clients navigateur qui parlent WebTransport.

Des guides pas à pas pour les composants QUIC et HTTP/3 :

Une requête sur HTTP/3

La même forme que n’importe quel autre client HTTP sgcWebSockets : définis des propriétés, gère un événement, appelle une méthode.

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;

Le client et le serveur partagent le même modèle de connexion, de stream et de datagramme des deux côtés. La matrice complète des fonctionnalités →

Un port, un certificat, deux protocoles

TsgcHTTP3Server parle HTTP/3 sur QUIC via un port UDP, tandis qu’un couplage façon TsgcHTTP3ServerBridge avec un serveur HTTP/2 existant laisse les clients existants continuer à fonctionner sur TCP. Annonce Alt-Svc et les clients modernes se mettent à niveau eux-mêmes.

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;

Ce que ça te donne

Un seul composant Delphi qui termine QUIC, négocie h3 et route chaque requête vers un seul gestionnaire, avec le même certificat que ton serveur HTTP/2 charge déjà.

Alt-Svc, pour des mises à niveau automatiques

Une réponse HTTP/2 normale porte un en-tête Alt-Svc: h3=":443". Les clients qui le comprennent ouvrent QUIC dès la requête suivante, sans redirection ni second domaine.

WebTransport, sur le même port

Une requête Extended CONNECT fait passer un stream en WebTransport, donnant à un client navigateur des streams bidirectionnels et des datagrammes à côté des requêtes HTTP/3 ordinaires.

QUIC natif, sans dépendance externe

Le handshake QUIC et TLS 1.3 tourne sur le propre moteur QUIC d’OpenSSL 3.5. Il n’y a aucune bibliothèque QUIC séparée à compiler ou à embarquer.

OpenSSL 3.5 TLS 1.3 Alt-Svc QPACK WebTransport

Le composant serveur HTTP/3 →

sgcQUIC est un complément à sgcWebSockets Enterprise, donc la licence, le canal de support et le rythme de mises à jour sont ceux que tu as déjà.

Neuf bibliothèques, une seule boîte à outils

sgcQUIC est l’une des neuf bibliothèques de composants eSeGeCe pour Delphi, C++ Builder et .NET. Elles partagent les mêmes conventions, elles sont livrées avec le code source complet et se déploient sans royalties.

sgcQUIC

Transport QUIC pur et un client/serveur HTTP/3, avec WebTransport. Un complément à sgcWebSockets Enterprise.

En savoir plus →

sgcWebSockets

WebSocket, HTTP/2, MQTT, AMQP, WebRTC, IA et plus de 30 intégrations d’APIs. La licence Enterprise sur laquelle sgcQUIC s’appuie.

En savoir plus →

sgcHTML

Composants HTML et d’interface côté serveur sur Bootstrap 5 et htmx. Sers l’interface générée sur le même transport HTTP/3.

En savoir plus →

sgcAI

Composants IA, LLM et MCP pour Delphi et C++ Builder. Sept fournisseurs de LLM derrière un seul composant, plus MCP, embeddings et synthèse vocale. Autonome, le runtime sgcWebSockets Core est inclus.

En savoir plus →

sgcMQ

Composants clients MQTT, AMQP 0.9.1 et 1.0, Apache Kafka et STOMP pour Delphi et C++ Builder. Autonome, le runtime sgcWebSockets Core est inclus.

En savoir plus →

sgcAuth

Client OAuth2, client JWT et prise en charge de WebAuthn pour Delphi et C++ Builder. Connecte-toi avec tout fournisseur OAuth2/OIDC, émets et vérifie des JWT, et ajoute l'authentification par passkey à tes applications natives. Autonome, le runtime sgcWebSockets Core est inclus.

En savoir plus →

sgcHTTP

Client HTTP/2, client gRPC et clients Google Cloud Pub/Sub, Calendar et FCM pour Delphi et C++ Builder. Autonome, le runtime sgcWebSockets Core est inclus.

En savoir plus →

sgcREST

Serveur REST, serveur OpenAPI et composants clients OpenAPI pour Delphi et C++ Builder. Publie des API REST à partir d'un contrat OpenAPI 3.x, ou consomme n'importe quelle API décrite en OpenAPI. Autonome, le runtime sgcWebSockets Core est inclus.

En savoir plus →

sgcOpenAPI

Parser OpenAPI 3.x, générateur natif de SDK Pascal, composant serveur OpenAPI et plus de 1 195 SDK cloud préconçus.

En savoir plus →

sgcSign

XAdES, PAdES, CAdES et ASiC pour les documents, Authenticode, ClickOnce, NuGet et VSIX pour le code.

En savoir plus →

sgcBiometrics

Windows Hello, capteurs d’empreintes digitales et Windows Biometric Framework pour Delphi et C++ Builder.

En savoir plus →

sgcIndy

Composants Indy TCP/IP mis à jour avec TLS moderne, IPv6 et HTTP/2, de Delphi 7 à 13.

En savoir plus →

Voir les tarifs et les éditions Télécharger l’essai gratuit

Ce que disent les développeurs

Plébiscité par des développeurs Delphi, C++ Builder, Lazarus et .NET dans le monde entier.

Votre bibliothèque sgcWebSockets est très utile et facile à configurer. Continuez votre excellent travail !

Simone Moretti Développeur Delphi

sgcWebSockets est incroyable et votre support est le meilleur !

Christian Meyer Fondateur & CTO

Merci beaucoup pour votre aide et votre support, j’adore vos composants.

Mark Steinfeld CTO

Les derniers articles du blog

Voir tous les articles →

Tu vois la vue QUIC d’eSeGeCe.

Montre-moi un autre angle →
Garantie satisfait ou remboursé de 30 joursPas satisfait ? Demandez un remboursement intégral dans les 30 jours suivant l'achat. Voir la politique de remboursement

Déploie QUIC et HTTP/3 sans quitter ton IDE

Transport QUIC pur, client et serveur HTTP/3, et WebTransport, sur le moteur QUIC OpenSSL 3.5. Code source complet, déploiement sans royalties, en tant que complément à sgcWebSockets Enterprise.