sgcHTTP Servidor HTTP, HTTP/2 y gRPC en Delphi. Google Cloud también.

Un servidor HTTP y cinco componentes cliente. TsgcHTTPServer publica endpoints HTTP y archivos estáticos desde tu propia aplicación. TsgcHTTP2Client habla HTTP/2 con flujos multiplexados sobre una sola conexión TLS y compresión de cabeceras HPACK. TsgcGRPCClient es un cliente gRPC construido sobre él, para llamadas Protocol Buffers unarias y de streaming. Otras tres clases llegan a Google Cloud por HTTPS simple: Pub/Sub, Calendar y Firebase Cloud Messaging.

Un paquete independiente de sgcWebSockets, con el runtime Core incluido. Ver precios →
  • Servidor HTTP
  • HTTP/2
  • gRPC
  • Google Cloud
  • HPACK y ALPN
  • Delphi 7 a 13
  • C++ Builder
  • 3Componentes de la paleta: el servidor HTTP, el cliente HTTP/2 y el cliente gRPC
  • 5Clases cliente en total
  • 3Servicios de Google Cloud: Pub/Sub, Calendar y FCM
  • 1Instalador independiente, con el runtime Core incluido
  • 100%Código fuente incluido en cada licencia
Míralo en marcha

Descubre sgcHTTP en dos minutos.

Un inicio rápido narrado y subtitulado: un cliente HTTP/2 que envía muchas peticiones por una sola conexión y, después, una llamada gRPC sobre ese mismo transporte, todo desde Delphi. No se descarga nada hasta que pulses reproducir.

Inicio rápido de sgcHTTP

Llama a un endpoint HTTP/2 y haz una llamada gRPC, desde Delphi.

  1. Crea el cliente HTTP/2Crea un TsgcHTTP2Client, gestiona OnHTTP2Response y llama a Get. El protocolo h2 se negocia durante el handshake TLS mediante ALPN.
  2. Muchas peticiones, una conexiónLas peticiones comparten una única conexión TCP como flujos independientes, de modo que una respuesta lenta no bloquea a las demás.
  3. gRPC sobre el mismo transporteAsigna el cliente HTTP/2 al cliente gRPC y llama a un método por servicio y nombre. Los mensajes viajan como Protocol Buffers con prefijo de longitud.
  4. Cuatro patrones RPCUnario, streaming de servidor, streaming de cliente y streaming bidireccional, cada uno con su propio método en TsgcGRPCClient.
Dos componentes de la paleta

Un cliente HTTP/2 y gRPC montado sobre él.

Ambos componentes se declaran en la unidad sgcHTTP y TsgcGRPCClient lleva su propia conexión HTTP/2 a través de su propiedad Client .

El cliente HTTP/2 en el inicio rápido de sgcHTTP: el código Delphi junto a seis peticiones en vuelo sobre un mismo socket

Flujos multiplexados sobre una sola conexión TLS

TsgcHTTP2Client habla HTTP/2 (RFC 9113): varias peticiones comparten una única conexión TCP como flujos independientes. Las cabeceras se comprimen con HPACK y h2 se negocia durante el handshake TLS mediante ALPN. Se cubren todos los verbos: Get, Post, Put, Patch, Delete y Options, cada uno con una llamada síncrona y una variante Async .

gRPC en el inicio rápido de sgcHTTP: un TsgcGRPCClient que usa un TsgcHTTP2Client como transporte, con los cuatro patrones RPC enumerados

RPC unario y de streaming sobre el cliente HTTP/2

TsgcGRPCClient hereda la conexión multiplexada y añade encima el formato de transmisión gRPC. Call y CallAsync cubren los RPC unarios, ServerStreamingCall gestiona un flujo de respuestas a una petición, y OpenClientStream y OpenBidiStream cubren el streaming de cliente y el streaming bidireccional. RetryPolicy, Interceptors y ServiceConfig añaden reintentos y lógica transversal sin tocar los puntos de llamada.

Un servidor, cinco clases cliente

Dos dependencias, no cinco.

Las cinco clases se reparten con claridad según lo que necesitan por debajo. HTTP/2 y gRPC necesitan ALPN, y eso significa sgcCustomIndy. Google Cloud no necesita nada más que HTTPS y una cuenta de servicio, algo que el runtime Core incluido ya ofrece. El servidor HTTP procede de ese mismo runtime.

Servidor HTTP

TsgcHTTPServer publica endpoints HTTP desde tu propia aplicación. Establece Port, gestiona OnCommandGet, activa Active y cada petición llega a tu código. OnCommandOther cubre verbos como PUT y DELETE. Se incluye con el runtime Core.

Archivos estáticos y subidas

Apunta DocumentRoot a una carpeta y el servidor devuelve los archivos estáticos desde ella. HTTPUploadFiles guarda en disco los archivos subidos, MaxRequestBodySize limita el tamaño de los cuerpos de petición, y HTTPCompression y KeepAlive mantienen las respuestas pequeñas y las conexiones abiertas.

Listo para producción

SSL y SSLOptions activan TLS, Authentication y OnAuthentication protegen los endpoints, SessionState controla las sesiones, y ThreadPool y MaxConnections regulan cómo escala. El mismo motor que el servidor WebSocket, sin la parte WebSocket.

HTTP/2

TsgcHTTP2Client multiplexa flujos independientes sobre una sola conexión TLS, comprime las cabeceras con HPACK y negocia h2 mediante ALPN. Connect, Get, Post, Put, Patch, Delete y Options, síncrono o Asyncregula el ritmo de los repintados.

gRPC

TsgcGRPCClient se apoya en el cliente HTTP/2: mensajes Protocol Buffers con prefijo de longitud sobre flujos HTTP/2, con RPC unarios, de streaming de servidor, de streaming de cliente y bidireccionales, además de política de reintentos e interceptores.

Google Cloud, HTTPS simple

TsgcHTTPGoogleCloud_PubSub_Client, TsgcHTTPGoogleCloud_Calendar_Client y TsgcHTTPGoogleCloud_FCM_Client llegan a Pub/Sub, Calendar y Firebase Cloud Messaging, autenticados con una cuenta de servicio de Google. Ninguno necesita sgcCustomIndy.

Server push y cuerpos fragmentados

Los eventos exponen el ciclo de vida de la conexión: OnHTTP2Connect, OnHTTP2Response, OnHTTP2ResponseFragment para cuerpos fragmentados, OnHTTP2PushPromise para server push, OnHTTP2GoAway y OnHTTP2Disconnect. Nada del ciclo de vida del flujo queda oculto.

Una dependencia para dos, ninguna para tres

Los clientes HTTP/2 y gRPC se construyen sobre sgcCustomIndy, que cubre el mismo rango de plataformas que el propio sgcWebSockets. Los clientes de Google Cloud usan HTTPS simple, así que funcionan allí donde funciona el runtime Core. De Delphi 7 a RAD Studio 13, y C++ Builder.

Código fuente completo incluido

Cada licencia incluye el código fuente completo del servidor HTTP, de los cinco clientes y del runtime incluido, de modo que las implementaciones a nivel de red se recorren paso a paso en tu propio depurador. La distribución no paga royalties.

El código

Servidor HTTP, HTTP/2 y gRPC, lado a lado.

Crea el componente, define un puerto o apúntalo a un host, enlaza el evento y listo. El mismo código compila en Delphi 7 a 13 y en C++ Builder.

uses
  sgcHTTP;
var
  HTTP2: TsgcHTTP2Client;
begin
  // HTTP/2: multiplexed requests over one TLS connection
  HTTP2 := TsgcHTTP2Client.Create(nil);
  HTTP2.Host := 'https://api.example.com';
  HTTP2.OnHTTP2Response := HTTP2Response;
  HTTP2.Active := True;

  HTTP2.GetAsync('/v1/status');
end;

procedure TForm1.HTTP2Response(Sender: TObject;
  const Connection: TsgcHTTP2ConnectionClient;
  const Request: TsgcHTTP2RequestProperty;
  const Response: TsgcHTTP2ResponseProperty);
begin
  Memo1.Lines.Add(Response.DataString);
end;
uses
  sgcHTTP;
var
  GRPC: TsgcGRPCClient;
begin
  // gRPC: built on the HTTP/2 client, unary and streaming RPC
  GRPC := TsgcGRPCClient.Create(nil);
  GRPC.Client.Host := 'https://grpc.example.com';
  GRPC.OnGRPCResponse := GRPCResponse;

  GRPC.CallAsync('example.OrderService', 'GetOrder', RequestBytes);
end;

procedure TForm1.GRPCResponse(Sender: TObject;
  const aResponse: TsgcGRPCResponse);
begin
  Memo1.Lines.Add(aResponse.DataString);
end;
uses
  sgcHTTP_Server;
var
  Server: TsgcHTTPServer;
begin
  // HTTP server: endpoints and static files
  Server := TsgcHTTPServer.Create(nil);
  Server.Port := 8080;
  Server.DocumentRoot := 'C:\www';
  Server.OnCommandGet := ServerCommandGet;
  Server.Active := True;
end;

procedure TForm1.ServerCommandGet(AContext: TIdContext;
  ARequestInfo: TIdHTTPRequestInfo;
  AResponseInfo: TIdHTTPResponseInfo);
begin
  if ARequestInfo.Document = '/api/status' then
  begin
    AResponseInfo.ContentType := 'application/json';
    AResponseInfo.ContentText := '{"status":"ok"}';
  end;
end;
  1. Crea el componenteLos clientes están en la unidad sgcHTTP y el servidor en sgcHTTP_Server. TsgcGRPCClient lleva su propia conexión HTTP/2 a través de su propiedad Client.
  2. Apúntalo a un hostBasta con un host https://. ALPN negocia h2 durante el handshake TLS y HPACK comprime las cabeceras.
  3. Enlaza el evento de respuestaOnHTTP2Response y OnGRPCResponse te entregan el cuerpo decodificado, con la petición y la conexión adjuntas.
  4. Envía, de forma síncrona o noCada verbo y cada RPC tiene una llamada bloqueante y su variante Async, así que el hilo de la interfaz queda libre.

La misma forma en Object Pascal y en C++ Builder. La matriz de características completa →

Antes de comprar

Dos cosas que conviene saber antes.

Qué necesita sgcHTTP de ti y qué no. Las dos respuestas son breves, y las dos están en esta página y no en la letra pequeña.

Dependencias por cliente
cliente                             necesita sgcCustomIndy
TsgcHTTPServer                      no, se incluye con el runtime Core
TsgcHTTP2Client                     sí, para ALPN
TsgcGRPCClient                      sí, se apoya en TsgcHTTP2Client
TsgcHTTPGoogleCloud_PubSub_Client   no, HTTPS simple
TsgcHTTPGoogleCloud_Calendar_Client no, HTTPS simple
TsgcHTTPGoogleCloud_FCM_Client      no, HTTPS simple

HTTP/2 negocia h2 con ALPN durante el handshake TLS.
  La biblioteca Indy estándar que se incluye con RAD Studio
  no admite ALPN, por lo que tanto HTTP/2 como gRPC se
  construyen sobre sgcCustomIndy.

sgcHTTP es independiente

El runtime Core de sgcWebSockets está incluido: el servidor HTTP, la pila cliente HTTP/TLS por la que cada cliente envía sus peticiones y la capa JSON que decodifica las respuestas de Google Cloud. Un solo instalador, con el código fuente completo.

HTTP/2 y gRPC necesitan sgcCustomIndy

La negociación ALPN no está soportada por la biblioteca Indy estándar, así que TsgcHTTP2Client y, por extensión, TsgcGRPCClient se construyen sobre sgcCustomIndy en su lugar. Siempre se incluye al pedir sgcHTTP, y el precio mostrado ya lo cubre.

Google Cloud solo necesita HTTPS

Los tres clientes de Google Cloud se autentican con el id de proyecto, el correo de cliente y la clave privada de una cuenta de servicio de Google, y llaman a las API REST sobre la pila HTTPS simple del runtime Core. Sin biblioteca nativa, sin sgcCustomIndy.

Delphi y C++ Builder

sgcHTTP está dirigido a Delphi 7 hasta RAD Studio 13 y C++ Builder. Los mismos componentes también están dentro de sgcWebSockets Enterprise, así que una licencia Enterprise o All-Access que ya tengas puede cubrirte. El instalador de prueba es el de sgcWebSockets All-Access, por lo que hoy puedes evaluar las cinco clases.

sgcHTTP implementa las superficies publicadas de HTTP/2, gRPC y la API REST de Google Cloud en lugar de envolver un SDK de terceros, así que los flujos, las cabeceras, los RPC y las notificaciones push son métodos y eventos de primera clase, y con el código fuente completo nada de lo que hay en medio es una caja negra.

Parte de sgcWebSockets

Un único paquete de sgcWebSockets, con licencia propia.

sgcHTTP incluye el runtime Core de sgcWebSockets sobre el que está construido, y el complemento sgcCustomIndy que necesitan HTTP/2 y gRPC se incluye siempre. Cada licencia incluye el código fuente completo y distribución sin royalties.

Single

1 licencia de desarrollador. Úsala en una máquina a la vez.

€398

Team

2 licencias de desarrollador. Úsalas en dos máquinas a la vez.

€648

Site

Desarrolladores ilimitados. Todas las máquinas de la empresa.

€1,048

Componentes cliente HTTP/2, gRPC y Google Cloud para Delphi y C++ Builder, con el runtime Core de sgcWebSockets incluido. ¿Ya tienes sgcWebSockets Enterprise? Los mismos componentes también están ahí.

Ver precios y licencias
Testimonios

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

HTTP moderno, gRPC y Google Cloud desde código nativo.

Un servidor HTTP, HTTP/2 multiplexado, gRPC con streaming y tres clientes de Google Cloud, con el runtime Core de sgcWebSockets incluido y el código fuente completo.

Más de eSeGeCe

Otros productos de eSeGeCe

sgcHTTP comparte convenciones con las demás bibliotecas de componentes de eSeGeCe para Delphi, C++ Builder y .NET. Incluyen el código fuente completo y se distribuyen sin royalties.

sgcWebSockets

WebSocket, HTTP/2, MQTT, AMQP, WebRTC, IA y más de 30 integraciones de API para Delphi, C++ Builder, Lazarus y .NET. Su edición Enterprise incluye también gRPC.

sgcREST

Componentes de servidor REST, servidor OpenAPI y cliente OpenAPI para Delphi y C++ Builder. Publica API REST a partir de un contrato OpenAPI 3.x o consume cualquier API descrita con OpenAPI.

sgcAuth

Cliente OAuth2, cliente JWT y compatibilidad con WebAuthn para Delphi y C++ Builder. Producto independiente, incluye el runtime de sgcWebSockets Core.

sgcMQ

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

sgcSocial

Componentes cliente de Telegram y WhatsApp Business para Delphi y C++ Builder. Independiente, con el runtime Core de sgcWebSockets incluido.

sgcAI

Componentes de IA, LLM y MCP para Delphi y C++ Builder. Siete proveedores de LLM tras un único componente, además de MCP, embeddings y voz.

sgcHTML

Componentes HTML y de interfaz en el servidor sobre Bootstrap 5 y htmx para Delphi, C++ Builder y .NET.

sgcQUIC

Transporte QUIC en bruto y un cliente y servidor HTTP/3, con WebTransport. Un add-on de sgcWebSockets Enterprise.

sgcOpenAPI

Parser de OpenAPI 3.x, generador nativo de SDK en Pascal, componente de servidor OpenAPI y más de 1.195 SDK en la nube ya generados.

sgcSign

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

sgcPDF

Crea, edita, visualiza, firma, redacta y valida archivos PDF en Object Pascal puro, sin ninguna DLL que implementar. Con licencia propia.

sgcBiometrics

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

sgcIndy

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

Lo último del blog

Ver todas las publicaciones →

Estás viendo la vista Servidor HTTP, HTTP/2 y gRPC 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