Le nostre applicazioni web continuano a crescere per quanto riguarda ambito, ambizione e funzionalità, il che è un aspetto positivo. Tuttavia, l'incessante marcia verso un Web più ricco crea un'altra tendenza: la quantità di dati scaricati da ogni applicazione continua ad aumentare a un ritmo costante. Per offrire prestazioni eccezionali, dobbiamo ottimizzare la distribuzione di ogni singolo byte.
Che aspetto ha una moderna applicazione web? L'archivio HTTP può aiutarci a rispondere a questa domanda. Il progetto tiene traccia di come viene realizzato il web attraverso la scansione periodica dei siti più popolari (oltre 300.000 dall'elenco Alexa Top 1M) e la registrazione e l'aggregazione di analisi relative a numero di risorse, tipi di contenuti e altri metadati per ogni singola destinazione.
I dati di cui sopra illustrano la tendenza in termini di crescita del numero di byte scaricati per destinazioni popolari sul web tra gennaio 2013 e gennaio 2014. Naturalmente, non tutti i siti crescono allo stesso ritmo o richiedono la stessa quantità di dati, ecco perché 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 essere così sorprendente, ma ha implicazioni importanti per le prestazioni: sì, la velocità di internet sta diventando più veloce, ma sta diventando più veloce a velocità diverse in paesi diversi e molti utenti sono ancora soggetti a limiti di dati e piani di consumo costosi, soprattutto sui dispositivi mobili.
A differenza delle loro controparti desktop, le applicazioni web non richiedono una procedura di installazione separata: inserisci l'URL e potremo iniziare a lavorare, questa è una funzionalità chiave del web. Tuttavia, per far sì che questo accada spesso dobbiamo recuperare decine e, a volte, centinaia di risorse diverse, che possono sommare fino a megabyte di dati e devono essere riunite in 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, ed è per questo che ottimizzare l'efficienza dei contenuti è fondamentale: eliminare i download inutili, ottimizzare la codifica di trasferimento di ogni risorsa attraverso varie tecniche di compressione e sfruttare la memorizzazione nella cache, se possibile, per eliminare download ridondanti.