Requisições | HTTP/2 Server Push

Server Push é a capacidade do servidor de enviar múltiplas respostas para uma única requisição do cliente. Ou seja, além da resposta à requisição original, o servidor pode enviar via push recursos adicionais ao cliente, sem que o cliente tenha que solicitar cada um explicitamente.

 

 

Cada vez que o servidor envia uma mensagem PushPromise ao cliente, o evento OnHTTP2PushPromise é chamado. Quando o cliente recebe um PushPromise, significa que o servidor enviará esse recurso nos próximos pacotes, então o cliente pode aceitá-lo ou rejeitá-lo.

 


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;