Google ha avvertito della disattivazione del supporto alla tecnologia Server Push nella versione 106 di Chrome, prevista per il 27 settembre. Le modifiche riguarderanno anche altri browser basati sul codice di Chromium. La tecnologia Server Push è definita negli standard HTTP/2 e HTTP/3, e consente al server di inviare risorse al client senza attendere una richiesta esplicita. Si prevede che in questo modo il server possa accelerare il caricamento della pagina, poiché i file necessari per il rendering della pagina, come CSS, script e immagini, saranno già stati trasferiti al momento della richiesta del client.
La causa dell'interruzione del supporto è attribuita alla crescente complessità nell'implementazione della tecnologia, a fronte di alternative più semplici e altrettanto efficaci, come il tag , che consente al browser di richiedere una risorsa senza aspettare il suo utilizzo sulla pagina. Da un lato, preload può comportare uno scambio eccessivo di pacchetti (RTT) rispetto a Server Push, ma dall'altro permette di evitare l'invio di risorse già presenti nella cache del browser. Nel complesso, le differenze nei tempi di latenza tra l'uso di Server Push e preload sono state ritenute trascurabili.
Per avviare il caricamento anticipato dal lato server si consiglia di utilizzare il codice di risposta HTTP 103, che consente di informare il client sul contenuto di alcuni intestazioni HTTP subito dopo la richiesta, senza attendere che il server esegua tutte le operazioni associate alla richiesta e inizi a fornire il contenuto. In questo modo è possibile comunicare suggerimenti sugli elementi correlati alla pagina restituita, che possono essere caricati in anticipo (ad esempio, possono essere forniti i link ai CSS e JavaScript utilizzati nella pagina). Ricevendo informazioni su tali risorse, il browser può iniziare a caricarle senza attendere il completamento della fornitura della pagina principale, riducendo così il tempo totale di elaborazione della richiesta.
Oltre all'ottimizzazione del caricamento delle risorse, il meccanismo Server Push poteva anche essere utilizzato per lo streaming di dati dal server al cliente, ma per questi scopi il consorzio W3C sta sviluppando il protocollo WebTransport. Il canale di comunicazione in WebTransport è organizzato sopra HTTP/3 utilizzando come trasporto il protocollo QUIC. WebTransport offre funzionalità avanzate come la gestione della trasmissione su più flussi, flussi unidirezionali, consegna senza considerazione dell'ordine di invio dei pacchetti (out-of-order), modalità di consegna affidabili e non affidabili.
Secondo le statistiche di Google, la tecnologia Server Push non ha avuto una diffusione adeguata. Anche se Server Push è presente nella specifica di HTTP/3, nella pratica molti prodotti software server e client, incluso il browser Chrome, inizialmente non lo hanno implementato. Nel 2021, circa l'1,25% dei siti che operavano su HTTP/2 utilizzavano Server Push. Quest'anno, questa percentuale è scesa allo 0,7%.
Fonte: opennet.ru
