In breve: Brotli e Gzip riducono il peso delle risposte testuali. Il client dichiara gli algoritmi supportati con Accept-Encoding e il server o CDN risponde con Content-Encoding . Verifica HTML, CSS e JavaScript; non comprimere di nuovo immagini e archivi già compressi e non attivare più livelli senza controllare gli header.
Indice dei contenuti
Brotli e Gzip: differenze
Entrambi comprimono la risposta HTTP prima del trasferimento e il browser la decomprime. Brotli può produrre file testuali più piccoli in molte condizioni; Gzip mantiene una compatibilità molto ampia. La scelta avviene per ogni richiesta in base a ciò che il client dichiara.
Non serve creare manualmente due versioni delle pagine se server o CDN gestiscono la compressione dinamica. Per asset statici precompressi la configurazione deve associare correttamente file, encoding e tipo MIME.
Quali contenuti comprimere
Sono buoni candidati HTML, CSS, JavaScript, JSON, XML, SVG e testo. JPEG, PNG, WebP, AVIF, video, PDF, ZIP e altri formati già compressi spesso ottengono poco beneficio e possono consumare CPU inutilmente.
Il server decide anche in base a tipo di contenuto e dimensione minima. Una risposta molto piccola può restare non compressa perché gli header e il lavoro di compressione supererebbero il vantaggio.
Verificare dal browser
- Apri gli strumenti sviluppatore e la scheda Network.
- Ricarica la pagina.
- Seleziona il documento HTML o un file CSS/JavaScript.
- Negli header di risposta cerca
Content-Encoding: broppuregzip. - Confronta dimensione trasferita e dimensione della risorsa.
- Controlla la presenza di
Vary: Accept-Encodingquando necessaria per le varianti.
Prova una risorsa testuale, non soltanto un’immagine. La dimensione mostrata dal browser può includere cache o protocollo, quindi usa richieste equivalenti e disattiva temporaneamente la cache DevTools se devi confrontare.
Verificare con curl
Per consentire a curl di negoziare e decomprimere automaticamente:
curl -sS -D - --compressed -o /dev/null https://esempio.it/
Per richiedere esplicitamente Brotli o Gzip:
curl -sS -D - -H 'Accept-Encoding: br' -o /dev/null https://esempio.it/
curl -sS -D - -H 'Accept-Encoding: gzip' -o /dev/null https://esempio.it/
Controlla Content-Encoding, Content-Type, Content-Length e Vary. Non confrontare il solo Content-Length tra richieste diverse o risposte generate dinamicamente.
CDN e server origine
Con Cloudflare o un altro CDN esistono due collegamenti: origine→CDN e CDN→visitatore. L’encoding consegnato al browser può essere scelto dal CDN anche se l’origine usa un formato diverso.
Per testare l’origine senza disattivare il proxy, un tecnico può usare curl --resolve con IP Xlogic e hostname corretto. Mantieni l’header Host/SNI; interrogare direttamente l’IP può raggiungere il virtual host sbagliato.
Errori e doppia compressione
ERR_CONTENT_DECODING_FAILED può comparire quando body e Content-Encoding non corrispondono, una risposta viene compressa due volte o un proxy modifica il corpo senza aggiornare gli header. Procedi così:
- salva URL, data, ora e header della risposta;
- prova origine e CDN separatamente;
- disattiva una sola funzione di compressione alla volta;
- svuota la cache del livello modificato;
- ripeti la stessa richiesta con Brotli, Gzip e senza encoding;
- riattiva la configurazione funzionante e controlla più tipi di file.
Non aggiungere regole Gzip in .htaccess se LiteSpeed o il CDN gestiscono già correttamente la compressione. Una configurazione duplicata non rende la risposta “più compressa”.
Quando contattare l’assistenza Xlogic
Apri un ticket se le risposte testuali non vengono compresse sul servizio previsto o compare un errore di decodifica. Indica dominio, URL della risorsa, data e ora, presenza di CDN, output degli header per br e gzip, browser e cambiamenti recenti. Non inviare cookie di sessione.
Guide Xlogic correlate
- ERR_CONTENT_DECODING_FAILED: contenuto compresso non valido
- HTTP/2 e HTTP/3: differenze e verifica
- Redis Object Cache su WordPress
Domande frequenti
Brotli è sempre migliore di Gzip?
Non in ogni situazione. Spesso comprime meglio il testo, ma contano supporto del client, livello di compressione, CPU e configurazione. Gzip resta un fallback molto diffuso.
Devo comprimere anche immagini WebP o archivi ZIP?
Normalmente no. Sono già compressi e un secondo passaggio offre poco beneficio. Concentrati su HTML, CSS, JavaScript, JSON, XML e SVG.
Come verifico quale compressione riceve il browser?
Apri Network nelle DevTools, seleziona una risposta testuale e controlla Content-Encoding. Il valore br indica Brotli, gzip indica Gzip.
Cloudflare e il server possono usare encoding diversi?
Sì. Cloudflare può ricevere una risposta dall’origine e scegliere un encoding diverso verso il visitatore. Verifica separatamente i due collegamenti.