sgcHTTP: matriz de características

Todo lo que hace sgcHTTP, repartido entre el servidor HTTP, el cliente HTTP/2, el cliente gRPC y los tres clientes de Google Cloud. Cada capacidad funciona igual en Delphi y en C++ Builder, y todas las licencias incluyen el código fuente completo. Las subpáginas de componentes aún no están publicadas para este lanzamiento, cada entrada de abajo es autocontenida en esta página.

Servidor HTTP

Endpoints, archivos estáticos, sesiones, TLS

Cliente HTTP/2

Streams multiplexados, HPACK, ALPN

Cliente gRPC

RPC unario y en streaming

Google Cloud

Pub/Sub, Calendar y FCM

Estándares y plataformas

Delphi 7 a 13, C++ Builder

sgcHTTP es autocontenido. Se entrega con el runtime sgcWebSockets Core incluido, así que no es un complemento. El servidor HTTP, TsgcHTTPServer, forma parte de ese runtime.

HTTP/2 y gRPC necesitan sgcCustomIndy. Ambas clases requieren ALPN para la negociación del protocolo TLS, algo que la librería Indy estándar no admite, así que están construidas en su lugar sobre sgcCustomIndy. Siempre se incluye en tu pedido, y el precio de sgcHTTP que se muestra ya lo cubre. Los tres clientes de Google Cloud son HTTPS puro y no lo necesitan.

Seis clases, dos unidades

Tres componentes en la página de paleta SGC HTTP y tres clases de Google Cloud solo de código. El servidor HTTP está declarado en la unidad sgcHTTP_Server del runtime Core incluido, todo lo demás en la unidad sgcHTTP.

ComponenteClase¿Paleta?Descripción
Servidor HTTPTsgcHTTPServerSíServidor HTTP: eventos de petición, archivos estáticos desde una raíz de documentos, compresión, keep-alive, sesiones, subidas de archivos, TLS y autenticación. Se incluye con el runtime Core.
Cliente HTTP/2TsgcHTTP2ClientSíCliente HTTP/2 nativo: streams multiplexados, compresión de cabeceras HPACK, negociación ALPN. Necesita sgcCustomIndy.
Cliente gRPCTsgcGRPCClientSíCliente gRPC construido sobre el cliente HTTP/2: RPC unario, de streaming de servidor, de streaming de cliente y bidireccional. Necesita sgcCustomIndy.
Google Cloud Pub/SubTsgcHTTPGoogleCloud_PubSub_ClientNo, solo códigoAPI REST de Google Cloud Pub/Sub: topics, suscripciones, snapshots, publicación y extracción. HTTPS puro sobre Core.
Google Cloud CalendarTsgcHTTPGoogleCloud_Calendar_ClientNo, solo códigoGoogle Calendar API v3: calendarios y eventos, crear, actualizar, listar, eliminar. HTTPS puro sobre Core.
Google Cloud FCMTsgcHTTPGoogleCloud_FCM_ClientNo, solo códigoAPI HTTP v1 de Firebase Cloud Messaging: envía un payload de notificación push con una sola llamada. HTTPS puro sobre Core.

Endpoints, archivos estáticos, sesiones

TsgcHTTPServer publica endpoints HTTP y archivos estáticos desde tu propia aplicación. Es el mismo motor que el servidor WebSocket de sgcWebSockets sin la parte WebSocket, y se incluye con el runtime Core.

CapacidadAPINotas
EscuchaPort, Bindings, ActiveDefine el puerto, o enlaza a direcciones concretas, y luego activa el servidor.
PeticionesOnCommandGet, OnCommandOtherCada petición llega a tu código con sus objetos de petición y respuesta. OnCommandOther cubre verbos como PUT y DELETE.
Archivos estáticosDocumentRootDevuelve archivos estáticos desde la carpeta a la que lo apuntes.
CompresiónHTTPCompressionOpciones de compresión de las respuestas.
ConexionesKeepAlive, MaxConnectionsMantiene las conexiones abiertas entre peticiones y limita cuántas hay abiertas a la vez.
SesionesSessionState, AutoStartSession, SessionTimeOut, OnSessionStart, OnSessionEndSesiones en el servidor con tiempo de espera, más eventos de inicio y fin.
Límites de peticiónMaxRequestBodySizeLimita el tamaño del cuerpo de una petición.
SubidasHTTPUploadFilesGuarda los archivos subidos en un directorio que tú eliges.
TLSSSL, SSLOptionsSirve HTTPS con tu propio certificado.
AutenticaciónAuthentication, OnAuthenticationValida las credenciales en tu propio código antes de atender una petición.
HilosThreadPool, ThreadPoolOptionsReutiliza hilos de trabajo de un pool en lugar de crear uno por conexión.
RuntimesgcWebSockets CoreDeclarado en la unidad sgcHTTP_Server del runtime Core incluido, en la página de paleta SGC HTTP.

Peticiones multiplexadas, HPACK, ALPN

TsgcHTTP2Client habla HTTP/2 (RFC 9113) sobre una sola conexión TLS, negociada con ALPN, la razón por la que está construido sobre sgcCustomIndy.

CapacidadAPINotas
ConexiónHost, Port, ActiveUna sola conexión TLS transporta todos los streams de petición multiplexados.
ConectarConnect, ConnectAsyncAbre la conexión y emite una petición opcional en la misma llamada.
LecturaGet, GetAsyncLlamada síncrona o disparar y olvidar, con la respuesta entregada por evento.
EscrituraPost, PostAsync, Put, PutAsync, Patch, PatchAsyncLos cuerpos de petición son streams, así que las subidas no tienen que caber en memoria.
Delete y OptionsDelete, DeleteAsync, Options, OptionsAsyncEl resto del conjunto de verbos HTTP, con el mismo emparejamiento síncrono/asíncrono.
RespuestasOnHTTP2ResponseEntrega juntos los objetos de petición y respuesta, incluidos Response.DataString y el estado.
Cuerpos fragmentadosOnHTTP2ResponseFragmentSe dispara según llega cada fragmento de una respuesta fragmentada, antes del OnHTTP2Response final.
Server pushOnHTTP2PushPromiseExpone los recursos enviados por server push de HTTP/2 según llegan.
Ciclo de vida de la conexiónOnHTTP2Connect, OnHTTP2Disconnect, OnHTTP2GoAway, OnHTTP2RSTStreamLas señales de conexión, desconexión y reinicio de stream que define HTTP/2.
SettingsHTTP2Options, SettingsLos valores del frame SETTINGS local de HTTP/2 enviados al peer.
FiabilidadWatchDog, HeartBeat, ThrottleReconexión automática, keep-alive y limitación de peticiones, compartidos con el resto de la pila HTTP de sgc.
Autenticación y TLSAuthentication, TLSOptions, OnHTTP2AuthorizationEsquemas de autenticación estándar y configuración TLS, además de un gancho para cabeceras de autorización personalizadas.
DependenciasgcCustomIndyALPN negocia el protocolo h2 durante el handshake TLS; la librería Indy estándar no puede hacerlo.

Streaming unario, de servidor, de cliente y bidireccional

TsgcGRPCClient transporta payloads de Protocol Buffers sobre los streams multiplexados del cliente HTTP/2, así que cubre las cuatro formas de llamada de gRPC.

CapacidadAPINotas
TransporteClientUna instancia de TsgcHTTP2Client; el cliente gRPC viaja sobre ella en lugar de abrir su propia conexión.
RPC unarioCall, CallAsync, CallStringUna petición, una respuesta. Call bloquea y devuelve un TsgcGRPCResponse; CallAsync la entrega a través de OnGRPCResponse.
Streaming de servidorServerStreamingCallUna petición, un stream de respuestas entregadas a través de OnGRPCStreamMessage hasta OnGRPCStreamEnd.
Streaming de clienteOpenClientStream, SendStreamMessage, CloseClientStream, CloseClientStreamAsyncUn stream de peticiones, una respuesta final cuando el stream se cierra.
Streaming bidireccionalOpenBidiStream, SendBidiMessage, CloseBidiStreamAmbos lados hacen streaming de forma independiente sobre la misma llamada.
CancelaciónCancelCallCancela una llamada en curso mediante su id de stream.
RespuestasOnGRPCResponse, OnGRPCStreamMessage, OnGRPCStreamEndTsgcGRPCResponse transporta StatusCode, Data/DataString, Headers y Trailers.
ErroresOnGRPCError, OnGRPCExceptionErrores de código de estado de gRPC y excepciones a nivel de transporte, entregados por separado.
MetadatosDefaultMetadata, OnGRPCBeforeRequestCabeceras de metadatos de gRPC por llamada y por defecto.
ResilienciaRetryPolicy, Interceptors, ServiceConfigComportamiento de reintento, una cadena de interceptores transversal y configuración del servicio, sin tocar los puntos de llamada individuales.
ObservabilidadMetricsCollectorRecopila métricas de llamadas del cliente.
DependenciasgcCustomIndyHeredada del cliente HTTP/2 sobre el que está construido; ALPN se requiere de la misma forma.

Pub/Sub, Calendar y notificaciones push

Tres clases solo de código, autenticadas con una cuenta de servicio de Google y accedidas sobre HTTPS puro. Ninguna necesita sgcCustomIndy.

CapacidadAPINotas
AutenticaciónGoogleCloudOptions.JWT, OnAuthToken, OnAuthTokenErrorJWT de cuenta de servicio: project id, client email y private key. La misma forma en los tres clientes.
Pub/Sub: publicación y extracciónPublish, Pull, Acknowledge, SeekTsgcHTTPGoogleCloud_PubSub_Client. Envía mensajes a un topic, extrae y confirma desde una suscripción.
Pub/Sub: topicsCreateTopic, DeleteTopic, GetTopic, ListTopicsGestiona topics directamente desde código.
Pub/Sub: suscripcionesCreateSubscription, DeleteSubscripton, ListSubscriptions, ModifyAckDeadlineSubscriptionCiclo de vida completo de la suscripción, incluidos los cambios de ack-deadline y push-config.
Pub/Sub: snapshotsCreateSnapshot, DeleteSnapshot, ListSnapshotsToma una instantánea del estado de confirmación de una suscripción para reproducirla más tarde.
Calendar: calendariosNewCalendar, UpdateCalendar, DeleteCalendar, LoadCalendarsTsgcHTTPGoogleCloud_Calendar_Client. Envuelve la lista de calendarios de la Google Calendar API v3.
Calendar: eventosNewEvent, UpdateEvent, DeleteEvent, LoadEventsCrea, cambia y elimina eventos en un calendario dado.
Calendar: sincronizaciónLoadCalendarsChanged, LoadEventsChanged, OnGetCalendar, OnGetCalendarEventGanchos de sincronización incremental para los calendarios y eventos que cambiaron desde la última sincronización.
FCM: pushSendMessageTsgcHTTPGoogleCloud_FCM_Client. Una llamada envía un payload de Firebase Cloud Messaging v1 a un proyecto.
TLS y registroTLSOptions, LogFileCompartidos por los tres clientes de Google Cloud.

APIs, compiladores y destinos

Estándares públicos en el cable, y el mismo código fuente en todos los compiladores compatibles.

ÁreaDetalle
Servidor HTTPPeticiones y respuestas HTTP, archivos estáticos, sesiones y HTTPS mediante TsgcHTTPServer.
HTTP/2RFC 9113, con compresión de cabeceras HPACK y negociación de protocolo ALPN.
gRPCPayloads de Protocol Buffers sobre streams HTTP/2, siguiendo el protocolo de red de gRPC.
Google CloudLa API REST de Pub/Sub, la Google Calendar API v3 y la API HTTP v1 de Firebase Cloud Messaging, todas autenticadas con una cuenta de servicio de Google.
PlataformasWindows Win32, Windows Win64, Linux64, macOS, iOS y Android para las cinco clases.
DependenciaLos clientes HTTP/2 y gRPC necesitan sgcCustomIndy para ALPN. Los clientes de Google Cloud solo necesitan el runtime Core incluido.
CompiladoresDelphi y C++ Builder 7 a 13.
EdicionesHTTP/2 y gRPC también se entregan dentro de sgcWebSockets desde Enterprise en adelante, y los clientes de Google Cloud desde Standard en adelante. El servidor HTTP forma parte del runtime Core, así que todas las ediciones de sgcWebSockets lo incluyen también.
LicenciasIndependiente. El runtime sgcWebSockets Core viene incluido y se entrega el código fuente completo.
La mejor opción: All-AccessTodos los productos de eSeGeCe, con Premium Support incluido, desde €1,059 al año.
Ver precios de All-Access

Crea con sgcHTTP

Descarga la prueba gratuita, publica tu primer endpoint HTTP y haz tu primera llamada HTTP/2 o gRPC desde Delphi o C++ Builder.