Richieste | HTTP/2 Server Push

Server Push è la capacità del server di inviare più risposte a una singola richiesta del client. Oltre alla risposta alla richiesta originale, il server può inviare risorse aggiuntive al client senza che questi debba richiederle esplicitamente.

 

 

Ogni volta che il server invia al client un messaggio PushPromise, viene chiamato l'evento OnHTTP2PushPromise. Quando il client riceve un PushPromise, significa che il server invierà questa risorsa nei pacchetti successivi, quindi il client può accettarla o rifiutarla.

 


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;