DevOps

Compression Gzip et Brotli : Réduire le poids des pages

Découvrez comment Gzip et Brotli réduisent le poids de vos pages web. Guide complet avec configuration Apache et Nginx, comparatif et bonnes pratiq...

25 Feb 2026 12 min de lecture 19 vues
19

Lectures

12

Minutes

0

Partages

Introduction

En 2024, la vitesse de chargement des pages web est plus cruciale que jamais. Selon une étude récente de Google, 53 % des utilisateurs abandonnent un site si le chargement dépasse 3 secondes. Face à cette réalité, les développeurs doivent se tourner vers des solutions efficaces pour optimiser leurs applications. Parmi ces solutions, la compression des fichiers via Gzip et Brotli se démarque comme un moyen incontournable pour réduire le poids des pages et améliorer l'expérience utilisateur.

La compression côté serveur agit directement sur les fichiers textuels envoyés au navigateur : HTML, CSS, JavaScript, JSON et XML. En réduisant la taille de ces ressources avant leur transmission sur le réseau, vous diminuez le temps de téléchargement, vous économisez de la bande passante et vous améliorez vos scores sur les outils d'audit comme Google PageSpeed Insights ou Lighthouse.

Dans cet article, nous allons explorer en profondeur les mécanismes de Gzip et Brotli, leurs avantages respectifs, et comment les mettre en œuvre concrètement sur votre serveur web. Vous apprendrez également à éviter les pièges courants liés à la compression, à comparer les performances des deux méthodes, et à tester l'impact réel de la compression sur votre site. Voici ce que nous allons aborder :

  • Qu'est-ce que la compression Gzip et comment fonctionne-t-elle ?
  • Qu'est-ce que la compression Brotli et pourquoi Google l'a créée ?
  • Comment configurer Gzip et Brotli sur Apache et Nginx ?
  • Comparaison détaillée des performances entre Gzip et Brotli
  • Comment vérifier que la compression est active sur votre site
  • Erreurs courantes à éviter lors de la mise en œuvre

Qu'est-ce que la compression Gzip ?

Gzip est un algorithme de compression de fichiers qui réduit la taille des données envoyées depuis le serveur vers le navigateur. Il repose sur l'algorithme DEFLATE, qui combine la compression LZ77 et le codage de Huffman. En pratique, il fonctionne en remplaçant les séquences de caractères répétées par des références plus courtes, ce qui permet de diminuer considérablement le poids des fichiers HTML, CSS et JavaScript.

Utilisé pour la première fois dans les années 90, Gzip est devenu un standard de facto pour la compression web. Aujourd'hui, la quasi-totalité des serveurs web et des navigateurs le prennent en charge nativement, ce qui en fait la solution de compression la plus universelle disponible.

Comment fonctionne Gzip en détail

Lorsqu'un utilisateur fait une requête vers un site, le navigateur envoie un en-tête HTTP Accept-Encoding: gzip pour indiquer qu'il supporte la décompression Gzip. Le serveur, s'il est configuré pour cela, compresse alors le contenu avant de l'envoyer, en ajoutant l'en-tête de réponse Content-Encoding: gzip. Le navigateur décompresse ensuite le contenu à la réception, permettant un chargement plus rapide des pages. Cette négociation est totalement transparente pour l'utilisateur final.

Cette technique peut réduire la taille des fichiers texte de 50 à 70 %, selon leur nature et leur contenu. Les fichiers très répétitifs, comme les fichiers CSS avec de nombreuses propriétés similaires, bénéficient d'un taux de compression encore plus élevé.

Avantages de Gzip

Les principaux avantages de Gzip incluent :

  • Amélioration de la vitesse de chargement : En réduisant la taille des fichiers, Gzip permet un chargement nettement plus rapide des pages, surtout sur les connexions mobiles.
  • Réduction de la bande passante : Moins de données envoyées signifie des économies significatives sur la bande passante, ce qui est crucial pour les sites à fort trafic.
  • Compatibilité universelle : Gzip est supporté par 99 % des navigateurs modernes et par tous les serveurs web majeurs (Apache, Nginx, IIS, LiteSpeed).
  • Rapidité de compression : Gzip est extrêmement rapide côté serveur, ce qui le rend adapté à la compression dynamique en temps réel.

Comment activer Gzip sur Apache

Pour activer Gzip sur votre serveur Apache, vous devez vous assurer que le module mod_deflate est activé, puis ajouter les lignes suivantes dans le fichier .htaccess à la racine de votre site :

# Activer Gzip pour Apache via mod_deflate

  AddOutputFilterByType DEFLATE text/html
  AddOutputFilterByType DEFLATE text/plain
  AddOutputFilterByType DEFLATE text/xml
  AddOutputFilterByType DEFLATE text/css
  AddOutputFilterByType DEFLATE text/javascript
  AddOutputFilterByType DEFLATE application/javascript
  AddOutputFilterByType DEFLATE application/json
  AddOutputFilterByType DEFLATE application/xml
  AddOutputFilterByType DEFLATE image/svg+xml

Comment activer Gzip sur Nginx

Pour Nginx, ajoutez ces directives dans votre bloc http ou server du fichier de configuration principal :

# Activer Gzip pour Nginx
gzip on;
gzip_vary on;
gzip_min_length 256;
gzip_proxied any;
gzip_comp_level 6;
gzip_types
  text/plain
  text/css
  application/json
  application/javascript
  text/xml
  application/xml
  application/xml+rss
  text/javascript
  image/svg+xml;

La directive gzip_comp_level contrôle le niveau de compression de 1 (le plus rapide, moins compressé) à 9 (le plus lent, plus compressé). Un niveau de 6 constitue un excellent compromis entre performance et taux de compression pour la plupart des cas d'utilisation.

Qu'est-ce que la compression Brotli ?

Brotli est un algorithme de compression développé par Google en 2015, conçu spécifiquement pour le web. Il utilise une combinaison de la variante moderne de LZ77, du codage de Huffman et d'un dictionnaire statique prédéfini contenant des chaînes courantes trouvées dans les fichiers web (balises HTML, propriétés CSS, mots-clés JavaScript). C'est ce dictionnaire intégré qui lui confère un avantage significatif sur Gzip pour les contenus web.

Tout comme Gzip, Brotli compresse les fichiers envoyés depuis le serveur vers le navigateur. Cependant, les tests montrent que Brotli peut réduire la taille des fichiers de 15 à 25 % de plus que Gzip, ce qui est un atout considérable pour les développeurs cherchant à pousser l'optimisation du temps de chargement au maximum.

Conseil clé : Privilégiez Brotli pour la pré-compression de vos ressources statiques (fichiers CSS, JavaScript, polices) et conservez Gzip comme solution de repli pour les navigateurs plus anciens ou pour la compression dynamique en temps réel. Cette stratégie combinée vous garantit la meilleure compatibilité tout en offrant des performances optimales.

Pourquoi Google a créé Brotli

Google a développé Brotli pour répondre aux limites de Gzip, notamment son taux de compression plafonné sur les contenus web. L'objectif était de créer un algorithme qui comprendrait nativement la structure des fichiers web grâce à un dictionnaire intégré de plus de 120 000 entrées. Ce dictionnaire contient des fragments HTML, CSS et JavaScript courants, ce qui permet à Brotli d'atteindre des taux de compression supérieurs sans augmenter significativement le temps de décompression côté navigateur.

Avantages de Brotli

Les avantages de Brotli incluent :

  • Taux de compression supérieur : Brotli offre un meilleur taux de compression que Gzip, avec des fichiers résultants 15 à 25 % plus petits en moyenne.
  • Dictionnaire statique intégré : Le dictionnaire prédéfini de Brotli est optimisé pour les contenus web, ce qui lui donne un avantage structurel sur Gzip.
  • Optimisation pour les ressources statiques : Brotli est particulièrement efficace pour les fichiers qui ne changent pas souvent et qui peuvent être pré-compressés.
  • Support croissant : Plus de 96 % des navigateurs prennent désormais en charge Brotli, y compris Chrome, Firefox, Safari et Edge.

Comment activer Brotli sur Nginx

Pour activer Brotli sur Nginx, vous devez d'abord installer le module ngx_brotli, puis ajouter les lignes suivantes dans votre fichier de configuration :

# Activer Brotli pour Nginx
brotli on;
brotli_comp_level 6;
brotli_static on;
brotli_types
  text/plain
  text/css
  application/json
  application/javascript
  text/xml
  application/xml
  application/xml+rss
  text/javascript
  image/svg+xml
  font/woff2;

La directive brotli_static on est particulièrement intéressante : elle permet à Nginx de servir directement des fichiers pré-compressés (avec l'extension .br) s'ils existent sur le disque, évitant ainsi la compression en temps réel et réduisant la charge CPU du serveur.

Comment activer Brotli sur Apache

Pour Apache, vous aurez besoin du module mod_brotli. Activez-le d'abord, puis ajoutez les lignes suivantes dans votre fichier .htaccess :

# Activer Brotli pour Apache

  AddOutputFilterByType BROTLI_COMPRESS text/html
  AddOutputFilterByType BROTLI_COMPRESS text/plain
  AddOutputFilterByType BROTLI_COMPRESS text/xml
  AddOutputFilterByType BROTLI_COMPRESS text/css
  AddOutputFilterByType BROTLI_COMPRESS text/javascript
  AddOutputFilterByType BROTLI_COMPRESS application/javascript
  AddOutputFilterByType BROTLI_COMPRESS application/json
  AddOutputFilterByType BROTLI_COMPRESS image/svg+xml

Comparaison des performances entre Gzip et Brotli

Pour aider les développeurs à choisir entre Gzip et Brotli, nous avons compilé un tableau comparatif détaillé des performances des deux algorithmes, basé sur des tests réalisés sur des fichiers web typiques :

CritèreGzipBrotli
Taux de compression moyen50-70 %60-80 %
Vitesse de compressionRapidePlus lent (surtout niveaux élevés)
Vitesse de décompressionTrès rapideRapide (comparable à Gzip)
Compatibilité navigateur99 %+96 %+
Dictionnaire intégréNonOui (optimisé pour le web)
Idéal pourCompression dynamiquePré-compression statique
Charge CPU serveurFaibleModérée à élevée

En général, Brotli est préférable pour les ressources statiques et les fichiers de grande taille, tandis que Gzip reste une option solide pour la compression dynamique ou dans des environnements où la charge CPU est une préoccupation majeure.

Quel algorithme choisir selon votre situation

Le choix entre Gzip et Brotli dépend de plusieurs facteurs. Si votre site repose principalement sur du contenu statique servi via un CDN, Brotli est le choix optimal car la pré-compression élimine le surcoût CPU. Si vous générez du contenu dynamique en temps réel (pages personnalisées, réponses API), Gzip avec un niveau de compression modéré (4 à 6) sera plus performant. La meilleure stratégie consiste souvent à combiner les deux : Brotli en priorité avec Gzip comme solution de repli.

Comment vérifier que la compression est active

Après avoir configuré la compression sur votre serveur, il est essentiel de vérifier qu'elle fonctionne correctement. Voici plusieurs méthodes pour le faire.

Vérification via les outils de développement du navigateur

Ouvrez les outils de développement de votre navigateur (F12 dans Chrome ou Firefox), accédez à l'onglet Réseau, rechargez la page, puis cliquez sur n'importe quelle ressource. Dans les en-têtes de réponse, recherchez Content-Encoding. Si la compression est active, vous verrez la valeur gzip ou br (pour Brotli).

Vérification via la ligne de commande

Vous pouvez utiliser curl pour vérifier la compression directement depuis le terminal :

# Tester la compression Gzip
curl -I -H "Accept-Encoding: gzip" https://votre-site.com

# Tester la compression Brotli
curl -I -H "Accept-Encoding: br" https://votre-site.com

Dans la réponse, cherchez la ligne Content-Encoding: gzip ou Content-Encoding: br. Si cette ligne est absente, la compression n'est pas active pour la ressource demandée.

Outils en ligne pour tester la compression

Plusieurs outils en ligne permettent de vérifier instantanément si votre site utilise la compression :

  • Google PageSpeed Insights : Signale les ressources non compressées dans la section « Activer la compression de texte ».
  • GTmetrix : Affiche un rapport détaillé incluant le statut de compression de chaque ressource.
  • GiftOfSpeed Gzip Test : Un outil simple qui vérifie si Gzip ou Brotli est actif sur votre URL.

Erreurs courantes à éviter

La mise en place de la compression semble simple, mais plusieurs erreurs fréquentes peuvent réduire son efficacité ou causer des problèmes inattendus. Voici les pièges les plus courants et comment les éviter.

Ne pas tester après activation

De nombreux développeurs configurent la compression puis supposent qu'elle fonctionne. Utilisez toujours les méthodes de vérification décrites ci-dessus pour confirmer que la compression est bien active sur tous les types de fichiers ciblés.

Compresser des fichiers déjà compressés

Les images (JPEG, PNG, WebP), les vidéos et les fichiers ZIP sont déjà compressés. Tenter de les compresser avec Gzip ou Brotli est inutile et gaspille des ressources CPU. Limitez la compression aux fichiers texte : HTML, CSS, JavaScript, JSON, XML et SVG.

Utiliser un niveau de compression trop élevé

Un niveau de compression de 9 sur Gzip ou de 11 sur Brotli offre un gain marginal en taille mais augmente considérablement le temps de compression. Pour la compression dynamique, un niveau de 4 à 6 pour Gzip et de 4 à 6 pour Brotli est recommandé. Réservez les niveaux maximaux uniquement pour la pré-compression statique.

Oublier le Vary header

Lorsque vous utilisez la compression, il est important d'inclure l'en-tête Vary: Accept-Encoding dans les réponses HTTP. Cet en-tête indique aux caches intermédiaires (CDN, proxies) qu'ils doivent stocker des versions différentes de la ressource selon l'encodage accepté par le client. Sans cet en-tête, un proxy pourrait servir une version compressée en Brotli à un navigateur qui ne le supporte pas.

Ignorer les impacts sur les performances serveur

La compression consomme du CPU sur le serveur. Sur un serveur à forte charge, activer Brotli avec un niveau élevé pour la compression dynamique peut dégrader les performances globales. Surveillez l'utilisation CPU de votre serveur après activation et ajustez les niveaux de compression en conséquence.

Conclusion

La compression Gzip et Brotli sont des techniques essentielles pour optimiser le chargement des pages web en 2024. En utilisant ces méthodes de manière stratégique, vous pouvez significativement réduire le poids des fichiers envoyés au navigateur, améliorer l'expérience utilisateur, diminuer la consommation de bande passante et améliorer vos scores Core Web Vitals.

Voici les points essentiels à retenir de cet article :

  • Gzip est universellement supporté, rapide à mettre en œuvre et idéal pour la compression dynamique.
  • Brotli offre un taux de compression supérieur de 15 à 25 % grâce à son dictionnaire intégré, particulièrement pour les fichiers statiques.
  • La stratégie optimale consiste à utiliser Brotli en priorité avec Gzip comme solution de repli.
  • Toujours tester les performances et vérifier les en-têtes HTTP après avoir activé la compression.
  • Éviter de compresser les fichiers déjà compressés comme les images et les vidéos.
  • Surveiller la charge CPU du serveur et ajuster les niveaux de compression en conséquence.

Commencez à implémenter ces techniques dès aujourd'hui sur votre serveur. En quelques minutes de configuration, vous pouvez réduire le poids de vos pages de 50 à 80 % et offrir une expérience de navigation nettement plus rapide à vos utilisateurs.

Tags

Gzip Brotli Compression

Partagez cet article

Twitter Facebook LinkedIn
JY
Jordane YENO

Developpeur Full Stack passionne par le web et les nouvelles technologies

En savoir plus

Articles similaires