TsgcWebSocketLoadBalancerServer › Methoden › PushPromiseAddPreLoadLinks
Registreert een HTTP/2 Server Push-regel die een set gerelateerde resources voorlaadt wanneer een overeenkomend verzoekpad door de load balancer wordt bediend.
procedure PushPromiseAddPreLoadLinks(const aPathMatch: String; const aLinks: TStrings);
| Naam | Type | Beschrijving |
|---|---|---|
aPathMatch | const String | Verzoekpad dat de push activeert, bijvoorbeeld /index.html. Wanneer een client via HTTP/2 dit resource opvraagt, pusht de load balancer ook de geregistreerde koppelingen. |
aLinks | const TStrings | Lijst van resourcepaden (één per regel) die naast het overeenkomende verzoek worden gepusht, zoals stylesheets, scripts of afbeeldingen waarnaar het primaire document verwijst. |
PushPromiseAddPreLoadLinks voegt een nieuw item toe aan de interne HTTP/2-push-promise-tabel die door de load balancer wordt gedeeld met zijn back-up HTTP-servers. Telkens wanneer een HTTP/2-client het pad opvraagt dat is opgegeven via aPathMatch, stuurt het knooppunt dat het verzoek afhandelt een PUSH_PROMISE-frame voor elke koppeling in aLinks vóór de hoofdreactie, zodat de client zijn cache kan vullen zonder extra roundtrips; zie HTTP/2 Server Push voor de volledige workflow. De koppelingslijst wordt gekopieerd, zodat de aanroeper de meegeleverde TStrings na de aanroep vrij kan vrijgeven. Push-promise wordt alleen gehonoreerd op HTTP/2-verbindingen die via ALPN zijn onderhandeld; HTTP/1.1-clients ontvangen de hoofdreactie zonder de beloofde resources. Roep PushPromiseRemovePreLoadLinks aan om de regel te verwijderen.
oServer := TsgcWebSocketLoadBalancerServer.Create(nil);
oLinks := TStringList.Create;
try
oLinks.Add('/styles.css');
oServer.PushPromiseAddPreLoadLinks('/index.html', oLinks);
finally
oLinks.Free;
end;