TsgcWebSocketHTTPServer › メソッド › 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/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;