
L'augmentation de la bande passante a permit un plus grand confort pour les internautes mais aussi l'explosion des ressources multimédia. Ces ressources sont de plusieurs types :
- images : les images sont de plus en plus lourds;
- le "web 2.0" implique une profusion de scripts css et javascript;
- les pages HTML
Concernant les ressources statiques type images, il est possible de jouer avec le cache navigateur, de même que pour les css et les javascripts.
Cependant, ces derniers ont tendance à s'allonger, s'alourdir et par conséquent gênent la construction d'une page internet à cause des temps de transferts.
Il est possible d'accélérer ces temps de transfère avec
httpd grâce au module de compression : le
mode deflate.
Pour mettre en place la compression, il faut ajouter à la compilation de
httpd les modules
deflate et
headers.
./configure --prefix=/usr/local/apache2-2.2.0 --enable-headers --enable-deflate --with-mpm=prefork
make
make install
Puis il suffit d'ajouter le bloc suivant dans le fichier
httpd.conf ou bien dans un fichier
mod_deflate.conf qu'il faudra inclure (
Include mod_deflate.conf) :
<IfModule deflate_module>
#AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript
AddOutputFilterByType DEFLATE text/*
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
#AddOutputFilterByType DEFLATE application/x-javascript
<Location />
# Insert filter
SetOutputFilter DEFLATE
# Netscape 4.x has some problems\x85
BrowserMatch ^Mozilla/4 gzip-only-text/html
# Netscape 4.06-4.08 have some more problems
BrowserMatch ^Mozilla/4\.0[678] no-gzip
# MSIE masquerades as Netscape, but it is fine
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
# NOTE: Due to a bug in mod_setenvif up to Apache 2.0.48
# the above regex won\x92t work. You can use the following
# workaround to get the desired effect:
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
# Don\x92t compress images or ZIP/GZ/7Z
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|zip|7z|gz|htc)$ no-gzip dont-vary
# Make sure proxies don\x92t deliver the wrong content
Header append Vary User-Agent env=!dont-vary
</Location>
</IfModule>
Ici, nous compressons les ressources dont le
type-mime est
text/* ainsi que le
javascript et les flux XML (comme les flux RSS).