L'azienda Google ha avvertito della disattivazione del supporto alla tecnologia Server Push nella versione di Chrome 106, prevista per il 27 settembre. Le modifiche riguarderanno anche altri browser basati sul codice sorgente 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 prefigge, in questo modo, di accelerare il caricamento della pagina, poiché i file CSS, gli script e le immagini necessari per il rendering della pagina saranno già stati trasmessi al client al momento della richiesta.
Tra le ragioni per la cessazione del supporto si menziona la eccessiva complessità nell'implementazione della tecnologia, in presenza di alternative più semplici e altrettanto efficaci, come il tag , tramite il quale il browser può richiedere una risorsa senza attendere il suo utilizzo nella pagina. Da un lato, il preload comporta uno scambio di pacchetti superfluo (RTT), ma dall'altro evita di inviare risorse già presenti nella cache del browser. In generale, le differenze nei ritardi tra l'uso di Server Push e preload sono state ritenute non significative.
Per avviare il caricamento predittivo dal lato server si propone di utilizzare il codice di risposta HTTP 103, che consente di informare il client sul contenuto di alcuni header HTTP immediatamente dopo la richiesta, senza attendere che il server completi tutte le operazioni legate alla richiesta e inizi a restituire il contenuto. In questo modo è possibile fornire suggerimenti su elementi correlati alla pagina restituita, che possono essere precedentemente caricati (ad esempio, possono essere forniti riferimenti ai CSS e JavaScript utilizzati nella pagina). Ricevendo informazioni su tali risorse, il browser può iniziare a caricarle senza attendere il completamento della restituzione 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 dei dati dal server al client, ma a questo scopo il consorzio W3C sta sviluppando il protocollo WebTransport. Il canale di comunicazione in WebTransport è organizzato sopra HTTP/3 utilizzando il protocollo QUIC come trasporto. WebTransport offre funzionalità avanzate come la gestione della trasmissione su più flussi, flussi unidirezionali, consegna senza tener conto 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 ricevuto un'adeguata diffusione. Anche se Server Push è presente nella specifica HTTP/3, nella pratica molti prodotti software server e client, incluso il browser Chrome, inizialmente non l'hanno implementato. Nel 2021, circa il 1,25% dei siti web che utilizzavano HTTP/2 ha fatto uso di Server Push. Quest'anno questa percentuale è scesa allo 0,7%.
Fonte: opennet.ru
