La documentation Apache du module mod_deflate

Le module mod_deflate implémente le filtre de sortie DEFLATE qui permet de comprimer la sortie de votre serveur avant de l'envoyer au client sur le réseau.

Sur Apache/2.2.9 (Debian)

Par défaut, sur Debian avec un Apache/2.2.9, le module deflate_module est activé dans /etc/apache2/mods-enabled/deflate.load :

LoadModule deflate_module /usr/lib/apache2/modules/mod_deflate.so

Et est configuré avec /etc/apache2/mods-enabled/deflate.load comme suit :

<IfModule mod_deflate.c>
         AddOutputFilterByType DEFLATE text/html text/plain text/xml
</IfModule>

On peut rapidement rajouter la compression des feuilles de style .css et du javascript .js :

<IfModule mod_deflate.c>
#          AddOutputFilterByType DEFLATE text/html text/plain text/xml
          AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript
</IfModule>

Outils pour tester la compression GZIP des pages de votre site

Globalement, si on lit les réponses (en-têtes, headers) html de la page retournée par le serveur web, il faut trouver la balise d'encodage pour s'assurer que la compression est activée :

Content-Encoding: gzip

Bien sur, il faut au préalable que le client accepte du contenu compressé, en émettant l'en-tête :

Accept-Encoding: gzip,deflate

GIDNetwork > Tools > GIDZipTest : A simple online web page compression / deflate / gzip test tool

Le plugin Firefox WebDevelopper

Entêtes de réponse avant l'activation de la compression sur les .css :

HTTP/1.1 200 OK
Date: Thu, 22 Apr 2010 19:43:53 GMT
Server: Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny3 with Suhosin-Patch
Last-Modified: Tue, 13 Apr 2010 23:14:37 GMT
Etag: "368026-3404-484266cdeb140"
Accept-Ranges: bytes
Content-Length: 13316
Keep-Alive: timeout=15, max=99
Connection: Keep-Alive
Content-Type: text/css

Réponse après avoir avoir activé la compression gzip avec Apache

HTTP/1.1 200 OK
Date: Thu, 22 Apr 2010 19:55:25 GMT
Server: Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny3 with Suhosin-Patch
Last-Modified: Tue, 13 Apr 2010 23:14:37 GMT
Etag: "368026-3404-484266cdeb140"-gzip
Accept-Ranges: bytes
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 3262
Keep-Alive: timeout=15, max=99
Connection: Keep-Alive
Content-Type: text/css
  • Poids initial du fichier css : 13316
  • Poids compressé du même fichier css : 3262
13316 100%
  3262   24% soit -76% du poids initial !

Ressources