Il concetto di compressione è molto importante, specialmente oggi che il settore mobile è così dominante. Molti utenti utilizzano connessioni a consumo per navigare in Internet, ed hanno bisogno di strumenti che gli permettono di non sprecare il traffico che pagano.

Con questo articolo vedremo l'applicazione della compressione in campo Web, e tutti i benefici che ne otterrai.

Perchè abilitare la Compressione?

Domanda lecita: perchè dovrei configurare il mio webserver, affinchè restituisca contenuti compressi?

La risposta è introdotta parzialmente all'inizio di questo articolo, ma ampliamo il discorso per capire effettivamente cosa succede abilitandola.

Quando un webserver restituisce contenuti non compressi, sostanzialmente le richieste sono strutturate così:

  1. Il browser fa una richiesta al webserver, specificando un documento;
  2. Il webserver risponde inviando il documento richiesto;
  3. Il browser lo renderizza.

Semplice no? Tanto semplice quanto banale. C'è un problema però…

Supponiamo di avere una pagina molto pesante. Ad esempio, l'home page del vecchio blog (sul quale ho fatto questi conti) pesava circa 490KB, e non è poco quanto sembra.

Perchè in realtà, l'utente riceveva una pagina grande solo 75KB. Gli utenti risparmiavano l'84% di traffico in download, solamente perché è attiva la compressione GZIP.

Risultati compresisone GZIP su FortyZone

Cosa succede abilitando la Compressione?

Dobbiamo sapere che i moderni browser, di default, comunicano al webserver che sono in grado di ricevere contenuto compresso.
Il webserver, a questo punto, può restituire contenuto compresso, oppure no, a seconda di come è configurato.

Esempio di compressone abilitata

Dall'immagine si capisce lo schema base di una comunicazione con contenuto compresso:

  1. Il browser chiede il file, specificando che accetta degli algoritmi di compressione;
  2. Il webserver restituisce il file compresso in uno degli algoritmi specificati;
  3. Il browser lo decomprime e lo renderizza.

La compressione, quindi, a discapito di un leggero (ma non considerabile) aumento di lavoro da parte del server e del browser, permette un'abbondante riduzione delle dimensioni dei file.

Come abilito la Compressione?

Per quest'operazione è necessario modificare la configurazione del webserver, e puoi farlo dal pannello di controllo del tuo hosting, se lo permette, oppure dal file di configurazione.

Modifica via .htaccess

Per attivare la compressione GZIP, basta incollare, ad esempio, queste direttive:

<ifModule mod_gzip.c>
    mod_gzip_on Yes
    mod_gzip_dechunk Yes
    mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$
    mod_gzip_item_include mime ^application/x-javascript.*
    mod_gzip_item_include mime ^text/.*
    mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
    mod_gzip_item_exclude mime ^image/.*
    mod_gzip_item_include handler ^cgi-script$
</ifModule>

Oppure, se GZIP non dovesse funzionare, è possibile attivare DEFLATE (generalmente più supportato):

AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript

Puoi controllare l'effettiva attivazione della compressione con uno di questi tool:

Conclusioni

Con questo articolo abbiamo visto perchè la compressione è una tecnica così importante, e come attivarla.

Con pagine compresse, otterrai:

  • Sito più veloce;
  • Migliore esperienza utente;
  • Valutazione più alta in Google PageSpeed Insights (se ci tieni).

Ora attivala e verifica di quanto hai migliorato le prestazioni del tuo sito.

Se hai domande, pareri o qualcosa da aggiungere, utilizza lo spazio per i commenti che trovi qui sotto.