HTTP/2 Client

Delphi/C++Builder 向けのネイティブ HTTP/2 クライアントコンポーネントです。多重化ストリーム、ヘッダー圧縮(HPACK)、OpenSSL または Windows SChannel による TLS、RFC 9113 の完全なフレーミングに対応しています。

TsgcHTTP2Client

ネイティブ HTTP/2 クライアントです。単一の TLS 接続上での多重化ストリーム、HPACK ヘッダー圧縮、事前知識または ALPN アップグレードに対応しており、IIS / Apache / Indy への依存はありません。

コンポーネントクラス

TsgcHTTP2Client

プロトコル

HTTP/2 (RFC 9113)

対応プラットフォーム

Windows, macOS, Linux, iOS, Android

エディション

Standard / Professional / Enterprise

コンポーネントを配置して GET / POST を実行する

フォームに TsgcHTTP2Client を配置し、IOHandler(OpenSSL または SChannel)を選択してから、ターゲット URL を指定して Get / Post / Put / Delete を呼び出してください。

uses
  sgcHTTP, sgcHTTP2;

var
  HTTP2: TsgcHTTP2Client;
begin
  HTTP2 := TsgcHTTP2Client.Create(nil);
  HTTP2.TLSOptions.IOHandler := iohSChannel; // or iohOpenSSL

  // Add custom headers
  HTTP2.Request.CustomHeaders.Add('authorization: Bearer eyJ...');

  // GET
  Memo1.Text := HTTP2.Get('https://api.example.com/v1/items');
  ShowMessage(IntToStr(HTTP2.Response.Status));
end;
// uses: sgcHTTP, sgcHTTP2
TsgcHTTP2Client *HTTP2 = new TsgcHTTP2Client(this);
HTTP2->TLSOptions->IOHandler = iohSChannel;

HTTP2->Request->CustomHeaders->Add("authorization: Bearer eyJ...");

Memo1->Text = HTTP2->Get("https://api.example.com/v1/items");

主な機能

sgcQUIC / sgcHTTP2 フレーミングエンジン上に構築された一級の HTTP/2 クライアントです。IIS / Apache / Indy への依存はありません。

ストリームの多重化

複数の GET / POST / PUT / DELETE 呼び出しが単一の TLS 接続を共有します。OnHTTP2StreamData でサーバープッシュのプロミスとストリームごとのイベントを処理できます。

HPACK ヘッダー圧縮

組み込みの HPACK エンコーダー/デコーダーを搭載しています。CustomHeaders はリクエストごとにダイナミックテーブルに対して圧縮されます。Cookie および認証ヘッダーはストリーム間で再利用されます。

TLS の選択

TLSOptions.IOHandleriohSChannel(Windows カーネル TLS、DLL 不要)または iohOpenSSL(クロスプラットフォーム)に設定してください。ALPN h2 ネゴシエーションはハンドシェイク時に行われます。

事前知識(Prior Knowledge)

h2c(平文上の HTTP/2)の場合は Specifications.HTTP2_PriorKnowledge を設定してください。サービスメッシュのサイドカーや信頼された内部リンクに役立ちます。

ベアラー / Basic / NTLM 認証

Authentication.TokenAuthentication.BasicAuthentication.NTLM が一般的なスキームを処理します。TsgcHTTP_JWT_Client と組み合わせて JWT を生成・リフレッシュできます。

Apple Push・FCM 対応

同じコンポーネントで Apple Push Notification の HTTP/2 エンドポイントと Firebase Cloud Messaging V1 も利用できます。型付きの接続方法については各ページをご参照ください。

仕様・参考資料

このコンポーネントが実装するプロトコルの公式ソースです。

ドキュメント・デモ

コンポーネントリファレンスへの直接リンク、すぐに実行できるデモプロジェクトの入手、体験版のダウンロードができます。

オンラインヘルプ — TsgcHTTP2Client このコンポーネントのプロパティ、メソッド、イベントの完全なリファレンスです。
デモプロジェクト — Demos\20.HTTP_Protocol\01.HTTP2_Server_And_Client すぐに実行できるサンプルプロジェクトです。sgcWebSockets パッケージに同梱されています。以下から体験版をダウンロードできます。
技術ドキュメント (PDF) このコンポーネントの機能、クイックスタート、Delphi および C++ Builder 向けのコードサンプル、一次資料のリファレンスを掲載しています。
ユーザーマニュアル (PDF) ライブラリのすべてのコンポーネントを網羅した総合マニュアルです。

Delphi で HTTP/2 を採用してみませんか?

体験版をダウンロードして、Delphi アプリケーションに多重化された HTTP/2 通信を追加してください。