TsgcWebSocketHTTPServerメソッド › PushPromiseAddPreLoadLinks

PushPromiseAddPreLoadLinks メソッド

一致するリクエストパスが提供されるたびに関連リソースセットをプリロードする HTTP/2 サーバープッシュルールを登録します。

構文

procedure PushPromiseAddPreLoadLinks(const aPathMatch: String; const aLinks: TStrings);

パラメータ

名前タイプ説明
aPathMatchconst Stringプッシュをトリガーするリクエストパス(例: /index.html)。クライアントが HTTP/2 でこのリソースをリクエストすると、サーバーはそれに登録されたリンクもプッシュします。
aLinksconst TStringsプッシュするリソースパスのリスト(1 行につき 1 つ)。スタイルシート、スクリプト、プライマリドキュメントが参照する画像などを、一致するリクエストと一緒にプッシュします。

解説

PushPromiseAddPreLoadLinks は、内部の HTTP/2 プッシュプロミステーブルに新しいエントリを追加します。HTTP/2 クライアントが aPathMatch で指定されたパスをリクエストするたびに、サーバーはメインレスポンスの前に aLinks 内の各リンクに対して PUSH_PROMISE フレームを発行します。これにより、クライアントは追加のラウンドトリップなしにキャッシュを事前に準備できます。詳細については HTTP/2 Server Push を参照してください。リストはコピーされるため、呼び出し後に指定した TStrings を解放しても問題ありません。プッシュプロミスは ALPN 経由でネゴシエートされた HTTP/2 接続でのみ有効です。HTTP/1.1 クライアントはプロミスされたリソースなしにメインレスポンスを受け取ります。ルールを削除するには PushPromiseRemovePreLoadLinks を呼び出してください。

使用例


oServer := TsgcWebSocketHTTPServer.Create(nil);
oLinks := TStringList.Create;
try
  oLinks.Add('/styles.css');
  oServer.PushPromiseAddPreLoadLinks('/index.html', oLinks);
finally
  oLinks.Free;
end;

メソッドに戻る