HTTP サーバー
TsgcHTTPServer は、ご自身のアプリケーションから HTTP エンドポイントを公開します。 Port を設定し、 OnCommandGet を処理して、 Active を有効にすれば、すべてのリクエストがコードに届きます。 OnCommandOther は PUT や DELETE などのメソッドに対応します。同梱の Core ランタイムに含まれています。
HTTP サーバー 1 つと 5 つのクライアントコンポーネントです。 TsgcHTTPServer は、ご自身のアプリケーションから HTTP エンドポイントと静的ファイルを公開します。 TsgcHTTP2Client は、1 つの TLS 接続上で多重化されたストリームと HPACK ヘッダー圧縮により HTTP/2 を話します。 TsgcGRPCClient は、その上に構築された gRPC クライアントで、Protocol Buffers によるユナリ呼び出しとストリーミング呼び出しに対応します。さらに 3 つのクラスが通常の HTTPS で Google Cloud(Pub/Sub、Calendar、Firebase Cloud Messaging)に接続します。
ナレーションと字幕付きのクイックスタート: HTTP/2 クライアントが 1 つの接続で多数のリクエストを送信し、続いて同じトランスポート上で gRPC 呼び出しを行います。すべて Delphi から実行します。再生ボタンを押すまで何もダウンロードされません。
Delphi から HTTP/2 エンドポイントを呼び出し、gRPC 呼び出しを行います。
両コンポーネントは sgcHTTP ユニットで宣言されており、 TsgcGRPCClient は、独自の HTTP/2 接続を Client プロパティを通じて持ちます。

TsgcHTTP2Client は HTTP/2(RFC 9113)を話します。複数のリクエストが独立したストリームとして 1 つの TCP 接続を共有します。ヘッダーは HPACK で圧縮され、 h2 プロトコルは TLS ハンドシェイク中に ALPN で交渉されます。 Get、 Post、 Put、 Patch、 Delete と Optionsまで、すべての動詞をカバーしており、それぞれ同期呼び出しと Async の対を備えています。

TsgcGRPCClient は多重化された接続を引き継ぎ、その上に gRPC のワイヤーフォーマットを追加します。 Call と CallAsync が単項 RPC をカバーし、 ServerStreamingCall が 1 つのリクエストに対するレスポンスのストリームを処理し、 OpenClientStream と OpenBidiStream がクライアントストリーミングと双方向ストリーミングを担当します。 RetryPolicy、 Interceptors と ServiceConfig が、呼び出し箇所に手を加えることなくリトライ動作と横断的なロジックを追加します。
5 つのクラスは、土台に何を必要とするかで明確に分かれます。HTTP/2 と gRPC は ALPN を必要とし、それはつまり sgcCustomIndy が必要ということです。Google Cloud は HTTPS とサービスアカウント以上のものを必要とせず、それは同梱の Core ランタイムがすでに提供しています。HTTP サーバーは、そのランタイム自体に含まれています。
TsgcHTTPServer は、ご自身のアプリケーションから HTTP エンドポイントを公開します。 Port を設定し、 OnCommandGet を処理して、 Active を有効にすれば、すべてのリクエストがコードに届きます。 OnCommandOther は PUT や DELETE などのメソッドに対応します。同梱の Core ランタイムに含まれています。
DocumentRoot をフォルダーに指定すると、サーバーはそこから静的ファイルを返します。 HTTPUploadFiles はアップロードされたファイルをディスクに保存し、 MaxRequestBodySize はリクエスト本文のサイズを制限します。 HTTPCompression と KeepAlive は、レスポンスを小さく保ち、接続を維持します。
SSL と SSLOptions で TLS を有効にし、 Authentication と OnAuthentication でエンドポイントを保護し、 SessionState でセッションを追跡し、 ThreadPool と MaxConnections でスケーラビリティを制御します。WebSocket サーバーと同じエンジンから、WebSocket の部分を除いたものです。
TsgcHTTP2Client は 1 つの TLS 接続上で独立したストリームを多重化し、ヘッダーを HPACK で圧縮し、 h2 プロトコルを ALPN で交渉します。 Connect、 Get、 Post、 Put、 Patch、 Delete と Options。同期呼び出しと Async。
TsgcGRPCClient は HTTP/2 クライアントの上で動作します。HTTP/2 ストリーム上で長さプレフィックス付きの Protocol Buffers メッセージを送受信し、ユナリ、サーバーストリーミング、クライアントストリーミング、双方向の各 RPC に加え、リトライポリシーとインターセプターにも対応します。
TsgcHTTPGoogleCloud_PubSub_Client、 TsgcHTTPGoogleCloud_Calendar_Client と TsgcHTTPGoogleCloud_FCM_Client は、Google サービスアカウントで認証して Pub/Sub、Calendar、Firebase Cloud Messaging に接続します。いずれも sgcCustomIndy は不要です。
イベントが接続のライフサイクルを伝えます。 OnHTTP2Connect、 OnHTTP2Response、 OnHTTP2ResponseFragment 、サーバープッシュ向けの OnHTTP2PushPromise 、 OnHTTP2GoAway と OnHTTP2Disconnectです。ストリームのライフサイクルは、何も隠されていません。
HTTP/2 クライアントと gRPC クライアントは sgcCustomIndy の上に構築されており、対応プラットフォームは sgcWebSockets 本体と同じ範囲です。Google Cloud クライアントは通常の HTTPS を使うため、Core ランタイムが動作する環境ならどこでも動作します。Delphi 7 から RAD Studio 13、および C++ Builder に対応します。
すべてのライセンスに HTTP サーバー、5 つのクライアント、同梱ランタイムの完全なソースコードが付属するため、ワイヤーレベルの実装を自分のデバッガでステップ実行できます。配布はロイヤリティフリーです。
コンポーネントを作成し、ポートを設定するかホストを指定して、イベントを接続すれば準備完了です。同じコードが Delphi 7~13 と 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;
Object Pascal でも C++ Builder でも同じ形です。 完全な機能マトリックス →
sgcHTTP が求めるもの、そして求めないものです。どちらの答えも短く、細かい注記の中ではなく、このページに書いてあります。
client needs sgcCustomIndy
TsgcHTTPServer no, ships with the Core runtime
TsgcHTTP2Client yes, for ALPN
TsgcGRPCClient yes, rides on TsgcHTTP2Client
TsgcHTTPGoogleCloud_PubSub_Client no, plain HTTPS
TsgcHTTPGoogleCloud_Calendar_Client no, plain HTTPS
TsgcHTTPGoogleCloud_FCM_Client no, plain HTTPS
HTTP/2 negotiates h2 with ALPN during the TLS handshake.
The standard Indy library that ships with RAD Studio
has no ALPN support, so both HTTP/2 and gRPC are built
on sgcCustomIndy instead.
sgcWebSockets Core ランタイムが含まれます。HTTP サーバー、すべてのクライアントがリクエストを送信する HTTP/TLS クライアントスタックと、Google Cloud のレスポンスをデコードする JSON レイヤーです。インストーラーは 1 つ、完全なソースコードも同梱されています。
標準の Indy ライブラリは ALPN の交渉に対応していないため、 TsgcHTTP2Client と、その延長にある TsgcGRPCClient は、代わりに sgcCustomIndy の上に構築されています。sgcHTTP を注文すると常に含まれ、表示されている価格にすでに含まれています。
3 つの Google Cloud クライアントは、Google サービスアカウントのプロジェクト ID、クライアントメール、秘密鍵で認証を行い、Core ランタイムの素の HTTPS スタック上で REST API を呼び出します。ネイティブライブラリも sgcCustomIndy も不要です。
sgcHTTP は、Delphi 7 から RAD Studio 13 まで、そして C++ Builder をターゲットにしています。同じコンポーネントは sgcWebSockets Enterprise にも含まれているため、既存の Enterprise または All-Access ライセンスですでにカバーされている場合があります。体験版インストーラーは sgcWebSockets All-Access の体験版なので、5 つのクラスすべてを今すぐ評価できます。
sgcHTTP はベンダー SDK をラップするのではなく、公開された HTTP/2、gRPC、Google Cloud REST の仕様を直接実装しているため、ストリーム、ヘッダー、RPC、プッシュ通知はすべて第一級のメソッドとイベントであり、完全なソースコードにより、その間に何もブラックボックスは存在しません。
sgcHTTP は土台となる sgcWebSockets Core ランタイムを同梱しており、HTTP/2 と gRPC に必要な sgcCustomIndy アドオンも常に含まれます。すべてのライセンスに完全なソースコードが付属し、配布はロイヤリティフリーです。
開発者ライセンス 1 つ。一度に 1 台のマシンで使用できます。
開発者ライセンス 2 つ。一度に 2 台のマシンで使用できます。
開発者数無制限。会社のすべてのマシンで使用できます。
Delphi と C++ Builder 向けの HTTP/2、gRPC、Google Cloud クライアントコンポーネントで、sgcWebSockets Core ランタイムを同梱しています。すでに sgcWebSockets Enterprise をお使いですか?同じコンポーネントがそちらにも含まれています。
価格とライセンスを見る世界中の Delphi、C++ Builder、Lazarus、.NET 開発者から信頼されています。
sgcWebSockets ライブラリはとても便利でセットアップも簡単です。これからも頑張ってください!
sgcWebSockets は素晴らしく、サポートも最高です!
ご支援とサポートに本当に感謝しています。コンポーネントが大好きです。
多重化された HTTP/2、ストリーミング gRPC、そして 3 つの Google Cloud クライアントを 1 つに。sgcWebSockets Core ランタイムを同梱し、完全なソースコードも同梱済みです。
sgcHTTP は、Delphi、C++ Builder、.NET 向けの他の eSeGeCe コンポーネントライブラリと規約を共有しています。いずれも完全なソースコード付きで、配布はロイヤリティフリーです。
Delphi、C++ Builder、Lazarus、.NET 向けの WebSocket、HTTP/2、MQTT、AMQP、WebRTC、AI、そして 30 を超える API 統合。Enterprise エディションには gRPC も含まれています。
Delphi と C++ Builder 向けの REST サーバー、OpenAPI サーバー、OpenAPI クライアントのコンポーネントです。OpenAPI 3.x の契約から REST API を公開したり、OpenAPI で記述された任意の API を利用したりできます。
Delphi と C++ Builder 向けの OAuth2 クライアント、JWT クライアント、WebAuthn 対応。単体製品で、sgcWebSockets Core ランタイムを同梱しています。
Delphi と C++ Builder 向けの MQTT、AMQP 0.9.1 および 1.0、Apache Kafka、STOMP のクライアントコンポーネント。単体製品で、sgcWebSockets Core ランタイムを同梱しています。
Delphi と C++ Builder 向けの Telegram および WhatsApp Business のクライアントコンポーネント。単体製品で、sgcWebSockets Core ランタイムを同梱しています。
Delphi と C++ Builder 向けの AI、LLM、MCP コンポーネント。1 つのコンポーネントの背後に 7 つの LLM プロバイダー、さらに MCP、埋め込み、音声。
Delphi、C++ Builder、.NET 向けの、Bootstrap 5 と htmx を基盤とするサーバーサイド HTML / UI コンポーネントです。
生の QUIC トランスポートと HTTP/3 のクライアントおよびサーバー、WebTransport 対応。sgcWebSockets Enterprise のアドオンです。
OpenAPI 3.x パーサー、ネイティブ Pascal SDK ジェネレーター、OpenAPI サーバーコンポーネント、そして 1,195 以上のビルド済みクラウド SDK。
ドキュメントには XAdES、PAdES、CAdES、ASiC、コードには Authenticode、ClickOnce、NuGet、VSIX。
PDF ファイルの作成、編集、表示、署名、墨消し、検証を純粋な Object Pascal で提供します。DLL の配布は不要で、単体でライセンスされます。
Delphi と C++ Builder 向けの Windows Hello、指紋センサー、Windows Biometric Framework。
モダンな TLS、IPv6、HTTP/2 に対応した更新版 Indy TCP/IP コンポーネント。Delphi 7 から 13 まで対応します。