HTTP/3 クライアント
TsgcHTTP3Client — QPACK ヘッダー圧縮、Alt-Svc によるディスカバリー、サーバープッシュ、Extended CONNECT トンネル、WebTransport セッションに対応し、QUIC 上でリクエストを送信する HTTP/3 クライアント(RFC 9114)です。おなじみの HTTP セマンティクスを、新しいトランスポート上で、Delphi、C++ Builder、.NET から利用できます。
TsgcHTTP3Client — QPACK ヘッダー圧縮、Alt-Svc によるディスカバリー、サーバープッシュ、Extended CONNECT トンネル、WebTransport セッションに対応し、QUIC 上でリクエストを送信する HTTP/3 クライアント(RFC 9114)です。おなじみの HTTP セマンティクスを、新しいトランスポート上で、Delphi、C++ Builder、.NET から利用できます。
ホストとポートに接続し、すでに使い慣れたメソッドでリクエストを発行します。QPACK、Alt-Svc、プッシュ、WebTransport はメソッドとイベントとして公開されます。OpenSSL 3.5 のネイティブ QUIC エンジン上に構築されています。
ホストとポートに接続し、リクエストを発行します。デフォルトポートは 443 です。ヘッダーは QPACK で圧縮され、OnAltSvc は HTTP/3 がアドバタイズされたタイミングを知らせます。
uses
sgcHTTP3_Client;
var
oClient: TsgcHTTP3Client;
vBody: string;
begin
oClient := TsgcHTTP3Client.Create(nil);
oClient.OnResponse := OnResponseHandler;
oClient.OnAltSvc := OnAltSvcHandler;
oClient.Connect('www.example.com', 443);
vBody := oClient.Get('https://www.example.com/'); // QPACK-compressed request
oClient.Disconnect;
end;
// WebTransport session over HTTP/3 (RFC 9220):
oClient.WebTransportConnect('https://www.example.com/wt');
// includes: sgcHTTP3_Client.hpp
TsgcHTTP3Client *oClient = new TsgcHTTP3Client(NULL);
oClient->OnResponse = OnResponseHandler;
oClient->OnAltSvc = OnAltSvcHandler;
oClient->Connect("www.example.com", 443);
String vBody = oClient->Get("https://www.example.com/"); // QPACK-compressed request
oClient->Disconnect();
// WebTransport session over HTTP/3 (RFC 9220):
oClient->WebTransportConnect("https://www.example.com/wt");
using esegece.sgcWebSockets;
var oClient = new TsgcHTTP3Client();
oClient.OnResponse += OnResponseHandler;
oClient.OnAltSvc += OnAltSvcHandler;
oClient.Connect("www.example.com", 443);
var vBody = oClient.Get("https://www.example.com/"); // QPACK-compressed request
oClient.Disconnect();
// WebTransport session over HTTP/3 (RFC 9220):
oClient.WebTransportConnect("https://www.example.com/wt");
最もよく使うメンバー。
Get、Head、Post、Put、Delete、その他のメソッド(IETF の QUERY メソッドを含む)はブロッキング呼び出しとして実行でき、多くには非同期版もあります。
Connect(aHost, aPort) と Disconnect が QUIC コネクションを開閉します。Host と Port は現在の接続先を返します。
OnAltSvc は HTTP/3 の可用性を知らせます。SetMaxPushId、OnPushPromise、OnPush がサーバープッシュを制御します。
ExtendedConnect、TunnelSend、OnTunnelData が RFC 9220 トンネルを扱います。WebTransportConnect は WebTransport セッションを開きます。
UserAgent、ConnectTimeout、ReadTimeout、MaxResponseSize でクライアントを調整します。
OnResponse、OnError、OnConnect、OnDisconnect、OnGoAway が、レスポンスとコネクションのライフサイクルを報告します。