TsgcWebSocketLoadBalancerServer › メソッド › PushPromiseAddPreLoadLinks
一致するリクエストパスがロードバランサーによって処理されるたびに、関連するリソースセットをプリロードする HTTP/2 サーバープッシュルールを登録します。
procedure PushPromiseAddPreLoadLinks(const aPathMatch: String; const aLinks: TStrings);
| 名前 | タイプ | 説明 |
|---|---|---|
aPathMatch | const String | プッシュをトリガーするリクエストパス(例: /index.html)。クライアントがHTTP/2でこのリソースを要求すると、ロードバランサーはそれに登録されたリンクもプッシュします。 |
aLinks | const 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;