TsgcWebSocketHTTPServer › Methods › PushPromiseAddPreLoadLinks
Registriert eine HTTP/2-Server-Push-Regel, die eine Reihe verwandter Ressourcen vorlädt, sobald ein passender Anfragepfad bedient wird.
procedure PushPromiseAddPreLoadLinks(const aPathMatch: String; const aLinks: TStrings);
| Name | Typ | Beschreibung |
|---|---|---|
aPathMatch | const String | Anfragepfad, der den Push auslöst, zum Beispiel /index.html. Wenn ein Client diese Ressource über HTTP/2 anfordert, pusht der Server auch die dafür registrierten Links. |
aLinks | const TStrings | Liste von Ressourcenpfaden (einer pro Zeile), die zusammen mit der übereinstimmenden Anforderung gepusht werden, wie etwa Stylesheets, Skripte oder Bilder, auf die das primäre Dokument verweist. |
PushPromiseAddPreLoadLinks hängt einen neuen Eintrag an die interne HTTP/2-Push-Promise-Tabelle an. Wann immer ein HTTP/2-Client den durch aPathMatch angegebenen Pfad anfordert, gibt der Server für jeden Link in aLinks einen PUSH_PROMISE-Frame vor der Hauptantwort aus, sodass der Client seinen Cache befüllen kann, ohne zusätzliche Round-Trips auszugeben; siehe HTTP/2 Server Push für den vollständigen Workflow. Die Link-Liste wird kopiert, sodass es dem Aufrufer freisteht, die bereitgestellten TStrings nach dem Aufruf freizugeben. Push Promise wird nur auf HTTP/2-Verbindungen berücksichtigt, die über ALPN ausgehandelt wurden; HTTP/1.1-Clients erhalten die Hauptantwort ohne die zugesagten Ressourcen. Rufen Sie PushPromiseRemovePreLoadLinks auf, um die Regel zu verwerfen.
oServer := TsgcWebSocketHTTPServer.Create(nil);
oLinks := TStringList.Create;
try
oLinks.Add('/styles.css');
oServer.PushPromiseAddPreLoadLinks('/index.html', oLinks);
finally
oLinks.Free;
end;