TsgcWebSocketLoadBalancerServerメソッド › PushPromiseAddPreLoadLinks

PushPromiseAddPreLoadLinks メソッド

一致するリクエストパスがロードバランサーによって処理されるたびに、関連するリソースセットをプリロードする HTTP/2 サーバープッシュルールを登録します。

構文

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

パラメータ

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

解説

PushPromiseAddPreLoadLinks は、ロードバランサーとバックアップ HTTP サーバーが共有する内部 HTTP/2 プッシュプロミステーブルに新しいエントリを追加します。HTTP/2 クライアントが aPathMatch で指定されたパスをリクエストするたびに、リクエストを処理するノードは、クライアントが余分なラウンドトリップを発行せずにキャッシュを満たせるよう、メインレスポンスの前に aLinks の各リンクに対して PUSH_PROMISE フレームを発行します。完全なワークフローについては HTTP/2 サーバープッシュを参照してください。リンクリストはコピーされるため、呼び出し後に指定した TStrings を解放できます。プッシュプロミスは ALPN を通じてネゴシエートされた HTTP/2 接続でのみ受け付けられます。HTTP/1.1 クライアントはプロミスされたリソースなしにメインレスポンスを受け取ります。ルールを削除するには PushPromiseRemovePreLoadLinks を呼び出してください。

使用例


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

メソッドに戻る