Ottimizzazione dell'efficienza dei contenuti

Ilya Grigorik
Ilya Grigorik

Le nostre applicazioni web continuano a crescere in termini di portata, ambizione e funzionalità, il che è un bene. Tuttavia, la marcia inarrestabile verso un web più ricco sta guidando un'altra tendenza: la quantità di dati scaricati da ogni applicazione continua ad aumentare a un ritmo costante. Per offrire prestazioni eccellenti, 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 il modo in cui viene creato il web eseguendo periodicamente la scansione dei siti più popolari (oltre 300.000 dall'elenco Alexa Top 1M) e registrando e aggregando i dati di analisi sul numero di risorse, tipi di contenuti e altri metadati per ogni singola destinazione.

Tendenze di HTTP Archive

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 riportati sopra mostrano la tendenza di crescita del numero di byte scaricati per le destinazioni più 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, motivo per cui evidenziamo i diversi quantili all'interno della distribuzione: 50° (mediana), 75° e 90°.

Un sito medio all'inizio del 2014 è composto da 75 richieste che sommano 1054 kB di byte totali trasferiti e il numero totale di byte (e richieste) è cresciuto a un ritmo costante nel corso dell'anno precedente. Questo di per sé non dovrebbe sorprendere, ma ha importanti implicazioni sulle prestazioni: sì, le velocità di internet stanno aumentando, ma a ritmi diversi in paesi diversi e molti utenti sono ancora soggetti a limiti di dati e piani a consumo costosi, soprattutto sui dispositivi mobili.

A differenza delle loro controparti desktop, le applicazioni web non richiedono un processo di installazione separato: inserisci l'URL e sei subito operativo. Questa è una caratteristica fondamentale del web. Tuttavia, per farlo, spesso dobbiamo recuperare decine, e talvolta centinaia, di risorse diverse, che possono arrivare a megabyte di dati e devono essere riunite in centinaia di millisecondi per facilitare l'esperienza web istantanea a cui miriamo.

Ottenere un'esperienza web istantanea alla luce di questi requisiti non è un'impresa da poco, 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 quando possibile per eliminare i download ridondanti.