1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head><!--
4 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
5 This file is generated from xml source: DO NOT EDIT
6 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
8 <title>mod_deflate - Serveur Apache HTTP</title>
9 <link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
10 <link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
11 <link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
12 <link href="../images/favicon.ico" rel="shortcut icon" /></head>
14 <div id="page-header">
15 <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p>
16 <p class="apache">Serveur Apache HTTP Version 2.3</p>
17 <img alt="" src="../images/feather.gif" /></div>
18 <div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
20 <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.3</a> > <a href="./">Modules</a></div>
21 <div id="page-content">
22 <div id="preamble"><h1>Module Apache mod_deflate</h1>
24 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_deflate.html" hreflang="en" rel="alternate" title="English"> en </a> |
25 <a href="../fr/mod/mod_deflate.html" title="Français"> fr </a> |
26 <a href="../ja/mod/mod_deflate.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
27 <a href="../ko/mod/mod_deflate.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p>
29 <table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Comprime le contenu avant de le servir au
31 <tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
32 <tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur de Module:</a></th><td>deflate_module</td></tr>
33 <tr><th><a href="module-dict.html#SourceFile">Fichier Source:</a></th><td>mod_deflate.c</td></tr></table>
36 <p>Le module <code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code> implémente le filtre de
37 sortie <code>DEFLATE</code> qui permet de comprimer la sortie de
38 votre serveur avant de l'envoyer au client sur le réseau.</p>
40 <div id="quickview"><h3 class="directives">Directives</h3>
42 <li><img alt="" src="../images/down.gif" /> <a href="#deflatebuffersize">DeflateBufferSize</a></li>
43 <li><img alt="" src="../images/down.gif" /> <a href="#deflatecompressionlevel">DeflateCompressionLevel</a></li>
44 <li><img alt="" src="../images/down.gif" /> <a href="#deflatefilternote">DeflateFilterNote</a></li>
45 <li><img alt="" src="../images/down.gif" /> <a href="#deflatememlevel">DeflateMemLevel</a></li>
46 <li><img alt="" src="../images/down.gif" /> <a href="#deflatewindowsize">DeflateWindowSize</a></li>
50 <li><img alt="" src="../images/down.gif" /> <a href="#recommended">Exemples de configurations</a></li>
51 <li><img alt="" src="../images/down.gif" /> <a href="#enable">Activation de la compression</a></li>
52 <li><img alt="" src="../images/down.gif" /> <a href="#proxies">Prise en compte des serveurs mandataires</a></li>
53 </ul><h3>Voir aussi</h3>
55 <li><a href="../filter.html">Les filtres</a></li>
57 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
59 <h2><a name="recommended" id="recommended">Exemples de configurations</a></h2>
60 <p>Voici un exemple simple de configuration pour les
63 <div class="example"><h3>Ne comprime que certains types de documents</h3><p><code>
64 AddOutputFilterByType DEFLATE text/html text/plain text/xml
67 <p>La configuration suivante, tout en produisant un contenu encore
68 plus comprimé, est aussi beaucoup plus compliquée. N'utilisez pas
69 cet exemple si vous ne comprenez pas tous les détails de la
72 <div class="example"><h3>Comprime tout, sauf les images</h3><p><code>
73 <Location /><br />
75 # Insère le filtre<br />
76 SetOutputFilter DEFLATE<br />
78 # Netscape 4.x a quelques problèmes ...<br />
79 BrowserMatch ^Mozilla/4 gzip-only-text/html<br />
81 # Netscape 4.06-4.08 ont d'autres problèmes<br />
82 BrowserMatch ^Mozilla/4\.0[678] no-gzip<br />
84 # MSIE se fait passer pour Netscape, mais ça marche<br />
85 BrowserMatch \bMSIE !no-gzip !gzip-only-text/html<br />
86 # Ne pas comprimer les images<br />
87 SetEnvIfNoCase Request_URI \<br />
89 \.(?:gif|jpe?g|png)$ no-gzip dont-vary<br />
92 # On s'assure que les mandataires ne servent pas le mauvais
94 Header append Vary User-Agent env=!dont-vary<br />
99 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
100 <div class="section">
101 <h2><a name="enable" id="enable">Activation de la compression</a></h2>
103 <h3><a name="output" id="output">Compression de la sortie</a></h3>
104 <p>La compression est implémentée par le <a href="../filter.html">filtre</a> <code>DEFLATE</code>. La
105 directive suivante active la compression des documents dans le
106 conteneur où elle est placée :</p>
108 <div class="example"><p><code>
109 SetOutputFilter DEFLATE
112 <p>Certains navigateurs populaires ne gèrent pas la compression de
113 tous les contenus, et pour résoudre ce problème, vous pouvez
114 définir la note <code>gzip-only-text/html</code> à <code>1</code>
115 pour ne permettre que la compression des fichiers html (voir
116 ci-dessous). Si vous définissez cette note à <em>toute autre
117 valeur que <code>1</code></em>, elle sera ignorée.</p>
119 <p>Si vous voulez limiter la compression à certains types MIME
120 particuliers, vous pouvez utiliser la directive <code class="directive"><a href="../mod/core.html#addoutputfilterbytype">AddOutputFilterByType</a></code>. Voici un exemple
121 où la compression n'est activée que pour les fichiers html de la
122 documentation d'Apache :</p>
124 <div class="example"><p><code>
125 <Directory "/racine-de-votre-serveur/manual"><br />
126 <span class="indent">
127 AddOutputFilterByType DEFLATE text/html<br />
132 <p>Pour les navigateurs qui ont des problèmes avec la compression
133 de tous les types de fichiers, vous pouvez utiliser la directive
134 <code class="directive"><a href="../mod/mod_setenvif.html#browsermatch">BrowserMatch</a></code> pour
135 définir la note <code>no-gzip</code>, pour le navigateur
136 considéré, de façon à ce qu'aucune compression ne soit effectuée.
137 Vous pouvez combiner <code>no-gzip</code> avec
138 <code>gzip-only-text/html</code> afin d'obtenir le meilleur
139 résultat possible. Dans ce cas, la première note l'emporte sur la
140 deuxième. Considérons l'extrait suivant de l'<a href="#recommended">exemple de configuration</a> de la section
143 <div class="example"><p><code>
144 BrowserMatch ^Mozilla/4 gzip-only-text/html<br />
145 BrowserMatch ^Mozilla/4\.0[678] no-gzip<br />
146 BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
149 <p>Tout d'abord, on recherche un en-tête <code>User-Agent</code>
150 qui signale un navigateur Netscape version 4.x. Ces versions ne
151 gèrent pas la compression des types de fichiers autres que
152 <code>text/html</code>. En outre, les versions 4.06, 4.07 et 4.08
153 ont des problèmes avec la décompression des fichiers html. Par
154 conséquent, nous désactivons complètement le filtre deflate pour
157 <p>La troisième directive <code class="directive"><a href="../mod/mod_setenvif.html#browsermatch">BrowserMatch</a></code> corrige l'identité
158 sous laquelle se présente le navigateur ; en effet, Microsoft
159 Internet Explorer s'identifie aussi lui-même comme "Mozilla/4",
160 mais par contre, il sait gérer les contenus compressés. On
161 recherche donc la chaîne additionnelle "MSIE" (<code>\b</code>
162 signifie "par mots entiers") dans l'en-tête
163 <code>User-Agent</code>, et si elle est trouvée, on annule les
164 restrictions définies auparavant.</p>
166 <div class="note"><h3>Note</h3>
167 Le filtre <code>DEFLATE</code> est toujours inséré après les
168 filtres RESOURCE comme PHP ou SSI. Il n'affecte jamais les
169 sous-requêtes internes.
171 <div class="note"><h3>Note</h3>
172 La variable d'environnement <code>force-gzip</code>, définie à
173 l'aide de la directive <code class="directive"><a href="../mod/core.html#setenv">SetEnv</a></code>, permet d'ignorer la
174 configuration de votre navigateur quant aux codages acceptés, et
175 d'envoyer sans condition une sortie comprimée.
179 <h3><a name="inflate" id="inflate">Décompression de la sortie</a></h3>
180 <p>Le module <code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code> fournit aussi un filtre
181 permettant de décomprimer un corps de réponse comprimé par gzip.
182 Pour activer cette fonctionnalité, vous devez insérer le filtre
183 <code>INFLATE</code> dans la chaîne de filtrage en sortie via la
184 directive <code class="directive"><a href="../mod/core.html#setoutputfilter">SetOutputFilter</a></code> ou
185 <code class="directive"><a href="../mod/mod_mime.html#addoutputfilter">AddOutputFilter</a></code>, comme
186 dans l'exemple suivant :</p>
188 <div class="example"><p><code>
189 <Location /dav-area><br />
190 <span class="indent">
191 ProxyPass http://example.com/<br />
192 SetOutputFilter INFLATE<br />
197 <p>Dans cet exemple, les sorties comprimées par gzip en
198 provenance de example.com seront décomprimées afin de pouvoir
199 être éventuellement traitées par d'autres filtres.
203 <h3><a name="input" id="input">Décompression de l'entrée</a></h3>
204 <p>Le module <code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code> fournit également un filtre
205 permettant de décomprimer un corps de requête comprimé par gzip.
206 Pour activer cette fonctionnalité, vous devez insérer le filtre
207 <code>DEFLATE</code> dans la chaîne de filtrage en entrée via la
208 directive <code class="directive"><a href="../mod/core.html#setinputfilter">SetInputFilter</a></code> ou
209 <code class="directive"><a href="../mod/mod_mime.html#addinputfilter">AddInputFilter</a></code>, comme
210 dans l'exemple suivant :</p>
212 <div class="example"><p><code>
213 <Location /dav-area><br />
214 <span class="indent">
215 SetInputFilter DEFLATE<br />
220 <p>Désormais, si une requête contient un en-tête
221 <code>Content-Encoding: gzip</code>, son corps sera
222 automatiquement décomprimé. Peu de navigateurs sont actuellement
223 en mesure de comprimer les corps de requêtes. Cependant,
224 certaines applications spécialisées supportent les requêtes
225 comprimées, comme par exemple certains clients <a href="http://www.webdav.org">WebDAV</a>.</p>
227 <div class="warning"><h3>Note à propos de l'en-tête
228 <code>Content-Length</code></h3>
229 <p>Si vous évaluez vous-même la taille du corps de requête,
230 <em>ne faites pas confiance à l'en-tête
231 <code>Content-Length</code>!</em> L'en-tête
232 Content-Length indique la longueur des données en provenance du
233 client, et <em>non</em> la quantité d'octets que représente le
234 flux de données décompressé.</p>
237 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
238 <div class="section">
239 <h2><a name="proxies" id="proxies">Prise en compte des serveurs mandataires</a></h2>
241 <p>Le module <code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code> envoie un en-tête de
242 réponse HTTP <code>Vary: Accept-Encoding</code> pour avertir les
243 mandataires qu'une réponse enregistrée dans le cache ne doit être
244 envoyée qu'aux clients qui ont envoyé l'en-tête de requête
245 <code>Accept-Encoding</code> approprié. Ceci permet d'éviter l'envoi
246 d'un contenu comprimé à un client qui ne sera pas en mesure
247 de l'interpréter.</p>
249 <p>Si vous avez défini des exclusions spécifiques dépendant, par
250 exemple, de l'en-tête <code>User-Agent</code>, vous devez
251 ajouter manuellement des données à l'en-tête <code>Vary</code> afin
252 d'informer les mandataires des restrictions supplémentaires. Par
253 exemple, dans la configuration classique où l'addition du filtre
254 <code>DEFLATE</code> dépend du contenu de l'en-tête
255 <code>User-Agent</code>, vous devez spécifier :</p>
257 <div class="example"><p><code>
258 Header append Vary User-Agent
261 <p>Si votre décision de comprimer le contenu dépend d'autres
262 informations que celles contenues dans les en-têtes de la requête
263 (par exemple la version HTTP), vous devez attribuer à l'en-tête
264 <code>Vary</code> la valeur <code>*</code>, ce qui permet d'empêcher
265 les mandataires compatibles de tout mettre en cache.</p>
267 <div class="example"><h3>Exemple</h3><p><code>
271 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
272 <div class="directive-section"><h2><a name="DeflateBufferSize" id="DeflateBufferSize">DeflateBufferSize</a> <a name="deflatebuffersize" id="deflatebuffersize">Directive</a></h2>
273 <table class="directive">
274 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Taille du fragment que zlib devra comprimer en une seule
276 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>DeflateBufferSize <var>valeur</var></code></td></tr>
277 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>DeflateBufferSize 8096</code></td></tr>
278 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
279 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
280 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_deflate</td></tr>
282 <p>La directive <code class="directive">DeflateBufferSize</code> permet de
283 spécifier la taille en octets du fragment que zlib devra comprimer
284 en une seule fois.</p>
287 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
288 <div class="directive-section"><h2><a name="DeflateCompressionLevel" id="DeflateCompressionLevel">DeflateCompressionLevel</a> <a name="deflatecompressionlevel" id="deflatecompressionlevel">Directive</a></h2>
289 <table class="directive">
290 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Le niveau de compression que nous appliquons à la
292 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>DeflateCompressionLevel <var>valeur</var></code></td></tr>
293 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>La valeur par défaut de zlib</code></td></tr>
294 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
295 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
296 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_deflate</td></tr>
297 <tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Cette directive est disponible depuis la version 2.0.45
300 <p>La directive <code class="directive">DeflateCompressionLevel</code>
301 permet de spécifier le niveau de compression à utiliser ; plus
302 grande est la valeur, meilleure sera la compression, mais plus grand
303 sera aussi le temps CPU nécessaire pour effectuer le
305 <p>La valeur doit être comprise entre 1 (compression minimale) et 9
306 (compression maximale).</p>
309 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
310 <div class="directive-section"><h2><a name="DeflateFilterNote" id="DeflateFilterNote">DeflateFilterNote</a> <a name="deflatefilternote" id="deflatefilternote">Directive</a></h2>
311 <table class="directive">
312 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enregistre le taux de compression sous la forme d'une note
313 à des fins de journalisation</td></tr>
314 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>DeflateFilterNote [<var>type</var>] <var>nom de la note</var></code></td></tr>
315 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
316 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
317 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_deflate</td></tr>
318 <tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td><var>type</var> est disponible depuis la version 2.0.45
321 <p>La directive <code class="directive">DeflateFilterNote</code> permet de
322 spécifier qu'une note à propos du taux de compression doit être
323 attachée à la requête. Le nom de la note est passé sous la forme
324 d'un argument de la directive. Vous pouvez utiliser cette note à des
325 fins statistiques en enregistrant sa valeur dans votre <a href="../logs.html#accesslog">journal des accès</a>.</p>
327 <div class="example"><h3>Exemple</h3><p><code>
328 DeflateFilterNote ratio<br />
330 LogFormat '"%r" %b (%{ratio}n) "%{User-agent}i"' deflate<br />
331 CustomLog logs/deflate_log deflate
334 <p>Pour extraire des informations plus précises de vos journaux,
335 vous pouvez utiliser l'argument <var>type</var> pour spécifier le
336 type de données de la note enregistrée dans le journal.
337 <var>type</var> peut prendre une des valeurs suivantes :</p>
340 <dt><code>Input</code></dt>
341 <dd>Enregistre dans la note la taille en octets du flux en entrée
344 <dt><code>Output</code></dt>
345 <dd>Enregistre dans la note la taille en octets du flux en sortie
348 <dt><code>Ratio</code></dt>
349 <dd>Enregistre le taux de compression (<code>sortie/entrée *
350 100</code>) dans la note. Il s'agit de la valeur par défaut si
351 l'argument <var>type</var> est omis.</dd>
354 <p>Vous pouvez donc configurer votre journalisation de la manière
357 <div class="example"><h3>Journalisation détaillée</h3><p><code>
358 DeflateFilterNote Input instream<br />
359 DeflateFilterNote Output outstream<br />
360 DeflateFilterNote Ratio ratio<br />
362 LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate<br />
363 CustomLog logs/deflate_log deflate
368 <li><code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code></li>
371 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
372 <div class="directive-section"><h2><a name="DeflateMemLevel" id="DeflateMemLevel">DeflateMemLevel</a> <a name="deflatememlevel" id="deflatememlevel">Directive</a></h2>
373 <table class="directive">
374 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>La quantité de mémoire utilisable par zlib pour la
375 compression</td></tr>
376 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>DeflateMemLevel <var>valeur</var></code></td></tr>
377 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>DeflateMemLevel 9</code></td></tr>
378 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
379 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
380 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_deflate</td></tr>
382 <p>La directive <code class="directive">DeflateMemLevel</code> permet de
383 spécifier la quantité de mémoire utilisable par zlib pour la
384 compression (une valeur comprise entre 1 et 9).</p>
387 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
388 <div class="directive-section"><h2><a name="DeflateWindowSize" id="DeflateWindowSize">DeflateWindowSize</a> <a name="deflatewindowsize" id="deflatewindowsize">Directive</a></h2>
389 <table class="directive">
390 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Taille de la fenêtre de compression zlib</td></tr>
391 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>DeflateWindowSize <var>valeur</var></code></td></tr>
392 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>DeflateWindowSize 15</code></td></tr>
393 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
394 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
395 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_deflate</td></tr>
397 <p>La directive <code class="directive">DeflateWindowSize</code> permet de
398 spécifier la fenêtre de compression zlib (une valeur comprise entre
399 1 et 15). En général, plus grande sera la taille de la fenêtre, plus
400 grand sera le taux de compression auquel on pourra s'attendre.</p>
404 <div class="bottomlang">
405 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_deflate.html" hreflang="en" rel="alternate" title="English"> en </a> |
406 <a href="../fr/mod/mod_deflate.html" title="Français"> fr </a> |
407 <a href="../ja/mod/mod_deflate.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
408 <a href="../ko/mod/mod_deflate.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p>
409 </div><div id="footer">
410 <p class="apache">Copyright 2010 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
411 <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div>