sgcHTTP matrice des fonctionnalités

Tout ce que fait sgcHTTP, réparti sur le serveur HTTP, le client HTTP/2, le client gRPC et les trois clients Google Cloud. Chaque capacité fonctionne de la même façon en Delphi et en C++ Builder, et chaque licence est livrée avec le code source complet. Les sous-pages par composant ne sont pas encore publiées pour ce lancement, chaque entrée ci-dessous est autonome sur cette page.

Serveur HTTP

Points d'accès, fichiers statiques, sessions, TLS

Client HTTP/2

Flux multiplexés, HPACK, ALPN

Client gRPC

RPC unaires et en streaming

Google Cloud

Pub/Sub, Calendar et FCM

Standards et plateformes

Delphi 7 à 13, C++ Builder

sgcHTTP est autonome. Il est livré avec le runtime sgcWebSockets Core inclus, ce n'est donc pas un complément. Le serveur HTTP, TsgcHTTPServer, fait partie de ce runtime.

HTTP/2 et gRPC ont besoin de sgcCustomIndy. Les deux classes exigent ALPN pour la négociation du protocole TLS, que la bibliothèque Indy standard ne prend pas en charge, elles sont donc bâties sur sgcCustomIndy à la place. Il est toujours inclus dans ta commande, et le prix sgcHTTP affiché le couvre déjà. Les trois clients Google Cloud sont en HTTPS pur et n'en ont pas besoin.

Six classes, deux unités

Trois composants sur la page de palette SGC HTTP et trois classes pur code Google Cloud. Le serveur HTTP est déclaré dans l'unité sgcHTTP_Server du runtime Core inclus, tout le reste dans l'unité sgcHTTP.

ComposantClassePalette ?Description
Serveur HTTPTsgcHTTPServerOuiServeur HTTP : événements de requête, fichiers statiques depuis une racine de documents, compression, keep-alive, sessions, uploads, TLS et authentification. Livré avec le runtime Core.
Client HTTP/2TsgcHTTP2ClientOuiClient HTTP/2 natif : flux multiplexés, compression d'en-têtes HPACK, négociation ALPN. Nécessite sgcCustomIndy.
Client gRPCTsgcGRPCClientOuiClient gRPC bâti sur le client HTTP/2 : RPC unaires, en streaming serveur, en streaming client et bidirectionnels. Nécessite sgcCustomIndy.
Google Cloud Pub/SubTsgcHTTPGoogleCloud_PubSub_ClientNon, pur codeAPI REST Google Cloud Pub/Sub : sujets, abonnements, instantanés, publication et récupération. HTTPS pur sur le Core.
Google Cloud CalendarTsgcHTTPGoogleCloud_Calendar_ClientNon, pur codeAPI Google Calendar v3 : agendas et événements, création, modification, liste, suppression. HTTPS pur sur le Core.
Google Cloud FCMTsgcHTTPGoogleCloud_FCM_ClientNon, pur codeAPI HTTP v1 Firebase Cloud Messaging : envoie une charge utile de notification push en un seul appel. HTTPS pur sur le Core.

Points d'accès, fichiers statiques, sessions

TsgcHTTPServer publie des points d'accès HTTP et des fichiers statiques depuis ta propre application. C'est le même moteur que le serveur WebSocket de sgcWebSockets, sans la partie WebSocket, et il est livré avec le runtime Core inclus.

CapacitéAPINotes
ÉcoutePort, Bindings, ActiveRègle le port, ou lie des adresses précises, puis active le serveur.
RequêtesOnCommandGet, OnCommandOtherChaque requête arrive dans ton code avec ses objets de requête et de réponse. OnCommandOther couvre les verbes comme PUT et DELETE.
Fichiers statiquesDocumentRootRenvoie les fichiers statiques du dossier vers lequel tu le pointes.
CompressionHTTPCompressionOptions de compression des réponses.
ConnexionsKeepAlive, MaxConnectionsGarde les connexions ouvertes entre les requêtes, et plafonne le nombre de connexions ouvertes en même temps.
SessionsSessionState, AutoStartSession, SessionTimeOut, OnSessionStart, OnSessionEndSessions côté serveur avec un délai d'expiration, plus des événements de début et de fin.
Limites de requêteMaxRequestBodySizePlafonne la taille d'un corps de requête.
UploadsHTTPUploadFilesEnregistre les fichiers uploadés dans un répertoire de ton choix.
TLSSSL, SSLOptionsSers du HTTPS avec ton propre certificat.
AuthentificationAuthentication, OnAuthenticationValide les identifiants dans ton propre code avant qu'une requête soit servie.
ThreadsThreadPool, ThreadPoolOptionsRéutilise les threads de travail d'un pool au lieu d'en créer un par connexion.
RuntimesgcWebSockets CoreDéclaré dans l'unité sgcHTTP_Server du runtime Core inclus, sur la page de palette SGC HTTP.

Requêtes multiplexées, HPACK, ALPN

TsgcHTTP2Client parle HTTP/2 (RFC 9113) sur une seule connexion TLS, négociée avec ALPN, c'est pourquoi il est bâti sur sgcCustomIndy.

CapacitéAPINotes
ConnexionHost, Port, ActiveUne seule connexion TLS porte chaque flux de requête multiplexé.
Connexion initialeConnect, ConnectAsyncOuvre la connexion et émet une requête optionnelle dans le même appel.
LectureGet, GetAsyncAppel synchrone ou tir-et-oublie avec la réponse délivrée par événement.
ÉcriturePost, PostAsync, Put, PutAsync, Patch, PatchAsyncLes corps de requête sont des flux, les envois n'ont donc pas à tenir en mémoire.
Delete et OptionsDelete, DeleteAsync, Options, OptionsAsyncLe reste du jeu de verbes HTTP, avec la même paire synchrone/async.
RéponsesOnHTTP2ResponseDélivre ensemble les objets requête et réponse, y compris Response.DataString et le statut.
Corps fragmentésOnHTTP2ResponseFragmentSe déclenche à l'arrivée de chaque fragment d'une réponse fragmentée, avant l'OnHTTP2Response final.
Push serveurOnHTTP2PushPromiseExpose les ressources poussées par le serveur HTTP/2 à leur arrivée.
Cycle de vie de la connexionOnHTTP2Connect, OnHTTP2Disconnect, OnHTTP2GoAway, OnHTTP2RSTStreamLes signaux de connexion, déconnexion et réinitialisation de flux définis par HTTP/2.
RéglagesHTTP2Options, SettingsLes valeurs de la trame SETTINGS HTTP/2 locale envoyées au pair.
FiabilitéWatchDog, HeartBeat, ThrottleReconnexion automatique, maintien de connexion et limitation de débit, partagés avec le reste de la pile HTTP sgc.
Authentification et TLSAuthentication, TLSOptions, OnHTTP2AuthorizationSchémas d'authentification standards et configuration TLS, plus un point d'accroche pour des en-têtes d'autorisation personnalisés.
DépendancesgcCustomIndyALPN négocie le protocole h2 pendant la poignée de main TLS ; la bibliothèque Indy standard ne peut pas le faire.

Streaming unaire, serveur, client et bidirectionnel

TsgcGRPCClient transporte des charges utiles Protocol Buffers sur les flux multiplexés du client HTTP/2, il couvre donc les quatre formes d'appel gRPC.

CapacitéAPINotes
TransportClientUne instance TsgcHTTP2Client ; le client gRPC repose dessus plutôt que d'ouvrir sa propre connexion.
RPC unaireCall, CallAsync, CallStringUne requête, une réponse. Call bloque et renvoie un TsgcGRPCResponse ; CallAsync la délivre via OnGRPCResponse.
Streaming serveurServerStreamingCallUne requête, un flux de réponses délivrées via OnGRPCStreamMessage jusqu'à OnGRPCStreamEnd.
Streaming clientOpenClientStream, SendStreamMessage, CloseClientStream, CloseClientStreamAsyncUn flux de requêtes, une réponse finale à la fermeture du flux.
Streaming bidirectionnelOpenBidiStream, SendBidiMessage, CloseBidiStreamLes deux côtés diffusent indépendamment sur le même appel.
AnnulationCancelCallAnnule un appel en cours par son identifiant de flux.
RéponsesOnGRPCResponse, OnGRPCStreamMessage, OnGRPCStreamEndTsgcGRPCResponse porte StatusCode, Data/DataString, Headers et Trailers.
ErreursOnGRPCError, OnGRPCExceptionErreurs de code de statut gRPC et exceptions de niveau transport, délivrées séparément.
MétadonnéesDefaultMetadata, OnGRPCBeforeRequestEn-têtes de métadonnées gRPC par appel et par défaut.
RésilienceRetryPolicy, Interceptors, ServiceConfigComportement de réessai, chaîne d'intercepteurs transversale et configuration de service, sans toucher aux points d'appel individuels.
ObservabilitéMetricsCollectorCollecte les métriques d'appel du client.
DépendancesgcCustomIndyHéritée du client HTTP/2 sur lequel il est bâti ; ALPN est requis de la même façon.

Pub/Sub, Calendar et notifications push

Trois classes pur code, authentifiées avec un compte de service Google et atteintes en HTTPS pur. Aucune n'a besoin de sgcCustomIndy.

CapacitéAPINotes
AuthentificationGoogleCloudOptions.JWT, OnAuthToken, OnAuthTokenErrorJWT de compte de service : id de projet, e-mail client et clé privée. Forme partagée par les trois clients.
Pub/Sub : publier et récupérerPublish, Pull, Acknowledge, SeekTsgcHTTPGoogleCloud_PubSub_Client. Envoie des messages vers un sujet, récupère et accuse réception depuis un abonnement.
Pub/Sub : sujetsCreateTopic, DeleteTopic, GetTopic, ListTopicsGère les sujets directement depuis le code.
Pub/Sub : abonnementsCreateSubscription, DeleteSubscripton, ListSubscriptions, ModifyAckDeadlineSubscriptionCycle de vie complet de l'abonnement, y compris les changements de délai d'accusé de réception et de configuration push.
Pub/Sub : instantanésCreateSnapshot, DeleteSnapshot, ListSnapshotsCapture l'état d'accusé de réception d'un abonnement pour une relecture ultérieure.
Calendar : agendasNewCalendar, UpdateCalendar, DeleteCalendar, LoadCalendarsTsgcHTTPGoogleCloud_Calendar_Client. Encapsule la liste d'agendas de l'API Google Calendar v3.
Calendar : événementsNewEvent, UpdateEvent, DeleteEvent, LoadEventsCrée, modifie et supprime des événements sur un agenda donné.
Calendar : synchronisationLoadCalendarsChanged, LoadEventsChanged, OnGetCalendar, OnGetCalendarEventPoints d'accroche de synchronisation incrémentale pour les agendas et événements modifiés depuis la dernière synchronisation.
FCM : pushSendMessageTsgcHTTPGoogleCloud_FCM_Client. Un seul appel envoie une charge utile Firebase Cloud Messaging v1 à un projet.
TLS et journalisationTLSOptions, LogFilePartagés par les trois clients Google Cloud.

API, compilateurs et cibles

Des standards publics sur le fil, et le même source sur chaque compilateur pris en charge.

DomaineDétail
Serveur HTTPRequêtes et réponses HTTP, fichiers statiques, sessions et HTTPS avec TsgcHTTPServer.
HTTP/2RFC 9113, avec compression d'en-têtes HPACK et négociation de protocole ALPN.
gRPCCharges utiles Protocol Buffers sur des flux HTTP/2, selon le protocole de câble gRPC.
Google CloudL'API REST Pub/Sub, l'API Google Calendar v3, et l'API HTTP v1 Firebase Cloud Messaging, toutes authentifiées avec un compte de service Google.
PlateformesWindows Win32, Windows Win64, Linux64, macOS, iOS et Android pour les cinq classes.
DépendanceLes clients HTTP/2 et gRPC ont besoin de sgcCustomIndy pour ALPN. Les clients Google Cloud n'ont besoin que du runtime Core inclus.
CompilateursDelphi et C++ Builder 7 à 13.
ÉditionsHTTP/2 et gRPC sont aussi livrés dans sgcWebSockets à partir d'Enterprise, et les clients Google Cloud à partir de Standard. Le serveur HTTP fait partie du runtime Core, toutes les éditions de sgcWebSockets l'incluent donc aussi.
LicenceAutonome. Le runtime sgcWebSockets Core est inclus et le code source complet est fourni.
Meilleur rapport qualité-prix : All-AccessTous les produits eSeGeCe, Support Premium inclus, à partir de €1,059/an.
Voir les tarifs All-Access

Construis avec sgcHTTP

Télécharge l'essai gratuit, publie ton premier point d'accès HTTP et effectue ton premier appel HTTP/2 ou gRPC depuis Delphi ou C++ Builder.