]> granicus.if.org Git - apache/blob - docs/manual/mod/mod_deflate.xml.fr
Fixes to XML. rebuild.
[apache] / docs / manual / mod / mod_deflate.xml.fr
1 <?xml version="1.0"?>
2 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
3 <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
4 <!-- English Revision : 1330980 -->
5 <!-- French translation : Lucien GENTIS -->
6 <!-- Reviewed by : Vincent Deffontaines -->
7
8 <!--
9  Licensed to the Apache Software Foundation (ASF) under one or more
10  contributor license agreements.  See the NOTICE file distributed with
11  this work for additional information regarding copyright ownership.
12  The ASF licenses this file to You under the Apache License, Version 2.0
13  (the "License"); you may not use this file except in compliance with
14  the License.  You may obtain a copy of the License at
15
16      http://www.apache.org/licenses/LICENSE-2.0
17
18  Unless required by applicable law or agreed to in writing, software
19  distributed under the License is distributed on an "AS IS" BASIS,
20  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21  See the License for the specific language governing permissions and
22  limitations under the License.
23 -->
24
25 <modulesynopsis metafile="mod_deflate.xml.meta">
26
27 <name>mod_deflate</name>
28 <description>Comprime le contenu avant de le servir au
29 client</description>
30 <status>Extension</status>
31 <sourcefile>mod_deflate.c</sourcefile>
32 <identifier>deflate_module</identifier>
33
34 <summary>
35     <p>Le module <module>mod_deflate</module> impl&eacute;mente le filtre de
36     sortie <code>DEFLATE</code> qui permet de comprimer la sortie de
37     votre serveur avant de l'envoyer au client sur le r&eacute;seau.</p>
38 </summary>
39 <seealso><a href="../filter.html">Les filtres</a></seealso>
40
41 <section id="recommended"><title>Exemples de configurations</title>
42     <p>Voici un exemple simple de configuration pour les
43     impatients.</p>
44
45     <example><title>Ne comprime que certains types de documents</title>
46     <highlight language="config">
47       AddOutputFilterByType DEFLATE text/html text/plain text/xml
48       </highlight>
49     </example>
50
51     <p>La configuration suivante, tout en produisant un contenu encore
52     plus comprim&eacute;, est aussi beaucoup plus compliqu&eacute;e. N'utilisez pas
53     cet exemple si vous ne comprenez pas tous les d&eacute;tails de la
54     configuration.</p>
55
56     <example><title>Comprime tout, sauf les images</title>
57       <highlight language="config">
58 &lt;Location /&gt;
59     # Insert filter
60     SetOutputFilter DEFLATE
61     
62     # Netscape 4.x a quelques probl&egrave;mes ...
63     BrowserMatch ^Mozilla/4         gzip-only-text/html
64     
65     # Netscape 4.06-4.08 ont d'autres probl&egrave;mes
66     BrowserMatch ^Mozilla/4\.0[678] no-gzip
67     
68     # MSIE se fait passer pour Netscape, mais &ccedil;a marche
69     BrowserMatch \bMSIE             !no-gzip !gzip-only-text/html
70     # Ne pas comprimer les images
71     SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
72     
73     # On s'assure que les mandataires ne servent pas le mauvais
74      # contenu
75     Header append Vary User-Agent env=!dont-vary
76 &lt;/Location&gt;
77       </highlight>
78     </example>
79
80 </section>
81
82 <section id="enable"><title>Activation de la compression</title>
83
84     <section id="output"><title>Compression de la sortie</title>
85       <p>La compression est impl&eacute;ment&eacute;e par le <a
86       href="../filter.html">filtre</a> <code>DEFLATE</code>. La
87       directive suivante active la compression des documents dans le
88       conteneur o&ugrave; elle est plac&eacute;e :</p>
89
90       <highlight language="config">
91         SetOutputFilter DEFLATE
92         </highlight>
93
94       <p>Certains navigateurs populaires ne g&egrave;rent pas la compression de
95       tous les contenus, et pour r&eacute;soudre ce probl&egrave;me, vous pouvez
96       d&eacute;finir la note <code>gzip-only-text/html</code> &agrave; <code>1</code>
97       pour ne permettre que la compression des fichiers html (voir
98       ci-dessous). Si vous d&eacute;finissez cette note &agrave; <em>toute autre
99       valeur que <code>1</code></em>, elle sera ignor&eacute;e.</p>
100
101       <p>Si vous voulez limiter la compression &agrave; certains types MIME
102       particuliers, vous pouvez utiliser la directive <directive
103       module="mod_filter">AddOutputFilterByType</directive>. Voici un exemple
104       o&ugrave; la compression n'est activ&eacute;e que pour les fichiers html de la
105       documentation d'Apache :</p>
106
107       <highlight language="config">
108 &lt;Directory "/your-server-root/manual"&gt;
109     AddOutputFilterByType DEFLATE text/html
110 &lt;/Directory&gt;
111       </highlight>
112
113       <p>Pour les navigateurs qui ont des probl&egrave;mes avec la compression
114       de tous les types de fichiers, vous pouvez utiliser la directive
115       <directive module="mod_setenvif">BrowserMatch</directive> pour
116       d&eacute;finir la note <code>no-gzip</code>, pour le navigateur
117       consid&eacute;r&eacute;, de fa&ccedil;on &agrave; ce qu'aucune compression ne soit effectu&eacute;e.
118       Vous pouvez combiner <code>no-gzip</code> avec
119       <code>gzip-only-text/html</code> afin d'obtenir le meilleur
120       r&eacute;sultat possible. Dans ce cas, la premi&egrave;re note l'emporte sur la
121       deuxi&egrave;me. Consid&eacute;rons l'extrait suivant de l'<a
122       href="#recommended">exemple de configuration</a> de la section
123       pr&eacute;c&eacute;dente :</p>
124
125       <highlight language="config">
126 BrowserMatch ^Mozilla/4         gzip-only-text/html
127 BrowserMatch ^Mozilla/4\.0[678] no-gzip
128 BrowserMatch \bMSIE             !no-gzip !gzip-only-text/html
129       </highlight>
130
131       <p>Tout d'abord, on recherche un en-t&ecirc;te <code>User-Agent</code>
132       qui signale un navigateur Netscape version 4.x. Ces versions ne
133       g&egrave;rent pas la compression des types de fichiers autres que
134       <code>text/html</code>. En outre, les versions 4.06, 4.07 et 4.08
135       ont des probl&egrave;mes avec la d&eacute;compression des fichiers html. Par
136       cons&eacute;quent, nous d&eacute;sactivons compl&egrave;tement le filtre deflate pour
137       ces derniers.</p>
138
139       <p>La troisi&egrave;me directive <directive
140       module="mod_setenvif">BrowserMatch</directive> corrige l'identit&eacute;
141       sous laquelle se pr&eacute;sente le navigateur ; en effet, Microsoft
142       Internet Explorer s'identifie aussi lui-m&ecirc;me comme "Mozilla/4",
143       mais par contre, il sait g&eacute;rer les contenus compress&eacute;s. On
144       recherche donc la cha&icirc;ne additionnelle "MSIE" (<code>\b</code>
145       signifie "par mots entiers") dans l'en-t&ecirc;te
146       <code>User-Agent</code>, et si elle est trouv&eacute;e, on annule les
147       restrictions d&eacute;finies auparavant.</p>
148
149       <note><title>Note</title>
150         Le filtre <code>DEFLATE</code> est toujours ins&eacute;r&eacute; apr&egrave;s les
151         filtres RESOURCE comme PHP ou SSI. Il n'affecte jamais les
152         sous-requ&ecirc;tes internes.
153       </note>
154       <note><title>Note</title>
155         La variable d'environnement <code>force-gzip</code>, d&eacute;finie &agrave;
156         l'aide de la directive <directive
157         module="mod_env">SetEnv</directive>, permet d'ignorer la
158         configuration de votre navigateur quant aux codages accept&eacute;s, et
159         d'envoyer sans condition une sortie comprim&eacute;e.
160       </note>
161
162     </section>
163     <section id="inflate"><title>D&eacute;compression de la sortie</title>
164       <p>Le module <module>mod_deflate</module> fournit aussi un filtre
165       permettant de d&eacute;comprimer un corps de r&eacute;ponse comprim&eacute; par gzip.
166       Pour activer cette fonctionnalit&eacute;, vous devez ins&eacute;rer le filtre
167       <code>INFLATE</code> dans la cha&icirc;ne de filtrage en sortie via la
168       directive <directive module="core">SetOutputFilter</directive> ou
169       <directive module="mod_mime">AddOutputFilter</directive>, comme
170       dans l'exemple suivant :</p>
171
172       <highlight language="config">
173 &lt;Location /dav-area&gt;
174     ProxyPass http://example.com/
175     SetOutputFilter INFLATE
176 &lt;/Location&gt;
177       </highlight>
178
179       <p>Dans cet exemple, les sorties comprim&eacute;es par gzip en
180       provenance de example.com seront d&eacute;comprim&eacute;es afin de pouvoir
181       &ecirc;tre &eacute;ventuellement trait&eacute;es par d'autres filtres.
182       </p>
183
184     </section>
185     <section id="input"><title>D&eacute;compression de l'entr&eacute;e</title>
186       <p>Le module <module>mod_deflate</module> fournit &eacute;galement un filtre
187       permettant de d&eacute;comprimer un corps de requ&ecirc;te comprim&eacute; par gzip.
188       Pour activer cette fonctionnalit&eacute;, vous devez ins&eacute;rer le filtre
189       <code>DEFLATE</code> dans la cha&icirc;ne de filtrage en entr&eacute;e via la
190       directive <directive module="core">SetInputFilter</directive> ou
191       <directive module="mod_mime">AddInputFilter</directive>, comme
192       dans l'exemple suivant :</p>
193
194       <highlight language="config">
195 &lt;Location /dav-area&gt;
196     SetInputFilter DEFLATE
197 &lt;/Location&gt;
198       </highlight>
199
200       <p>D&eacute;sormais, si une requ&ecirc;te contient un en-t&ecirc;te
201       <code>Content-Encoding: gzip</code>, son corps sera
202       automatiquement d&eacute;comprim&eacute;. Peu de navigateurs sont actuellement
203       en mesure de comprimer les corps de requ&ecirc;tes. Cependant,
204       certaines applications sp&eacute;cialis&eacute;es supportent les requ&ecirc;tes
205       comprim&eacute;es, comme par exemple certains clients <a
206       href="http://www.webdav.org">WebDAV</a>.</p>
207
208       <note type="warning"><title>Note &agrave; propos de l'en-t&ecirc;te
209       <code>Content-Length</code></title>
210         <p>Si vous &eacute;valuez vous-m&ecirc;me la taille du corps de requ&ecirc;te,
211         <em>ne faites pas confiance &agrave; l'en-t&ecirc;te
212         <code>Content-Length</code>!</em> L'en-t&ecirc;te
213         Content-Length indique la longueur des donn&eacute;es en provenance du
214         client, et <em>non</em> la quantit&eacute; d'octets que repr&eacute;sente le
215         flux de donn&eacute;es d&eacute;compress&eacute;.</p>
216       </note>
217     </section>
218 </section>
219
220 <section id="proxies"><title>Prise en compte des serveurs mandataires</title>
221
222     <p>Le module <module>mod_deflate</module> envoie un en-t&ecirc;te de
223     r&eacute;ponse HTTP <code>Vary: Accept-Encoding</code> pour avertir les
224     mandataires qu'une r&eacute;ponse enregistr&eacute;e dans le cache ne doit &ecirc;tre
225     envoy&eacute;e qu'aux clients qui ont envoy&eacute; l'en-t&ecirc;te de requ&ecirc;te
226     <code>Accept-Encoding</code> appropri&eacute;. Ceci permet d'&eacute;viter l'envoi
227     d'un contenu comprim&eacute; &agrave; un client qui ne sera pas en mesure
228     de l'interpr&eacute;ter.</p>
229
230     <p>Si vous avez d&eacute;fini des exclusions sp&eacute;cifiques d&eacute;pendant, par
231     exemple, de l'en-t&ecirc;te <code>User-Agent</code>, vous devez
232     ajouter manuellement des donn&eacute;es &agrave; l'en-t&ecirc;te <code>Vary</code> afin
233     d'informer les mandataires des restrictions suppl&eacute;mentaires. Par
234     exemple, dans la configuration classique o&ugrave; l'addition du filtre
235     <code>DEFLATE</code> d&eacute;pend du contenu de l'en-t&ecirc;te
236     <code>User-Agent</code>, vous devez sp&eacute;cifier :</p>
237
238     <highlight language="config">
239       Header append Vary User-Agent
240     </highlight>
241
242     <p>Si votre d&eacute;cision de comprimer le contenu d&eacute;pend d'autres
243     informations que celles contenues dans les en-t&ecirc;tes de la requ&ecirc;te
244     (par exemple la version HTTP), vous devez attribuer &agrave; l'en-t&ecirc;te
245     <code>Vary</code> la valeur <code>*</code>, ce qui permet d'emp&ecirc;cher
246     les mandataires compatibles de tout mettre en cache.</p>
247
248     <example><title>Exemple</title>
249     <highlight language="config">
250       Header set Vary *
251       </highlight>
252     </example>
253 </section>
254
255 <directivesynopsis>
256 <name>DeflateFilterNote</name>
257 <description>Enregistre le taux de compression sous la forme d'une note
258 &agrave; des fins de journalisation</description>
259 <syntax>DeflateFilterNote [<var>type</var>] <var>nom de la note</var></syntax>
260 <contextlist><context>server config</context><context>virtual host</context>
261 </contextlist>
262 <compatibility><var>type</var> est disponible depuis la version 2.0.45
263 d'Apache</compatibility>
264
265 <usage>
266     <p>La directive <directive>DeflateFilterNote</directive> permet de
267     sp&eacute;cifier qu'une note &agrave; propos du taux de compression doit &ecirc;tre
268     attach&eacute;e &agrave; la requ&ecirc;te. Le nom de la note est pass&eacute; sous la forme
269     d'un argument de la directive. Vous pouvez utiliser cette note &agrave; des
270     fins statistiques en enregistrant sa valeur dans votre <a
271     href="../logs.html#accesslog">journal des acc&egrave;s</a>.</p>
272
273     <example><title>Exemple</title>
274       <highlight language="config">
275       DeflateFilterNote ratio
276     
277       LogFormat '"%r" %b (%{ratio}n) "%{User-agent}i"' deflate
278       CustomLog logs/deflate_log deflate
279       </highlight>
280     </example>
281
282     <p>Pour extraire des informations plus pr&eacute;cises de vos journaux,
283     vous pouvez utiliser l'argument <var>type</var> pour sp&eacute;cifier le
284     type de donn&eacute;es de la note enregistr&eacute;e dans le journal.
285     <var>type</var> peut prendre une des valeurs suivantes :</p>
286
287     <dl>
288       <dt><code>Input</code></dt>
289       <dd>Enregistre dans la note la taille en octets du flux en entr&eacute;e
290       du filtre.</dd>
291
292       <dt><code>Output</code></dt>
293       <dd>Enregistre dans la note la taille en octets du flux en sortie
294       du filtre.</dd>
295
296       <dt><code>Ratio</code></dt>
297       <dd>Enregistre le taux de compression (<code>sortie/entr&eacute;e *
298       100</code>) dans la note. Il s'agit de la valeur par d&eacute;faut si
299       l'argument <var>type</var> est omis.</dd>
300     </dl>
301
302     <p>Vous pouvez donc configurer votre journalisation de la mani&egrave;re
303     suivante :</p>
304
305     <example><title>Journalisation d&eacute;taill&eacute;e</title>
306       <highlight language="config">
307 DeflateFilterNote Input instream
308 DeflateFilterNote Output outstream
309 DeflateFilterNote Ratio ratio
310
311 LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate
312 CustomLog logs/deflate_log deflate
313 </highlight>
314     </example>
315 </usage>
316 <seealso><module>mod_log_config</module></seealso>
317 </directivesynopsis>
318
319 <directivesynopsis>
320 <name>DeflateBufferSize</name>
321 <description>Taille du fragment que zlib devra comprimer en une seule
322 fois</description>
323 <syntax>DeflateBufferSize <var>valeur</var></syntax>
324 <default>DeflateBufferSize 8096</default>
325 <contextlist><context>server config</context><context>virtual host</context>
326 </contextlist>
327
328 <usage>
329     <p>La directive <directive>DeflateBufferSize</directive> permet de
330     sp&eacute;cifier la taille en octets du fragment que zlib devra comprimer
331     en une seule fois.</p>
332 </usage>
333 </directivesynopsis>
334
335 <directivesynopsis>
336 <name>DeflateWindowSize</name>
337 <description>Taille de la fen&ecirc;tre de compression zlib</description>
338 <syntax>DeflateWindowSize <var>valeur</var></syntax>
339 <default>DeflateWindowSize 15</default>
340 <contextlist><context>server config</context><context>virtual host</context>
341 </contextlist>
342
343 <usage>
344     <p>La directive <directive>DeflateWindowSize</directive> permet de
345     sp&eacute;cifier la fen&ecirc;tre de compression zlib (une valeur comprise entre
346     1 et 15). En g&eacute;n&eacute;ral, plus grande sera la taille de la fen&ecirc;tre, plus
347     grand sera le taux de compression auquel on pourra s'attendre.</p>
348 </usage>
349 </directivesynopsis>
350
351 <directivesynopsis>
352
353 <name>DeflateMemLevel</name>
354 <description>La quantit&eacute; de m&eacute;moire utilisable par zlib pour la
355 compression</description>
356 <syntax>DeflateMemLevel <var>valeur</var></syntax>
357 <default>DeflateMemLevel 9</default>
358 <contextlist><context>server config</context><context>virtual host</context>
359 </contextlist>
360
361 <usage>
362     <p>La directive <directive>DeflateMemLevel</directive> permet de
363     sp&eacute;cifier la quantit&eacute; de m&eacute;moire utilisable par zlib pour la
364     compression (une valeur comprise entre 1 et 9).</p>
365 </usage>
366 </directivesynopsis>
367
368 <directivesynopsis>
369 <name>DeflateCompressionLevel</name>
370 <description>Le niveau de compression que nous appliquons &agrave; la
371 sortie</description>
372 <syntax>DeflateCompressionLevel <var>valeur</var></syntax>
373 <default>La valeur par d&eacute;faut de zlib</default>
374 <contextlist><context>server config</context><context>virtual host</context>
375 </contextlist>
376 <compatibility>Cette directive est disponible depuis la version 2.0.45
377 d'Apache</compatibility>
378
379 <usage>
380     <p>La directive <directive>DeflateCompressionLevel</directive>
381     permet de sp&eacute;cifier le niveau de compression &agrave; utiliser ; plus
382     grande est la valeur, meilleure sera la compression, mais plus grand
383     sera aussi le temps CPU n&eacute;cessaire pour effectuer le
384     traitement.</p>
385     <p>La valeur doit &ecirc;tre comprise entre 1 (compression minimale) et 9
386     (compression maximale).</p>
387 </usage>
388 </directivesynopsis>
389
390
391 </modulesynopsis>
392