Solicitudes | HTTP/2 Server Push

Server Push es la capacidad del servidor de enviar múltiples respuestas a una única solicitud del cliente. Es decir, además de la respuesta a la solicitud original, el servidor puede enviar recursos adicionales al cliente sin que este tenga que solicitarlos explícitamente uno por uno.

 

 

Cada vez que el servidor envía al cliente un mensaje PushPromise, se llama al evento OnHTTP2PushPromise. Cuando el cliente recibe un PushPromise, significa que el servidor enviará este recurso en los próximos paquetes, por lo que el cliente puede aceptarlo o rechazarlo.

 


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;