TsgcHTTP3Client › イベント › OnAltSvc
サーバーが代替サービスを通知する Alt-Svc ヘッダーを返したときに発生します。
property OnAltSvc: TsgcAltSvcEvent;
// TsgcAltSvcEvent = procedure(Sender: TObject; const aEntries: TsgcAltSvcList) of object
| 名前 | タイプ | 説明 |
|---|---|---|
Sender | TObject | Alt-Svc ヘッダーを受信したクライアント。 |
aEntries | TsgcAltSvcList | 通知された代替サービスの解析済みリスト。各エントリは Protocol、Host、Port、MaxAge および Persist を公開します。 |
—
OnAltSvc は、レスポンスが alt-svc ヘッダー(RFC 7838)を持つときに発生します。このヘッダーを通じて、サーバーは同じオリジンが別のプロトコル、ホスト、またはポート経由でもアクセス可能であることを通知します(たとえば HTTP/2 接続中に検出された HTTP/3 エンドポイントなど)。ヘッダーは TsgcAltSvcList に解析され、各 TsgcAltSvcEntry は 1 つの代替サービスを記述します。ALPN の Protocol(h3 など)、Host と Port、秒単位の MaxAge 有効期限、および Persist フラグです。このイベントを使用して通知されたエンドポイントをキャッシュし、後続のリクエストをそこにルーティングしてください。clear(alt-svc: clear)ディレクティブはイベントを発生させません。
procedure OnAltSvcEvent(Sender: TObject; const aEntries: TsgcAltSvcList);
var
i: Integer;
begin
for i := 0 to High(aEntries) do
Log(aEntries[i].Protocol + ' @ ' + aEntries[i].Host + ':' + IntToStr(aEntries[i].Port));
end;