Le nostre applicazioni web continuano a crescere in termini di ambito, ambizione e funzionalità, il che è un bene. Tuttavia, l'incessante marcia verso un web più ricco sta alimentando un'altra tendenza: la quantità di dati scaricati da ogni applicazione continua ad aumentare a un ritmo costante. Per ottenere un rendimento eccezionale, dobbiamo ottimizzare l'invio di ogni singolo byte.
Che aspetto ha un'applicazione web moderna? HTTP Archive può aiutarci a rispondere a questa domanda. Il progetto monitora la costruzione del web eseguendo periodicamente la scansione dei siti più popolari (oltre 300.000 dall'elenco Alexa Top 1M) e registrando e aggregando dati e analisi sul numero di risorse, tipi di contenuti e altri metadati per ogni singola destinazione.
I dati riportati sopra illustrano la tendenza di crescita del numero di byte scaricati per le destinazioni più popolari sul web tra gennaio 2013 e gennaio 2014. Ovviamente, non tutti i siti crescono alla stessa velocità o richiedono la stessa quantità di dati, motivo per cui evidenzieremo i diversi quantili all'interno della distribuzione: 50° (media), 75° e 90°.
Un sito medio all'inizio del 2014 è composto da 75 richieste che aggiungono fino a 1054 KB di byte trasferiti totali e il numero totale di byte (e richieste) è cresciuto a un ritmo costante nell'anno precedente. Questo da solo non dovrebbe sorprendere, ma ha importanti implicazioni per le prestazioni: sì, le velocità di internet stanno aumentando, ma a velocità diverse nei diversi paesi e molti utenti sono ancora soggetti a limiti di dati e a piani con tariffe a consumo costosi, in particolare sui dispositivi mobili.
A differenza delle loro controparti desktop, le applicazioni web non richiedono una procedura di installazione separata: inserisci l'URL e il gioco è fatto. Questa è una funzionalità chiave del web. Tuttavia, per farlo spesso dobbiamo recuperare decine, a volte centinaia, di risorse diverse, che possono sommarsi a megabyte di dati e devono essere combinate in centinaia di millisecondi per facilitare l'esperienza web istantanea che miriamo a offrire.
Ottenere un'esperienza web istantanea alla luce di questi requisiti non è un'impresa facile, motivo per cui l'ottimizzazione dell'efficienza dei contenuti è fondamentale: eliminare i download non necessari, ottimizzare la codifica di trasferimento di ogni risorsa tramite varie tecniche di compressione e sfruttare la memorizzazione nella cache, se possibile, per eliminare i download ridondanti.