risultati dello studio sulle prestazioni di diversi metodi di estrazione della raccolta di risorse, utilizzando i protocolli HTTP/1.1, HTTP/2 e HTTP/2 + Server Push per le comunicazioni con il server. La ricerca ha anche valutato l'impatto sulle prestazioni dell'accesso ai dati richiesti nella cache del browser e delle manipolazioni delle risorse a livello di logica applicativa (combinazione delle risorse in un unico blocco JSON).
Il test delle prestazioni eseguito su 25 richieste ha mostrato nel complesso risultati prevedibili: un evidente ritardo della richiesta tramite HTTP/1.1 con cache vuota e un miglioramento nella consegna delle risorse come un unico blocco (test contrassegnati come «compound»). Le prestazioni di Firefox e Chrome erano pressoché equivalenti, ma la presenza di dati nella cache non ha portato al previsto aumento dell'efficienza.
Tuttavia, nel test dell'elaborazione di 500 richieste si è evidenziato un notevole ritardo di Chrome rispetto a Firefox durante la trasmissione di un elevato numero di richieste, e un ritardo di Firefox rispetto a Chrome nell'applicazione del meccanismo Server Push e in situazioni di utilizzo di HTTP/2 con una maggior parte dei dati nella cache del browser. Chrome ha mostrato un funzionamento più efficace con la cache, mentre Firefox ha dimostrato una maggiore efficienza nell'elaborazione delle richieste esterne.
Dai risultati dei test, si può concludere che HTTP/2 consente di gestire in modo abbastanza efficace le richieste separate di una grande collezione di risorse. Le differenze di prestazioni tra le semplici schemi di restituzione separata delle risorse e i metodi in cui le risorse vengono aggregate in un unico blocco non sono così significative da giustificare un notevole complicazione nella logica di elaborazione lato applicazione e server. L'aggregazione ha senso solo in situazioni in cui le prestazioni hanno la massima priorità. Quando è più importante semplificare la logica e avere un'API semplice, ha senso utilizzare l'elaborazione separata delle risorse.
Un altro risultato è che la cache del browser quando si utilizza HTTP/2 non ha un impatto significativo sulle prestazioni dell'elaborazione delle richieste (l'esecuzione completa di 501 richieste è risultata più lenta dell'esecuzione di 51 richieste con il 90% di riempimento della cache, per un fattore di 1,2 volte in Firefox e 2,3 volte in Chrome). L'uso del Server Push non ha mostrato benefici significativi in Firefox, ma si è rivelato efficace nel caricare un gran numero di risorse in Chrome. I ricercatori hanno anche osservato che l'ottimizzazione della parte server ha un impatto più significativo sulle prestazioni rispetto all'ottimizzazione del codice client eseguito nel browser.
Fonte: opennet.ru
