TsgcHTTP3Server › メソッド › SendResponse

SendResponse メソッド

リクエストストリーム上で HTTP/3 レスポンス(HEADERS および DATA フレーム)を送信します。

構文

procedure SendResponse(const aQUICConn: TsgcQUICServerConnection; aStreamId: Int64; const aResponse: TsgcHTTP3Response);

パラメータ

名前タイプ説明
aQUICConnconst TsgcQUICServerConnectionレスポンスが書き込まれる QUIC 接続。
aStreamIdInt64レスポンスが属するリクエストストリームの識別子。
aResponseconst TsgcHTTP3Response送信するレスポンス。呼び出す前に StatusCode、ContentType、オプションの Headers および Data ボディを設定してください。

解説

SendResponse は、レスポンスヘッダーを QPACK でエンコードして HEADERS フレームに変換し、レスポンスにボディがある場合は DATA フレームを追加して、QUIC 経由でリクエストストリームに書き込みます。ステータスコードは :status 疑似ヘッダーで送信され、ボディが存在する場合は content-length ヘッダーが自動的に追加されます。

通常のリクエストフローでは SendResponse を呼び出す必要はありません。サーバーは TsgcHTTP3Response(StatusCode のデフォルトは 200)を作成し、アプリケーションが設定できるように OnH3Request を発生させ、その後自動的に送信します。SendResponse は、そのフロー外でレスポンスを生成する必要があるアドバンスシナリオ向けに公開されており、SendPush によっても内部で使用されます。

使用例


oResponse := TsgcHTTP3Response.Create;
try
  oResponse.StatusCode := 200;
  oResponse.ContentType := 'text/plain';
  oResponse.Data := TEncoding.UTF8.GetBytes('Hello HTTP/3');
  oServer.SendResponse(aConnection, aStreamId, oResponse);
finally
  oResponse.Free;
end;

メソッドに戻る