Compression GZIP sur serveur Web Apache
Par PlaceOweb le jeudi, avril 22 2010, 21:02 - Outils Internet - Lien permanent
Compresser vos pages web avec zip pour accélérer le temps de réponse et satisfaire les internautes et Google pour améliorer son référencement.
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.
- Serveur Apache HTTP Version 2.3 : Module Apache mod_deflate
- Apache HTTP Server Version 2.2 : Apache Module mod_deflate
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 !