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" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
12 <script src="../style/scripts/prettify.js" type="text/javascript">
15 <link href="../images/favicon.ico" rel="shortcut icon" /></head>
17 <div id="page-header">
18 <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p>
19 <p class="apache">Serveur Apache HTTP Version 2.5</p>
20 <img alt="" src="../images/feather.gif" /></div>
21 <div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
23 <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.5</a> > <a href="./">Modules</a></div>
24 <div id="page-content">
25 <div id="preamble"><h1>Module Apache mod_deflate</h1>
27 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_deflate.html" hreflang="en" rel="alternate" title="English"> en </a> |
28 <a href="../fr/mod/mod_deflate.html" title="Français"> fr </a> |
29 <a href="../ja/mod/mod_deflate.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
30 <a href="../ko/mod/mod_deflate.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p>
32 <table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Comprime le contenu avant de le servir au
34 <tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
35 <tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur de Module:</a></th><td>deflate_module</td></tr>
36 <tr><th><a href="module-dict.html#SourceFile">Fichier Source:</a></th><td>mod_deflate.c</td></tr></table>
39 <p>Le module <code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code> implémente le filtre de
40 sortie <code>DEFLATE</code> qui permet de comprimer la sortie de
41 votre serveur avant de l'envoyer au client sur le réseau.</p>
43 <div id="quickview"><h3 class="directives">Directives</h3>
45 <li><img alt="" src="../images/down.gif" /> <a href="#deflatebuffersize">DeflateBufferSize</a></li>
46 <li><img alt="" src="../images/down.gif" /> <a href="#deflatecompressionlevel">DeflateCompressionLevel</a></li>
47 <li><img alt="" src="../images/down.gif" /> <a href="#deflatefilternote">DeflateFilterNote</a></li>
48 <li><img alt="" src="../images/down.gif" /> <a href="#deflatememlevel">DeflateMemLevel</a></li>
49 <li><img alt="" src="../images/down.gif" /> <a href="#deflatewindowsize">DeflateWindowSize</a></li>
53 <li><img alt="" src="../images/down.gif" /> <a href="#recommended">Exemples de configurations</a></li>
54 <li><img alt="" src="../images/down.gif" /> <a href="#enable">Activation de la compression</a></li>
55 <li><img alt="" src="../images/down.gif" /> <a href="#proxies">Prise en compte des serveurs mandataires</a></li>
56 </ul><h3>Voir aussi</h3>
58 <li><a href="../filter.html">Les filtres</a></li>
59 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
60 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
62 <h2><a name="recommended" id="recommended">Exemples de configurations</a></h2>
63 <div class="warning"><h3>Compression et TLS</h3>
64 <p>Certaines applications web sont vulnérables à une attaque pour
65 vol d'informations lorsqu'une connexion TLS transporte des
66 données compressées par deflate. Pour plus de détails,
67 documentez-vous sur la famille d'attaques "BREACH".</p>
69 <p>Voici un exemple simple de configuration qui permet de comprimer
70 les types de contenu à base de texte.</p>
72 <div class="example"><h3>Ne comprime que certains types de documents</h3><pre class="prettyprint lang-config">
73 AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript
77 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
79 <h2><a name="enable" id="enable">Activation de la compression</a></h2>
80 <div class="warning"><h3>Compression et TLS</h3>
81 <p>Certaines applications web sont vulnérables à une attaque pour
82 vol d'informations lorsqu'une connexion TLS transporte des
83 données compressées par deflate. Pour plus de détails,
84 documentez-vous sur la famille d'attaques "BREACH".</p>
87 <h3><a name="output" id="output">Compression de la sortie</a></h3>
88 <p>La compression est implémentée par le <a href="../filter.html">filtre</a> <code>DEFLATE</code>. La
89 directive suivante active la compression des documents dans le
90 conteneur où elle est placée :</p>
92 <pre class="prettyprint lang-config">
93 SetOutputFilter DEFLATE
94 SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip
98 <p>Si vous voulez limiter la compression à certains types MIME
99 particuliers, vous pouvez utiliser la directive <code class="directive"><a href="../mod/mod_filter.html#addoutputfilterbytype">AddOutputFilterByType</a></code>. Voici un exemple
100 où la compression n'est activée que pour les fichiers html de la
101 documentation d'Apache :</p>
103 <pre class="prettyprint lang-config">
104 <Directory "/your-server-root/manual">
105 AddOutputFilterByType DEFLATE text/html
110 <div class="note"><h3>Note</h3>
111 Le filtre <code>DEFLATE</code> est toujours inséré après les
112 filtres RESOURCE comme PHP ou SSI. Il n'affecte jamais les
113 sous-requêtes internes.
115 <div class="note"><h3>Note</h3>
116 La variable d'environnement <code>force-gzip</code>, définie à
117 l'aide de la directive <code class="directive"><a href="../mod/mod_env.html#setenv">SetEnv</a></code>, permet d'ignorer la
118 configuration de votre navigateur quant aux codages acceptés, et
119 d'envoyer sans condition une sortie comprimée.
123 <h3><a name="inflate" id="inflate">Décompression de la sortie</a></h3>
124 <p>Le module <code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code> fournit aussi un filtre
125 permettant de décomprimer un corps de réponse comprimé par gzip.
126 Pour activer cette fonctionnalité, vous devez insérer le filtre
127 <code>INFLATE</code> dans la chaîne de filtrage en sortie via la
128 directive <code class="directive"><a href="../mod/core.html#setoutputfilter">SetOutputFilter</a></code> ou
129 <code class="directive"><a href="../mod/mod_mime.html#addoutputfilter">AddOutputFilter</a></code>, comme
130 dans l'exemple suivant :</p>
132 <pre class="prettyprint lang-config">
133 <Location /dav-area>
134 ProxyPass http://example.com/
135 SetOutputFilter INFLATE
140 <p>Dans cet exemple, les sorties comprimées par gzip en
141 provenance de example.com seront décomprimées afin de pouvoir
142 être éventuellement traitées par d'autres filtres.
146 <h3><a name="input" id="input">Décompression de l'entrée</a></h3>
147 <p>Le module <code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code> fournit également un filtre
148 permettant de décomprimer un corps de requête comprimé par gzip.
149 Pour activer cette fonctionnalité, vous devez insérer le filtre
150 <code>DEFLATE</code> dans la chaîne de filtrage en entrée via la
151 directive <code class="directive"><a href="../mod/core.html#setinputfilter">SetInputFilter</a></code> ou
152 <code class="directive"><a href="../mod/mod_mime.html#addinputfilter">AddInputFilter</a></code>, comme
153 dans l'exemple suivant :</p>
155 <pre class="prettyprint lang-config">
156 <Location /dav-area>
157 SetInputFilter DEFLATE
162 <p>Désormais, si une requête contient un en-tête
163 <code>Content-Encoding: gzip</code>, son corps sera
164 automatiquement décomprimé. Peu de navigateurs sont actuellement
165 en mesure de comprimer les corps de requêtes. Cependant,
166 certaines applications spécialisées supportent les requêtes
167 comprimées, comme par exemple certains clients <a href="http://www.webdav.org">WebDAV</a>.</p>
169 <div class="warning"><h3>Note à propos de l'en-tête
170 <code>Content-Length</code></h3>
171 <p>Si vous évaluez vous-même la taille du corps de requête,
172 <em>ne faites pas confiance à l'en-tête
173 <code>Content-Length</code>!</em> L'en-tête
174 Content-Length indique la longueur des données en provenance du
175 client, et <em>non</em> la quantité d'octets que représente le
176 flux de données décompressé.</p>
179 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
180 <div class="section">
181 <h2><a name="proxies" id="proxies">Prise en compte des serveurs mandataires</a></h2>
183 <p>Le module <code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code> envoie un en-tête de
184 réponse HTTP <code>Vary: Accept-Encoding</code> pour avertir les
185 mandataires qu'une réponse enregistrée dans le cache ne doit être
186 envoyée qu'aux clients qui ont envoyé l'en-tête de requête
187 <code>Accept-Encoding</code> approprié. Ceci permet d'éviter l'envoi
188 d'un contenu comprimé à un client qui ne sera pas en mesure
189 de l'interpréter.</p>
191 <p>Si vous avez défini des exclusions spécifiques dépendant, par
192 exemple, de l'en-tête <code>User-Agent</code>, vous devez
193 ajouter manuellement des données à l'en-tête <code>Vary</code> afin
194 d'informer les mandataires des restrictions supplémentaires. Par
195 exemple, dans la configuration classique où l'addition du filtre
196 <code>DEFLATE</code> dépend du contenu de l'en-tête
197 <code>User-Agent</code>, vous devez spécifier :</p>
199 <pre class="prettyprint lang-config">
200 Header append Vary User-Agent
204 <p>Si votre décision de comprimer le contenu dépend d'autres
205 informations que celles contenues dans les en-têtes de la requête
206 (par exemple la version HTTP), vous devez attribuer à l'en-tête
207 <code>Vary</code> la valeur <code>*</code>, ce qui permet d'empêcher
208 les mandataires compatibles de tout mettre en cache.</p>
210 <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">
215 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
216 <div class="directive-section"><h2><a name="DeflateBufferSize" id="DeflateBufferSize">DeflateBufferSize</a> <a name="deflatebuffersize" id="deflatebuffersize">Directive</a></h2>
217 <table class="directive">
218 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Taille du fragment que zlib devra comprimer en une seule
220 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>DeflateBufferSize <var>valeur</var></code></td></tr>
221 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>DeflateBufferSize 8096</code></td></tr>
222 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
223 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
224 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_deflate</td></tr>
226 <p>La directive <code class="directive">DeflateBufferSize</code> permet de
227 spécifier la taille en octets du fragment que zlib devra comprimer
228 en une seule fois.</p>
231 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
232 <div class="directive-section"><h2><a name="DeflateCompressionLevel" id="DeflateCompressionLevel">DeflateCompressionLevel</a> <a name="deflatecompressionlevel" id="deflatecompressionlevel">Directive</a></h2>
233 <table class="directive">
234 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Le niveau de compression que nous appliquons à la
236 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>DeflateCompressionLevel <var>valeur</var></code></td></tr>
237 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>La valeur par défaut de zlib</code></td></tr>
238 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
239 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
240 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_deflate</td></tr>
242 <p>La directive <code class="directive">DeflateCompressionLevel</code>
243 permet de spécifier le niveau de compression à utiliser ; plus
244 grande est la valeur, meilleure sera la compression, mais plus grand
245 sera aussi le temps CPU nécessaire pour effectuer le
247 <p>La valeur doit être comprise entre 1 (compression minimale) et 9
248 (compression maximale).</p>
251 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
252 <div class="directive-section"><h2><a name="DeflateFilterNote" id="DeflateFilterNote">DeflateFilterNote</a> <a name="deflatefilternote" id="deflatefilternote">Directive</a></h2>
253 <table class="directive">
254 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enregistre le taux de compression sous la forme d'une note
255 à des fins de journalisation</td></tr>
256 <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>
257 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
258 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
259 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_deflate</td></tr>
261 <p>La directive <code class="directive">DeflateFilterNote</code> permet de
262 spécifier qu'une note à propos du taux de compression doit être
263 attachée à la requête. Le nom de la note est passé sous la forme
264 d'un argument de la directive. Vous pouvez utiliser cette note à des
265 fins statistiques en enregistrant sa valeur dans votre <a href="../logs.html#accesslog">journal des accès</a>.</p>
267 <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">
268 DeflateFilterNote ratio
270 LogFormat '"%r" %b (%{ratio}n) "%{User-agent}i"' deflate
271 CustomLog logs/deflate_log deflate
275 <p>Pour extraire des informations plus précises de vos journaux,
276 vous pouvez utiliser l'argument <var>type</var> pour spécifier le
277 type de données de la note enregistrée dans le journal.
278 <var>type</var> peut prendre une des valeurs suivantes :</p>
281 <dt><code>Input</code></dt>
282 <dd>Enregistre dans la note la taille en octets du flux en entrée
285 <dt><code>Output</code></dt>
286 <dd>Enregistre dans la note la taille en octets du flux en sortie
289 <dt><code>Ratio</code></dt>
290 <dd>Enregistre le taux de compression (<code>sortie/entrée *
291 100</code>) dans la note. Il s'agit de la valeur par défaut si
292 l'argument <var>type</var> est omis.</dd>
295 <p>Vous pouvez donc configurer votre journalisation de la manière
298 <div class="example"><h3>Journalisation détaillée</h3><pre class="prettyprint lang-config">
299 DeflateFilterNote Input instream
300 DeflateFilterNote Output outstream
301 DeflateFilterNote Ratio ratio
303 LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate
304 CustomLog logs/deflate_log deflate
310 <li><code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code></li>
313 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
314 <div class="directive-section"><h2><a name="DeflateMemLevel" id="DeflateMemLevel">DeflateMemLevel</a> <a name="deflatememlevel" id="deflatememlevel">Directive</a></h2>
315 <table class="directive">
316 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>La quantité de mémoire utilisable par zlib pour la
317 compression</td></tr>
318 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>DeflateMemLevel <var>valeur</var></code></td></tr>
319 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>DeflateMemLevel 9</code></td></tr>
320 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
321 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
322 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_deflate</td></tr>
324 <p>La directive <code class="directive">DeflateMemLevel</code> permet de
325 spécifier la quantité de mémoire utilisable par zlib pour la
326 compression (une valeur comprise entre 1 et 9).</p>
329 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
330 <div class="directive-section"><h2><a name="DeflateWindowSize" id="DeflateWindowSize">DeflateWindowSize</a> <a name="deflatewindowsize" id="deflatewindowsize">Directive</a></h2>
331 <table class="directive">
332 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Taille de la fenêtre de compression zlib</td></tr>
333 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>DeflateWindowSize <var>valeur</var></code></td></tr>
334 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>DeflateWindowSize 15</code></td></tr>
335 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
336 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
337 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_deflate</td></tr>
339 <p>La directive <code class="directive">DeflateWindowSize</code> permet de
340 spécifier la fenêtre de compression zlib (une valeur comprise entre
341 1 et 15). En général, plus grande sera la taille de la fenêtre, plus
342 grand sera le taux de compression auquel on pourra s'attendre.</p>
346 <div class="bottomlang">
347 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_deflate.html" hreflang="en" rel="alternate" title="English"> en </a> |
348 <a href="../fr/mod/mod_deflate.html" title="Français"> fr </a> |
349 <a href="../ja/mod/mod_deflate.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
350 <a href="../ko/mod/mod_deflate.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p>
351 </div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Commentaires</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
352 <script type="text/javascript"><!--//--><![CDATA[//><!--
353 var comments_shortname = 'httpd';
354 var comments_identifier = 'http://httpd.apache.org/docs/trunk/mod/mod_deflate.html';
356 if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
357 d.write('<div id="comments_thread"><\/div>');
358 var s = d.createElement('script');
359 s.type = 'text/javascript';
361 s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
362 (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
365 d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
367 })(window, document);
368 //--><!]]></script></div><div id="footer">
369 <p class="apache">Copyright 2013 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
370 <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
371 if (typeof(prettyPrint) !== 'undefined') {