Ottimizzazione dell'efficacia dei contenuti

Ignazio Barbieri
Ilya Grigorik

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.

Tendenze archiviazione HTTP

50° percentile 75° percentile 90° percentile
HTML 13 kB 26 kB 54 kB
Immagini 528 kB 1213 kB 2384 kB
JavaScript 207 kB 385 kB 587 kB
CSS 24 kB 53 kB 108 kB
Altro 282 kB 308 kB 353 kB
Totale 1054 kB 1985 kB 3486 kB

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.