Le nostre applicazioni web continuano a crescere in termini di ambito, ambizione e funzionalità, il che è positivo. Tuttavia, l'incessante marcia verso un web più ricco è alla base di un'altra tendenza: la quantità di dati scaricati da ogni applicazione continua ad aumentare a un ritmo costante. Per offrire prestazioni ottimali dobbiamo ottimizzare la distribuzione di ogni singolo byte.
Che aspetto ha un'applicazione web moderna? HTTP Archive può aiutarci a rispondere a questa domanda. Il progetto monitora le modalità di creazione del web eseguendo periodicamente la scansione dei siti più popolari (oltre 300.000 inclusi nell'elenco dei Top 1 milione di Alexa) e registrando e aggregando dati e analisi relativi a numero di risorse, tipi di contenuti e altri metadati per ogni singola destinazione.
I dati sopra riportati indicano la tendenza di crescita del numero di byte scaricati da destinazioni popolari sul web tra gennaio 2013 e gennaio 2014. Naturalmente, non tutti i siti cresceranno allo stesso ritmo o richiedono la stessa quantità di dati, ecco il motivo per cui stiamo evidenziando i diversi quantili all'interno della distribuzione: 50° (mediana), 75° e 90°.
Un sito mediano all'inizio del 2014 è composto da 75 richieste che sommano fino a 1054 kB di byte trasferiti totali e il numero totale di byte (e richieste) è cresciuto a un ritmo costante durante l'anno precedente. Questo non dovrebbe sorprendere molto di per sé, ma comporta importanti implicazioni in termini di prestazioni: sì, la velocità di internet sta diventando sempre più veloce, ma a velocità diverse a seconda del paese. Inoltre, molti utenti sono ancora soggetti a limiti di dati e costosi piani di consumo, soprattutto sui dispositivi mobili.
A differenza delle controparti desktop, le applicazioni web non richiedono un processo di installazione separato: basta inserire l'URL e noi siamo subito operativi: si tratta di una caratteristica fondamentale del web. Tuttavia, affinché ciò accada, spesso dobbiamo recuperare decine, e a volte centinaia, di risorse diverse, tutte con una somma di megabyte di dati e centinaia di millisecondi per facilitare l'esperienza web istantanea a cui puntiamo.
Ottenere un'esperienza web istantanea alla luce di questi requisiti non è cosa da poco. Per questo motivo, ottimizzare l'efficienza dei contenuti è fondamentale: eliminare i download non necessari, ottimizzare la codifica di trasferimento di ogni risorsa attraverso varie tecniche di compressione e sfruttare la memorizzazione nella cache, ove possibile, per eliminare i download ridondanti.