Żądania | HTTP/2 Server Push

Server Push to możliwość wysyłania przez serwer wielu odpowiedzi na jedno żądanie klienta. Oznacza to, że oprócz odpowiedzi na oryginalne żądanie serwer może wypychać do klienta dodatkowe zasoby bez konieczności jawnego żądania każdego z nich przez klienta.

 

 

Za każdym razem, gdy serwer wysyła do klienta wiadomość PushPromise, wywoływane jest zdarzenie OnHTTP2PushPromise. Gdy klient odbierze PushPromise, oznacza to, że serwer wyśle ten zasób w kolejnych pakietach, a klient może go zaakceptować lub odrzucić.

 


oClient := TsgcHTTP2Client.Create(nil);
oClient.OnHTTP2PushPromise := OnHTTP2PushPromiseEvent;
oClient.Get('https://http2.golang.org/serverpush');
...
procedure OnHTTP2PushPromiseEvent(Sender: TObject; const Connection: TsgcHTTP2ConnectionClient; 
  const PushPromise: TsgcHTTP2_Frame_PushPromise; var Cancel: Boolean);
begin
  if PushPromise.URL = '/serverpush/static/godocs.js' then
    Cancel := True
  else
    Cancel := False;
end;