eSeGeCe — Componentes de Comunicación Empresarial para Delphi y .NET
DESTACADO · sgcQUIC

Sáltate los viajes de ida y vuelta

TCP más TLS necesita tres viajes de ida y vuelta antes de que llegue el primer byte de una respuesta. QUIC combina el transporte y el handshake criptográfico en uno solo, y una conexión reanudada puede enviar datos en el primerísimo paquete. sgcQUIC ofrece a Delphi, C++ Builder y .NET un transporte QUIC nativo y un cliente y servidor HTTP/3 construidos sobre él, sobre el motor QUIC de OpenSSL 3.5.

  • RFC 9000, 9114, 9204
  • WebTransport (RFC 9220)
  • 0-RTT y migración de conexión
  • Delphi · C++ Builder · .NET

QUIC y HTTP/3, al Pie de la Letra de los RFC

sgcQUIC no es una implementación parcial. El transporte, el framing, la compresión de cabeceras y la extensión WebTransport están todos cubiertos, sobre el motor QUIC nativo de OpenSSL 3.5.

4 Componentes TsgcQUICClient, TsgcQUICServer, TsgcHTTP3Client y TsgcHTTP3Server, en una sola página de paleta.
9000 RFC 9000 El protocolo de transporte QUIC: streams, datagramas, control de flujo y migración de conexión.
9114 RFC 9114 HTTP/3, la misma semántica de petición y respuesta que HTTP/2, transportada sobre streams QUIC.
9204 RFC 9204 Compresión de cabeceras QPACK, diseñada para la entrega desordenada de streams de QUIC.
9220 RFC 9220 WebTransport sobre HTTP/3, streams bidireccionales y datagramas en una sola petición Extended CONNECT.
sgcQUIC

Un transporte QUIC puro y un cliente y servidor HTTP/3 para Delphi, C++ Builder y .NET. Un complemento de sgcWebSockets Enterprise, sobre el mismo motor QUIC nativo de OpenSSL 3.5. Código fuente completo, despliegue libre de royalties.

QUIC Puro, o HTTP/3 Encima

Usa TsgcQUICClient y TsgcQUICServer para un transporte desnudo con tu propio framing, o recurre directamente a TsgcHTTP3Client y TsgcHTTP3Server cuando el formato de la conexión es HTTP.

RFC 9000

Cliente y Servidor QUIC

TsgcQUICClient y TsgcQUICServer hablan QUIC puro: varios streams independientes en una sola conexión cifrada, datagramas no fiables y migración de conexión cuando la dirección IP del cliente cambia a mitad de sesión.

Ver los componentes QUIC →
RFC 9114

Cliente y Servidor HTTP/3

TsgcHTTP3Client y TsgcHTTP3Server añaden la semántica HTTP encima: cabeceras de petición y respuesta comprimidas con QPACK, descubrimiento con Alt-Svc, y los mismos métodos y códigos de estado que ya usa tu código HTTP/2.

Ver los componentes HTTP/3 →
0-RTT

Reanudación de Sesión

Un cliente que ya se ha conectado antes puede enviar su primera petición en el primerísimo paquete, antes de que termine el handshake.

Migración

Migración de Conexión

Un Connection ID identifica la sesión, no la dirección IP, de modo que un teléfono que pasa de Wi-Fi a datos móviles mantiene sus streams abiertos.

WebTransport

RFC 9220

Streams bidireccionales y datagramas no fiables sobre una sola petición Extended CONNECT, para clientes de navegador que hablan WebTransport.

Guías paso a paso para los componentes QUIC y HTTP/3:

Una Petición sobre HTTP/3

La misma forma que cualquier otro cliente HTTP de sgcWebSockets: define propiedades, gestiona un evento, llama a un método.

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;

El cliente y el servidor comparten el mismo modelo de conexión, stream y datagrama en ambos lados. La matriz de características completa →

Un Puerto, un Certificado, Dos Protocolos

TsgcHTTP3Server habla HTTP/3 sobre QUIC en un puerto UDP, mientras que un emparejamiento al estilo TsgcHTTP3ServerBridge con un servidor HTTP/2 existente permite que los clientes heredados sigan funcionando sobre TCP. Anuncia Alt-Svc y los clientes modernos se actualizan solos.

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;

Lo que Obtienes con Esto

Un único componente Delphi que termina QUIC, negocia h3 y enruta cada petición a un solo manejador, con el mismo certificado que ya carga tu servidor HTTP/2.

Alt-Svc, para que las Actualizaciones sean Automáticas

Una respuesta HTTP/2 normal lleva una cabecera Alt-Svc: h3=":443". Los clientes que la entienden abren QUIC en la siguiente petición, sin una redirección ni un segundo dominio.

WebTransport, en el Mismo Puerto

Una petición Extended CONNECT actualiza un stream a WebTransport, dando a un cliente de navegador streams bidireccionales y datagramas junto a las peticiones HTTP/3 normales.

QUIC Nativo, sin Dependencias Externas

El handshake de QUIC y TLS 1.3 se ejecuta en el propio motor QUIC de OpenSSL 3.5. No hay ninguna librería QUIC aparte que compilar ni distribuir.

OpenSSL 3.5 TLS 1.3 Alt-Svc QPACK WebTransport

El componente servidor HTTP/3 →

sgcQUIC es un complemento de sgcWebSockets Enterprise, así que la licencia, el canal de soporte y el ritmo de actualizaciones son los que ya tienes.

Nueve Librerías, una Caja de Herramientas

sgcQUIC es una de las nueve librerías de componentes de eSeGeCe para Delphi, C++ Builder y .NET. Comparten convenciones, se entregan con código fuente completo y se despliegan libres de royalties.

sgcQUIC

Transporte QUIC puro y un cliente y servidor HTTP/3, con WebTransport. Un complemento de sgcWebSockets Enterprise.

Más información →

sgcWebSockets

WebSocket, HTTP/2, MQTT, AMQP, WebRTC, IA y más de 30 integraciones de APIs. La licencia Enterprise sobre la que se construye sgcQUIC.

Más información →

sgcHTML

Componentes HTML y de UI en servidor sobre Bootstrap 5 y htmx. Sirve la UI renderizada sobre el mismo transporte HTTP/3.

Más información →

sgcAI

Componentes de IA, LLM y MCP para Delphi y C++ Builder. Siete proveedores de LLM tras un único componente, más MCP, embeddings y voz. Producto independiente, con el runtime sgcWebSockets Core incluido.

Más información →

sgcMQ

Componentes cliente de MQTT, AMQP 0.9.1 y 1.0, Apache Kafka y STOMP para Delphi y C++ Builder. Producto independiente, con el runtime sgcWebSockets Core incluido.

Más información →

sgcAuth

Cliente OAuth2, cliente JWT y soporte para WebAuthn en Delphi y C++ Builder. Inicia sesión con cualquier proveedor OAuth2/OIDC, emite y verifica JWT, y añade autenticación con passkeys a tus aplicaciones nativas. Producto independiente, con el runtime sgcWebSockets Core incluido.

Más información →

sgcHTTP

Cliente HTTP/2, cliente gRPC y clientes de Google Cloud Pub/Sub, Calendar y FCM para Delphi y C++ Builder. Producto independiente, con el runtime sgcWebSockets Core incluido.

Más información →

sgcREST

Servidor REST, servidor OpenAPI y componentes de cliente OpenAPI para Delphi y C++ Builder. Publica APIs REST a partir de un contrato OpenAPI 3.x, o consume cualquier API descrita con OpenAPI. Producto independiente, con el runtime sgcWebSockets Core incluido.

Más información →

sgcOpenAPI

Parser de OpenAPI 3.x, generador nativo de SDK Pascal, componente servidor OpenAPI y más de 1.195 SDK de nube preconstruidos.

Más información →

sgcSign

XAdES, PAdES, CAdES y ASiC para documentos, Authenticode, ClickOnce, NuGet y VSIX para código.

Más información →

sgcBiometrics

Windows Hello, sensores de huella dactilar y el Windows Biometric Framework para Delphi y C++ Builder.

Más información →

sgcIndy

Componentes Indy TCP/IP actualizados con TLS moderno, IPv6 y HTTP/2 para Delphi 7 a 13.

Más información →

Ver precios y ediciones Descargar la prueba gratuita

Qué Dicen los Desarrolladores

La confianza de desarrolladores de Delphi, C++ Builder, Lazarus y .NET en todo el mundo.

Vuestra librería sgcWebSockets es muy útil y fácil de configurar. ¡Seguid así!

Simone Moretti Desarrollador Delphi

sgcWebSockets es increíble y vuestro soporte es el mejor.

Christian Meyer Fundador y CTO

Muchas gracias por vuestra ayuda y soporte, me encantan vuestros componentes.

Mark Steinfeld CTO

Lo último del blog

Ver todas las publicaciones →

Estás viendo la vista QUIC de eSeGeCe.

Muéstrame otro enfoque →
Garantía de devolución de 30 días¿No estás satisfecho? Solicita un reembolso completo en los 30 días posteriores a la compra. Ver política de reembolso

Lanza QUIC y HTTP/3 sin Salir de tu IDE

Transporte QUIC puro, cliente y servidor HTTP/3, y WebTransport, sobre el motor QUIC de OpenSSL 3.5. Código fuente completo, despliegue libre de royalties, como complemento de sgcWebSockets Enterprise.