]> granicus.if.org Git - apache/blob - docs/manual/mod/mod_cache.xml.fr
Update transformations.
[apache] / docs / manual / mod / mod_cache.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 : 924915 -->
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_cache.xml.meta">
26
27 <name>mod_cache</name>
28 <description>Mise en cache de contenu r&eacute;f&eacute;renc&eacute; par un
29 URI.</description>
30 <status>Extension</status>
31 <sourcefile>mod_cache.c</sourcefile>
32 <identifier>cache_module</identifier>
33
34 <summary>
35     <note type="warning">Ce module doit &ecirc;tre utilis&eacute; avec pr&eacute;cautions
36     car lorsque la directive <directive
37     module="mod_cache">CacheQuickHandler</directive> est d&eacute;finie &agrave; sa
38     valeur par d&eacute;faut <strong>on</strong>, les directives <directive
39     module="mod_authz_host">Allow</directive> and <directive
40     module="mod_authz_host">Deny</directive> sont court-circuit&eacute;es. Vous
41     ne devez donc pas activer la gestion rapide de la mise en cache pour
42     un contenu auquel vous souhaitez limiter l'acc&egrave;s en fonction du nom
43     d'h&ocirc;te du client, de l'adresse IP ou d'une variable
44     d'environnement.</note>
45
46     <p><module>mod_cache</module> impl&eacute;mente une mise en cache de
47     contenu HTTP compatible <a
48     href="http://www.ietf.org/rfc/rfc2616.txt">RFC 2616</a> qui peut
49     &ecirc;tre utilis&eacute;e pour mettre en cache des contenus locaux ou mandat&eacute;s.
50     <module>mod_cache</module> requiert les services d'un ou plusieurs
51     modules de gestion de stockage. La distribution Apache de base
52     inclut un module de gestion de stockage :</p>
53     <dl>
54     <dt><module>mod_disk_cache</module></dt>
55     <dd>impl&eacute;mente un gestionnaire de stockage sur disque.</dd>
56     </dl>
57
58     <p>Les contenus sont stock&eacute;s dans le cache et extraits de ce dernier
59     en utilisant une cl&eacute; &agrave; base d'URI. Un contenu dont l'acc&egrave;s est
60     prot&eacute;g&eacute; ne sera pas mis en cache.</p>
61     <p>Pour de plus amples d&eacute;tails, une description, et des exemples,
62     reportez-vous au <a href="../caching.html">Guide de la mise en
63     cache</a>.</p>
64 </summary>
65 <seealso><a href="../caching.html">Guide de la mise en
66 cache</a></seealso>
67
68 <section id="related"><title>Modules apparent&eacute;s et directives</title>
69     <related>
70       <modulelist>
71         <module>mod_disk_cache</module>
72       </modulelist>
73       <directivelist>
74         <directive module="mod_disk_cache">CacheRoot</directive>
75         <directive module="mod_disk_cache">CacheDirLevels</directive>
76         <directive module="mod_disk_cache">CacheDirLength</directive>
77         <directive module="mod_disk_cache">CacheMinFileSize</directive>
78         <directive module="mod_disk_cache">CacheMaxFileSize</directive>
79       </directivelist>
80     </related>
81 </section>
82
83 <section id="sampleconf"><title>Exemple de configuration</title>
84     <example><title>Extrait de httpd.conf</title>
85       #<br />
86       # Exemple de configuration du cache<br />
87       #<br />
88       LoadModule cache_module modules/mod_cache.so<br />
89       <br />
90       &lt;IfModule mod_cache.c&gt;<br />
91       <indent>
92         LoadModule disk_cache_module modules/mod_disk_cache.so<br />
93         &lt;IfModule mod_disk_cache.c&gt;<br />
94         <indent>
95           CacheRoot c:/cacheroot<br />
96           CacheEnable disk  /<br />
97           CacheDirLevels 5<br />
98           CacheDirLength 3<br />
99         </indent>
100         &lt;/IfModule&gt; <br />
101         <br />
102         # Lorsqu'on sert de mandataire, on ne met pas en cache la liste
103         # des mises &agrave; jour de s&eacute;curit&eacute;<br />
104         CacheDisable http://security.update.server/update-list/<br />
105       </indent>
106       &lt;/IfModule&gt;
107     </example>
108 </section>
109
110 <section id="thunderingherd"><title>Eviter une temp&ecirc;te de requ&ecirc;te</title>
111   <p>Lorsqu'une entr&eacute;e du cache est p&eacute;rim&eacute;e, <module>mod_cache</module>
112   soumet une requ&ecirc;te conditionnelle au processus d'arri&egrave;re-plan, qui est
113   cens&eacute; confirmer la validit&eacute; de l'entr&eacute;e du cache, ou dans la n&eacute;gative
114   envoyer une entr&eacute;e mise &agrave; jour.</p>
115   <p>Un court mais non n&eacute;gligeable laps de temps existe entre le moment
116   o&ugrave; l'entr&eacute;e du cache est p&eacute;rim&eacute;e, et le moment o&ugrave; elle est mise &agrave;
117   jour. Sur un serveur fortement charg&eacute;, un certain nombre de requ&ecirc;tes
118   peut arriver pendant ce laps de temps, et provoquer une
119   <strong>temp&ecirc;te</strong> de requ&ecirc;tes susceptibles de saturer le
120   processus d'arri&egrave;re-plan de mani&egrave;re soudaine et impr&eacute;dictible.</p>
121   <p>Pour contenir cette temp&ecirc;te, on peut utiliser la directive
122   <directive>CacheLock</directive> afin de d&eacute;finir un r&eacute;pertoire o&ugrave;
123   seront cr&eacute;&eacute;s <strong>&agrave; la vol&eacute;e</strong> des verrous pour les URLs.
124   Ces verrous sont utilis&eacute;s comme autant d'<strong>indications</strong>
125   par les autres requ&ecirc;tes, soit pour emp&ecirc;cher une tentative de mise en
126   cache (un autre processus est en train de r&eacute;cup&eacute;rer l'entit&eacute;), soit
127   pour indiquer qu'une entr&eacute;e p&eacute;rim&eacute;e est en cours de mise &agrave; jour
128   (pendant ce temps, c'est le contenu p&eacute;rim&eacute; qui sera renvoy&eacute;).
129   </p>
130   <section>
131     <title>Mise en cache initiale d'une entr&eacute;e</title>
132     <p>Lorsqu'une entit&eacute; est mise en cache pour la premi&egrave;re fois, un
133     verrou est cr&eacute;&eacute; pour cette entit&eacute; jusqu'&agrave; ce que la r&eacute;ponse ait &eacute;t&eacute;
134     enti&egrave;rement mise en cache. Pendant la dur&eacute;e de vie du verrou, le
135     cache va emp&ecirc;cher une seconde tentative de mise en cache de la m&ecirc;me
136     entit&eacute;. Bien que cela ne suffise pas &agrave; contenir la temp&ecirc;te de
137     requ&ecirc;tes, toute tentative de mettre en cache la m&ecirc;me entit&eacute;
138     plusieurs fois simultan&eacute;ment est stopp&eacute;e.
139     </p>
140   </section>
141   <section>
142     <title>Mise &agrave; jour d'une entr&eacute;e p&eacute;rim&eacute;e</title>
143     <p>Lorsqu'une entr&eacute;e atteint la limite de sa dur&eacute;e de vie, et
144     devient par cons&eacute;quent p&eacute;rim&eacute;e, un verrou est cr&eacute;&eacute; pour cette entit&eacute;
145     jusqu'&agrave; ce que la r&eacute;ponse ait &eacute;t&eacute; soit confirm&eacute;e comme encore
146     valide, soit remplac&eacute;e par le processus d'arri&egrave;re-plan. Pendant la
147     dur&eacute;e de vie du verrou, une seconde requ&ecirc;te entrante va provoquer le
148     renvoi de la donn&eacute;e p&eacute;rim&eacute;e, et la temp&ecirc;te de requ&ecirc;tes sera
149     contenue.</p>
150   </section>
151   <section>
152     <title>Verrous et en-t&ecirc;te Cache-Control: no-cache</title>
153     <p>Les verrous ne sont utilis&eacute;s <strong>qu'&agrave; titre
154     indicatif</strong> pour enjoindre le cache &agrave; &ecirc;tre plus coop&eacute;ratif
155     avec les serveurs d'arri&egrave;re-plan, et il est possible de passer outre
156     si n&eacute;cessaire. Si le client envoie une requ&ecirc;te contenant un en-t&ecirc;te
157     Cache-Control imposant un nouveau t&eacute;l&eacute;chargement de l'entit&eacute;, tout
158     verrou &eacute;ventuel sera ignor&eacute;, la requ&ecirc;te du client sera honor&eacute;e
159     imm&eacute;diatement, et l'entr&eacute;e du cache mise &agrave; jour.</p>
160
161     <p>Comme m&eacute;canisme de s&eacute;curit&eacute; suppl&eacute;mentaire, la dur&eacute;e de vie
162     maximale des verrous est configurable. Lorsque cette limite est
163     atteinte, le verrou est supprim&eacute; et une autre requ&ecirc;te peut alors en
164     cr&eacute;er un nouveau. Cette dur&eacute;e de vie peut &ecirc;tre d&eacute;finie via la
165     directive <directive>CacheLockMaxAge</directive>, et sa valeur par
166     d&eacute;faut est de 5 secondes.
167     </p>
168   </section>
169   <section>
170     <title>Exemple de configuration</title>
171     <example><title>Activation du verrouillage du cache</title>
172       #<br />
173       # Active le verrouillage du cache<br />
174       #<br />
175       &lt;IfModule mod_cache.c&gt;<br />
176       <indent>
177         CacheLock on<br />
178         CacheLockPath /tmp/mod_cache-lock<br />
179         CacheLockMaxAge 5<br />
180       </indent>
181       &lt;/IfModule&gt;
182     </example>
183   </section>
184 </section>
185
186 <section id="finecontrol"><title>Contr&ocirc;le fin via le filtre CACHE</title>
187   <p>Dans son mode de fonctionnement par d&eacute;faut, le cache s'ex&eacute;cute sous
188   la forme d'un gestionnaire rapide, court-circuitant la majorit&eacute; des
189   traitements du serveur et fournissant ainsi une mise en cache
190   poss&eacute;dant les plus hautes performances disponibles.</p>
191
192   <p>Dans ce mode, le cache <strong>s'incruste</strong> devant le
193   serveur, comme si un mandataire de mise en cache ind&eacute;pendant RFC2616
194   &eacute;tait plac&eacute; devant ce dernier.</p>
195
196   <p>Bien que que ce mode offre les meilleures performances, les
197   administrateurs peuvent souhaiter, dans certaines circonstances,
198   effectuer des traitements sur la requ&ecirc;te apr&egrave;s que cette derni&egrave;re ait
199   &eacute;t&eacute; mise en cache, comme ajouter du contenu personnalis&eacute; &agrave; la page
200   mise en cache, ou appliquer des restrictions d'autorisations au
201   contenu. Pour y parvenir, l'administrateur sera alors souvent forc&eacute; de
202   placer des serveurs mandataires inverses ind&eacute;pendants soit derri&egrave;re,
203   soit devant le serveur de mise en cache.</p>
204
205   <p>Pour r&eacute;soudre ce probl&egrave;me, la directive <directive
206   module="mod_cache">CacheQuickHandler</directive> peut &ecirc;tre d&eacute;finie &agrave;
207   <strong>off</strong>, afin que le serveur traite toutes les phases
208   normalement ex&eacute;cut&eacute;es par une requ&ecirc;te non mise en cache, y compris les
209   phases <strong>d'authentification et d'autorisation</strong>.</p>
210
211   <p>En outre, l'administrateur peut &eacute;ventuellement sp&eacute;cifier le
212   <strong>point pr&eacute;cis dans la cha&icirc;ne de filtrage</strong> o&ugrave; devra
213   intervenir la mise en cache en ajoutant le filtre
214   <strong>CACHE</strong> &agrave; la cha&icirc;ne de filtrage en sortie.</p>
215
216   <p>Par exemple, pour mettre en cache le contenu avant d'appliquer une
217   compression &agrave; la r&eacute;ponse, placez le filtre <strong>CACHE</strong>
218   avant le filtre <strong>DEFLATE</strong> comme dans l'exemple suivant
219   :</p>
220
221   <example>
222     # Mise en cache du contenu avant la compression optionnelle<br />
223     CacheQuickHandler off<br />
224     AddOutputFilterByType CACHE;DEFLATE text/plain<br /><br />
225   </example>
226
227   <p>Une autre possibilit&eacute; consiste &agrave; mettre en cache le contenu avant
228   l'ajout de contenu personnalis&eacute; via <module>mod_include</module> (ou
229   tout autre filtre de traitement de contenu). Dans l'exemple suivant,
230   les mod&egrave;les contenant des balises comprises par
231   <module>mod_include</module> sont mis en cache avant d'&ecirc;tre
232   interpr&eacute;t&eacute;s :</p>
233
234   <example>
235     # Mise en cache du contenu avant l'intervention de mod_include et
236     # mod_deflate<br />
237     CacheQuickHandler off<br />
238     AddOutputFilterByType CACHE;INCLUDES;DEFLATE text/html<br /><br />
239   </example>
240
241   <p>Vous pouvez ins&eacute;rer le filtre <strong>CACHE</strong> en tout point
242   de la cha&icirc;ne de filtrage. Dans l'exemple suivant, le contenu est mis
243   en cache apr&egrave;s avoir &eacute;t&eacute; interpr&eacute;t&eacute; par <module>mod_include</module>,
244   mais avant d'&ecirc;tre trait&eacute; par <module>mod_deflate</module> :</p>
245
246   <example>
247     # Mise en cache du contenu entre les interventions de mod_include et
248     # mod_deflate<br />
249     CacheQuickHandler off<br />
250     AddOutputFilterByType INCLUDES;CACHE;DEFLATE text/html<br /><br />
251   </example>
252
253   <note type="warning"><title>Avertissement :</title>Si pour une raison
254   ou pour une autre, le point d'insertion du filtre
255   <strong>CACHE</strong> dans la cha&icirc;ne de filtrage est modifi&eacute;, vous
256   devez <strong>vider votre cache</strong> pour &ecirc;tre s&ucirc;r que les donn&eacute;es
257   servies soient &agrave; jour. En effet, <module>mod_cache</module> n'est pas
258   en mesure d'effectuer cette op&eacute;ration &agrave; votre place.</note>
259
260 </section>
261
262
263
264 <directivesynopsis>
265 <name>CacheEnable</name>
266 <description>Active la mise en cache des URLs sp&eacute;cifi&eacute;es en utilisant le
267 gestionnaire de stockage pr&eacute;cis&eacute;</description>
268 <syntax>CacheEnable <var>type de cache</var> <var>cha&icirc;ne URL</var></syntax>
269 <contextlist><context>server config</context><context>virtual host</context>
270 </contextlist>
271
272 <usage>
273     <p>La directive <directive>CacheEnable</directive> enjoint
274     <module>mod_cache</module> de mettre en cache l'URL pr&eacute;cis&eacute;e par
275     <var>cha&icirc;ne URL</var>, ainsi que les URLs de niveaux inf&eacute;rieurs. Le
276     gestionnaire de stockage du cache est sp&eacute;cifi&eacute; &agrave; l'aide de
277     l'argument <var>type de cache</var>. Si la directive
278     <directive>CacheEnable</directive> est situ&eacute;e &agrave; l'int&eacute;rieur d'une
279     section <directive type="section">Location</directive>, le param&egrave;tre
280     <var>url-string</var> devient optionnel. Si <var>type de cache</var>
281     a pour valeur <code>disk</code>, <module>mod_cache</module>
282     utilisera le gestionnaire de stockage sur disque impl&eacute;ment&eacute; par
283     <module>mod_disk_cache</module>.</p>
284     <p>Si les diff&eacute;rentes directives <directive>CacheEnable</directive>
285     sp&eacute;cifient des URLs qui se recoupent (comme dans l'exemple
286     ci-dessous), tous les gestionnaires de stockage possibles seront
287     lanc&eacute;s, jusqu'au premier d'entre eux qui traitera effectivement la
288     requ&ecirc;te.
289     L'ordre dans lequel les gestionnaires de stockage sont lanc&eacute;s est
290     d&eacute;termin&eacute; par l'ordre dans lequel apparaissent les directives
291     <directive>CacheEnable</directive> dans le fichier de
292     configuration.</p>
293
294     <p>En fonctionnement du type serveur mandataire direct, <var>cha&icirc;ne
295     URL</var> peut aussi &ecirc;tre utilis&eacute; pour sp&eacute;cifier des sites distants
296     et des protocoles de mandat pour lesquels la mise en cache devra
297     &ecirc;tre activ&eacute;e.</p>
298
299     <example>
300       # Mise en cache des URLs mandat&eacute;es<br />
301       CacheEnable  disk  /<br /><br />
302       # Mise en cache des URLs FTP mandat&eacute;es<br />
303       CacheEnable  disk  ftp://<br /><br />
304       # Mise en cache des contenus situ&eacute;s dans www.apache.org<br />
305       CacheEnable  disk  http://www.apache.org/<br />
306     </example>
307
308     <p>Un nom d'h&ocirc;te commen&ccedil;ant par un caract&egrave;re <strong>"*"</strong>
309     correspondra &agrave; tout nom d'h&ocirc;te se terminant par le suffixe
310     consid&eacute;r&eacute;. Un nom d'h&ocirc;te commen&ccedil;ant par un caract&egrave;re
311     <strong>"."</strong> correspondra &agrave; tout nom d'h&ocirc;te contenant le
312     composant de nom de domaine qui suit ce caract&egrave;re.</p>
313
314     <example>
315       # Correspond &agrave; www.apache.org et fooapache.org<br />
316       CacheEnable  disk  http://*apache.org/<br />
317       # Correspond &agrave; www.apache.org, mais pas &agrave; fooapache.org<br />
318       CacheEnable  disk  http://.apache.org/<br />
319     </example>
320
321     <p>Depuis la version 2.2.12, on peut d&eacute;finir la variable
322     d'environnement <code>no-cache</code> pour une d&eacute;finition plus fine
323     des ressources &agrave; mettre en cache.</p>
324
325 </usage>
326 <seealso><a href="../env.html">Les variables d'environnement dans
327 Apache</a></seealso>
328 </directivesynopsis>
329
330 <directivesynopsis>
331 <name>CacheDisable</name>
332 <description>D&eacute;sactive la mise en cache des URLs
333 sp&eacute;cifi&eacute;es</description>
334 <syntax>CacheDisable <var>cha&icirc;ne-url</var> | <var>on</var></syntax>
335 <contextlist><context>server config</context><context>virtual host</context>
336 </contextlist>
337
338 <usage>
339     <p>La directive <directive>CacheDisable</directive> enjoint
340     <module>mod_cache</module> de <em>ne pas</em> mettre en cache l'URL
341     sp&eacute;cifi&eacute;e par <var>cha&icirc;ne URL</var>, ainsi que les URLs de niveaux
342     inf&eacute;rieurs.</p>
343
344     <example><title>Exemple</title>
345       CacheDisable /fichiers_locaux
346     </example>
347
348     <p>Si la directive se trouve &agrave; l'int&eacute;rieur d'une section <directive
349     type="section">Location</directive>, le chemin doit &ecirc;tre sp&eacute;cifi&eacute; en
350     dessous de la Location, et si le mot "on" est utilis&eacute;, la mise en
351     cache sera d&eacute;sactiv&eacute;e pour l'ensemble de l'arborescence concern&eacute;e
352     par la section Location.</p>
353
354     <example><title>Exemple</title>
355       &lt;Location /foo&gt;<br />
356         CacheDisable on<br />
357       &lt;/Location&gt;<br />
358     </example>
359
360     <p>Avec les versions 2.2.12 et ult&eacute;rieures, on peut d&eacute;finir la
361     variable d'environnement <code>no-cache</code> pour une d&eacute;finition
362     plus fine des ressources &agrave; mettre en cache.</p>
363 </usage>
364 <seealso><a href="../env.html">Les variables d'environnement dans
365 Apache</a></seealso>
366 </directivesynopsis>
367 <directivesynopsis>
368 <name>CacheMaxExpire</name>
369 <description>La dur&eacute;e maximale en secondes de mise en cache d'un
370 document</description>
371 <syntax>CacheMaxExpire <var>secondes</var></syntax>
372 <default>CacheMaxExpire 86400 (une journ&eacute;e)</default>
373 <contextlist><context>server config</context><context>virtual host</context>
374 </contextlist>
375
376 <usage>
377     <p>La directive <directive>CacheMaxExpire</directive> permet de
378     sp&eacute;cifier le nombre maximum de secondes pendant lequel les documents
379     HTTP suceptibles d'&ecirc;tre mis en cache seront conserv&eacute;s sans v&eacute;rifier
380     leur contenu sur le serveur d'origine. Ce nombre de secondes
381     correspond donc &agrave; la dur&eacute;e maximale pendant laquelle un document ne
382     sera pas &agrave; jour. L'utilisation de cette valeur maximale est forc&eacute;e,
383     m&ecirc;me si le document poss&egrave;de une date d'expiration.</p>
384
385     <example>
386       CacheMaxExpire 604800
387     </example>
388 </usage>
389 </directivesynopsis>
390
391 <directivesynopsis>
392 <name>CacheMinExpire</name>
393 <description>La dur&eacute;e minimale en secondes de mise en cache d'un
394 document</description>
395 <syntax>CacheMinExpire <var>secondes</var></syntax>
396 <default>CacheMinExpire 0</default>
397 <contextlist><context>server config</context><context>virtual host</context>
398 </contextlist>
399
400 <usage>
401     <p>La directive <directive>CacheMaxExpire</directive> permet de
402     sp&eacute;cifier le nombre maximum de secondes pendant lequel les documents
403     HTTP suceptibles d'&ecirc;tre mis en cache seront conserv&eacute;s sans v&eacute;rifier
404     leur contenu sur le serveur d'origine. Elle n'est prise en compte
405     que dans le cas o&ugrave; le document ne poss&egrave;de aucune date d'expiration
406     valide.</p>
407
408     <example>
409       CacheMinExpire 3600
410     </example>
411 </usage>
412 </directivesynopsis>
413
414 <directivesynopsis>
415 <name>CacheDefaultExpire</name>
416 <description>La dur&eacute;e par d&eacute;faut de mise en cache d'un document
417 lorsqu'aucune date d'expiration n'a &eacute;t&eacute; sp&eacute;cifi&eacute;e.</description>
418 <syntax>CacheDefaultExpire <var>secondes</var></syntax>
419 <default>CacheDefaultExpire 3600 (une heure)</default>
420 <contextlist><context>server config</context><context>virtual host</context>
421 </contextlist>
422
423 <usage>
424     <p>La directive <directive>CacheDefaultExpire</directive> permet de
425     sp&eacute;cifier un temps par d&eacute;faut, en secondes, pendant lequel sera
426     conserv&eacute; dans le cache un document qui ne poss&egrave;de ni date
427     d'expiration, ni date de derni&egrave;re modification. La valeur de cette
428     directive est &eacute;cras&eacute;e par la valeur de la directive
429     <directive>CacheMaxExpire</directive> si cette derni&egrave;re est
430     utilis&eacute;e.</p>
431
432     <example>
433       CacheDefaultExpire 86400
434     </example>
435 </usage>
436 </directivesynopsis>
437
438 <directivesynopsis>
439 <name>CacheIgnoreNoLastMod</name>
440 <description>Ignore le fait qu'une r&eacute;ponse ne poss&egrave;de pas d'en-t&ecirc;te Last
441 Modified.</description>
442 <syntax>CacheIgnoreNoLastMod On|Off</syntax>
443 <default>CacheIgnoreNoLastMod Off</default>
444 <contextlist><context>server config</context><context>virtual host</context>
445 </contextlist>
446
447 <usage>
448     <p>Normalement, les documents qui ne poss&egrave;dent pas de date de
449     derni&egrave;re modification ne sont pas mis en cache. Dans certaines
450     circonstances, la date de derni&egrave;re modification est supprim&eacute;e (au
451     cours des traitements li&eacute;s &agrave; <module>mod_include</module> par
452     exemple), ou n'existe tout simplement pas. La directive
453     <directive>CacheIgnoreNoLastMod</directive> permet de sp&eacute;cifier si
454     les documents ne poss&egrave;dant pas de date de derni&egrave;re modification
455     doivent &ecirc;tre mis en cache, m&ecirc;me sans date de derni&egrave;re modification.
456     Si le document ne poss&egrave;de ni date d'expiration, ni date de derni&egrave;re
457     modification, la valeur sp&eacute;cifi&eacute;e par la directive
458     <directive>CacheDefaultExpire</directive> servira &agrave; g&eacute;n&eacute;rer une date
459     d'expiration.
460     </p>
461
462     <example>
463       CacheIgnoreNoLastMod On
464     </example>
465 </usage>
466 </directivesynopsis>
467
468 <directivesynopsis>
469 <name>CacheIgnoreCacheControl</name>
470 <description>Ignore les en-t&ecirc;tes de requ&ecirc;te enjoignant de ne pas servir
471 le contenu au client depuis le cache</description>
472 <syntax>CacheIgnoreCacheControl On|Off</syntax>
473 <default>CacheIgnoreCacheControl Off</default>
474 <contextlist><context>server config</context><context>virtual host</context>
475 </contextlist>
476
477 <usage>
478     <p>Normalement, les requ&ecirc;tes contenant des en-t&ecirc;tes tels que
479     Cache-Control: no-cache ou Pragma: no-cache ne sont pas servies
480     depuis le cache. La directive
481     <directive>CacheIgnoreCacheControl</directive> permet de modifier ce
482     comportement. Avec <directive>CacheIgnoreCacheControl
483     On</directive>, le serveur tentera de servir la ressource depuis le
484     cache, m&ecirc;me si la requ&ecirc;te contient un des en-t&ecirc;tes cit&eacute;s plus haut.
485     Les ressources qui requi&egrave;rent une autorisation ne seront
486     <em>jamais</em> mises en cache.</p>
487
488     <example>
489       CacheIgnoreCacheControl On
490     </example>
491
492     <note type="warning"><title>Avertissement :</title>
493        Cette directive permet de servir des ressources depuis le cache,
494        m&ecirc;me si le client a demand&eacute; &agrave; ce qu'il n'en soit pas ainsi. Le
495        contenu servi est ainsi susceptible d'&ecirc;tre p&eacute;rim&eacute;.
496     </note>
497 </usage>
498 <seealso><directive module="mod_cache">CacheStorePrivate</directive></seealso>
499 <seealso><directive module="mod_cache">CacheStoreNoStore</directive></seealso>
500 </directivesynopsis>
501
502 <directivesynopsis>
503 <name>CacheIgnoreQueryString</name>
504 <description>Ignore la cha&icirc;ne de param&egrave;tres lors de la mise en
505 cache</description>
506 <syntax>CacheIgnoreQueryString On|Off</syntax>
507 <default>CacheIgnoreQueryString Off</default>
508 <contextlist><context>server config</context><context>virtual host</context>
509 </contextlist>
510
511 <usage>
512     <p>Normalement, les requ&ecirc;tes comportant une cha&icirc;ne de param&egrave;tres
513     sont mises en cache s&eacute;par&eacute;ment si leurs cha&icirc;nes de param&egrave;tres
514     diff&egrave;rent.
515     En accord avec la RFC 2616/13.9, cette mise en cache n'est effectu&eacute;e
516     s&eacute;par&eacute;ment que si une date d'expiration est sp&eacute;cifi&eacute;e. La directive
517     <directive>CacheIgnoreQueryString</directive> permet la mise en
518     cache de requ&ecirc;tes m&ecirc;me si aucune date d'expiration est sp&eacute;cifi&eacute;e, et
519     de renvoyer une r&eacute;ponse depuis la cache m&ecirc;me si les cha&icirc;nes de
520     param&egrave;tres diff&egrave;rent. Du point de vue du cache, la requ&ecirc;te est
521     trait&eacute;e comme si elle ne poss&egrave;dait pas de cha&icirc;ne de param&egrave;tres
522     lorsque cette directive est activ&eacute;e.</p>
523
524     <example>
525       CacheIgnoreQueryString On
526     </example>
527
528 </usage>
529 </directivesynopsis>
530
531 <directivesynopsis>
532 <name>CacheLastModifiedFactor</name>
533 <description>Le facteur utilis&eacute; pour g&eacute;n&eacute;rer une date d'expiration en
534 fonction de la date de derni&egrave;re modification.</description>
535 <syntax>CacheLastModifiedFactor <var>flottant</var></syntax>
536 <default>CacheLastModifiedFactor 0.1</default>
537 <contextlist><context>server config</context><context>virtual host</context>
538 </contextlist>
539
540 <usage>
541     <p>Si un document ne poss&egrave;de pas de date d'expiration, elle peut
542     &ecirc;tre calcul&eacute;e en fonction de la date de derni&egrave;re modification, si
543     elle existe. La directive
544     <directive>CacheLastModifiedFactor</directive> permet de sp&eacute;cifier
545     un <var>facteur</var> &agrave; utiliser pour la g&eacute;n&eacute;ration de cette date
546     d'expiration au sein de la formule suivante :
547
548     <code>d&eacute;lai-expiration = dur&eacute;e-depuis-date-derni&egrave;re-modification *
549     <var>facteur</var>
550     date-expiration = date-courante + d&eacute;lai-expiration</code>
551
552     Par exemple, si la derni&egrave;re modification du document date de 10
553     heures, et si <var>facteur</var> a pour valeur 0.1, le d&eacute;lai
554     d'expiration sera de 10*0.1 = 1 heure. Si l'heure courante est
555     3:00pm, la date d'expiration calcul&eacute;e sera 3:00pm + 1 heure =
556     4:00pm.
557
558     Si le d&eacute;lai d'expiration est sup&eacute;rieur &agrave; celui sp&eacute;cifi&eacute; par la
559     directive <directive>CacheMaxExpire</directive>, c'est ce dernier
560     qui l'emporte.</p>
561
562     <example>
563       CacheLastModifiedFactor 0.5
564     </example>
565 </usage>
566 </directivesynopsis>
567
568 <directivesynopsis>
569 <name>CacheIgnoreHeaders</name>
570 <description>Ne pas stocker le(s) en-t&ecirc;te(s) sp&eacute;cifi&eacute;(s) dans le cache.
571 </description>
572 <syntax>CacheIgnoreHeaders <var>en-t&ecirc;te</var> [<var>en-t&ecirc;te</var>] ...</syntax>
573 <default>CacheIgnoreHeaders None</default>
574 <contextlist><context>server config</context><context>virtual host</context>
575 </contextlist>
576
577 <usage>
578     <p>En accord avec la RFC 2616, les en-t&ecirc;tes HTTP hop-by-hop ne sont
579     pas stock&eacute;s dans le cache. Les en-t&ecirc;tes HTTP suivant sont des
580     en-t&ecirc;tes hop-by-hop, et en tant que tels, ne sont en  <em>aucun</em>
581     cas stock&eacute;s dans le cache, quelle que soit la d&eacute;finition de la
582     directive <directive>CacheIgnoreHeaders</directive> :</p>
583
584     <ul>
585       <li><code>Connection</code></li>
586       <li><code>Keep-Alive</code></li>
587       <li><code>Proxy-Authenticate</code></li>
588       <li><code>Proxy-Authorization</code></li>
589       <li><code>TE</code></li>
590       <li><code>Trailers</code></li>
591       <li><code>Transfer-Encoding</code></li>
592       <li><code>Upgrade</code></li>
593     </ul>
594
595     <p>La directive <directive>CacheIgnoreHeaders</directive> permet de
596     sp&eacute;cifier quels en-t&ecirc;tes HTTP ne doivent pas &ecirc;tre stock&eacute;s dans le
597     cache. Par exemple, il peut s'av&eacute;rer pertinent dans certains cas de
598     ne pas stocker les cookies dans le cache.</p>
599
600     <p>La directive <directive>CacheIgnoreHeaders</directive> accepte
601     une liste d'en-t&ecirc;tes HTTP s&eacute;par&eacute;s par des espaces, qui ne doivent
602     pas &ecirc;tre stock&eacute;s dans le cache. Si les en-t&ecirc;tes hop-by-hop sont les
603     seuls &agrave; ne pas devoir &ecirc;tre stock&eacute;s dans le cache (le comportement
604     compatible RFC 2616), la directive
605     <directive>CacheIgnoreHeaders</directive> peut &ecirc;tre d&eacute;finie &agrave;
606     <code>None</code>.</p>
607
608     <example><title>Exemple 1</title>
609       CacheIgnoreHeaders Set-Cookie
610     </example>
611
612     <example><title>Exemple 2</title>
613       CacheIgnoreHeaders None
614     </example>
615
616     <note type="warning"><title>Avertissement :</title>
617       Si des en-t&ecirc;tes n&eacute;cessaires &agrave; la bonne gestion du cache, comme
618       <code>Expires</code>, ne sont pas stock&eacute;s suite &agrave; la d&eacute;finition
619       d'une directive <directive>CacheIgnoreHeaders</directive>, le
620       comportement de mod_cache sera impr&eacute;visible.
621     </note>
622 </usage>
623 </directivesynopsis>
624
625 <directivesynopsis>
626 <name>CacheIgnoreURLSessionIdentifiers</name>
627 <description>Ignore les identifiants de session d&eacute;finis encod&eacute;s dans
628 l'URL lors de la mise en cache
629 </description>
630 <syntax>CacheIgnoreURLSessionIdentifiers <var>identifiant</var>
631 [<var>identifiant</var>] ...</syntax>
632 <default>CacheIgnoreURLSessionIdentifiers None</default>
633 <contextlist><context>server config</context><context>virtual host</context>
634 </contextlist>
635
636 <usage>
637     <p>Certaines applications encodent l'identifiant de session dans
638     l'URL comme dans l'exemple suivant :
639     </p>
640     <ul>
641       <li><code>/une-application/image.gif;jsessionid=123456789</code></li>
642       <li><code>/une-application/image.gif?PHPSESSIONID=12345678</code></li>
643     </ul>
644     <p>Ceci implique la mise en cache des ressources s&eacute;par&eacute;ment pour
645     chaque session, ce qui n'est en g&eacute;n&eacute;ral pas souhait&eacute;. La directive
646     <directive>CacheIgnoreURLSessionIdentifiers</directive> permet de
647     d&eacute;finir une liste d'identifiants qui seront supprim&eacute;s de la cl&eacute;
648     utilis&eacute;e pour identifier une entit&eacute; dans le cache, de fa&ccedil;on &agrave; ce que
649     les ressources ne soient pas stock&eacute;es s&eacute;par&eacute;ment pour chaque
650     session.
651     </p>
652     <p><code>CacheIgnoreURLSessionIdentifiers None</code> vide la liste
653     des identifiants ignor&eacute;s. Autrement, chaque identifiant sp&eacute;cifi&eacute; est
654     ajout&eacute; &agrave; la liste.</p>
655
656     <example><title>Exemple 1</title>
657       CacheIgnoreURLSessionIdentifiers jsessionid
658     </example>
659
660     <example><title>Exemple 2</title>
661       CacheIgnoreURLSessionIdentifiers None
662     </example>
663
664 </usage>
665 </directivesynopsis>
666
667 <directivesynopsis>
668 <name>CacheStorePrivate</name>
669 <description>Tente de mettre en cache des r&eacute;ponses que le serveur a
670 marqu&eacute;es comme priv&eacute;es</description>
671 <syntax>CacheStorePrivate On|Off</syntax>
672 <default>CacheStorePrivate Off</default>
673 <contextlist><context>server config</context><context>virtual host</context>
674 </contextlist>
675
676 <usage>
677     <p>Normalement, les r&eacute;ponse comportant un en-t&ecirc;te Cache-Control:
678     dont la valeur est private ne seront pas stock&eacute;es dans le cache. La
679     directive <directive>CacheStorePrivate</directive> permet de
680     modifier ce comportement. Si
681     <directive>CacheStorePrivate</directive> est d&eacute;finie &agrave; On, le
682     serveur tentera de mettre la ressource en cache, m&ecirc;me si elle
683     contient des en-t&ecirc;tes ayant pour valeur private. Les ressources
684     n&eacute;cessitant une autorisation ne sont <em>jamais</em> mises en
685     cache.</p>
686
687     <example>
688       CacheStorePrivate On
689     </example>
690
691     <note type="warning"><title>Avertissement :</title>
692        Cette directive autorise la mise en cache m&ecirc;me si le serveur
693        indique que la ressource ne doit pas &ecirc;tre mise en cache. Elle
694        n'est de ce fait appropri&eacute;e que dans le cas d'un cache
695        'priv&eacute;'.
696     </note>
697 </usage>
698 <seealso><directive module="mod_cache">CacheIgnoreCacheControl</directive></seealso>
699 <seealso><directive module="mod_cache">CacheStoreNoStore</directive></seealso>
700 </directivesynopsis>
701
702 <directivesynopsis>
703 <name>CacheStoreNoStore</name>
704 <description>Tente de mettre en cache les requ&ecirc;tes ou r&eacute;ponses dont
705 l'ent&ecirc;te Cache-Control: a pour valeur no-store.</description>
706 <syntax>CacheStoreNoStore On|Off</syntax>
707 <default>CacheStoreNoStore Off</default>
708 <contextlist><context>server config</context><context>virtual host</context>
709 </contextlist>
710
711 <usage>
712     <p>Normalement, les requ&ecirc;tes ou r&eacute;ponses dont l'en-t&ecirc;te
713     Cache-Control: a pour valeur no-store ne sont pas stock&eacute;es dans le
714     cache. La directive <directive>CacheStoreNoCache</directive> permet
715     de modifier ce comportement. Si
716     <directive>CacheStoreNoCache</directive> est d&eacute;finie &agrave; On, le
717     serveur tente de mettre la ressource en cache m&ecirc;me si elle contient
718     des en-t&ecirc;tes ayant pour valeur no-store. Les ressources
719     n&eacute;cessitant une autorisation ne sont <em>jamais</em> mises en
720     cache.</p>
721
722     <example>
723       CacheStoreNoStore On
724     </example>
725
726     <note type="warning"><title>Avertissement :</title>
727        Selon la RFC 2616, la valeur d'en-t&ecirc;te no-store est cens&eacute;e
728        "pr&eacute;venir la suppression ou la r&eacute;tention par inadvertance
729        d'informations sensibles (par exemple, sur des bandes de
730        sauvegarde)". Autrement dit, l'activation de la directive
731        <directive>CacheStoreNoCache</directive> pourrait provoquer le
732        stockage d'informations sensibles dans le cache. Vous avez donc
733        &eacute;t&eacute; pr&eacute;venus.
734     </note>
735 </usage>
736 <seealso><directive module="mod_cache">CacheIgnoreCacheControl</directive></seealso>
737 <seealso><directive module="mod_cache">CacheStorePrivate</directive></seealso>
738 </directivesynopsis>
739
740 <directivesynopsis>
741 <name>CacheLock</name>
742 <description>Active la protection contre les temp&ecirc;tes de requ&ecirc;tes.</description>
743 <syntax>CacheLock <var>on|off</var></syntax>
744 <default>CacheLock off</default>
745 <contextlist><context>server config</context><context>virtual host</context>
746 </contextlist>
747 <compatibility>Disponible depuis la version 2.2.15 d'Apache</compatibility>
748
749 <usage>
750   <p>La directive <directive>CacheLock</directive> active la protection
751   contre les temp&ecirc;tes de requ&ecirc;tes pour l'espace d'adressage donn&eacute;.</p>
752
753   <p>La configuration minimale pour activer le verrouillage contre les
754   temp&ecirc;tes de requ&ecirc;tes dans le r&eacute;pertoire temp par d&eacute;faut du syst&egrave;me est
755   la suivante :</p>
756
757   <example>
758     # Active le verrouillage du cache<br />
759     CacheLock on<br /><br />
760   </example>
761
762 </usage>
763 </directivesynopsis>
764
765 <directivesynopsis>
766 <name>CacheLockPath</name>
767 <description>D&eacute;finit le r&eacute;pertoire des verrous.</description>
768 <syntax>CacheLockPath <var>r&eacute;pertoire</var></syntax>
769 <default>CacheLockPath /tmp/mod_cache-lock</default>
770 <contextlist><context>server config</context><context>virtual host</context>
771 </contextlist>
772
773 <usage>
774   <p>La directive <directive>CacheLockPath</directive> permet de
775   sp&eacute;cifier le r&eacute;pertoire dans lequel les verrous sont cr&eacute;&eacute;s. Par
776   d&eacute;faut, c'est le r&eacute;pertoire temporaire du syst&egrave;me qui est utilis&eacute;. Les
777   verrous sont des fichiers vides qui n'existent que pour les URLs
778   p&eacute;rim&eacute;es en cours de mise &agrave; jour, et consomment donc bien moins de
779   ressources que le traditionnel cache sur disque.</p>
780
781 </usage>
782 </directivesynopsis>
783
784 <directivesynopsis>
785 <name>CacheLockMaxAge</name>
786 <description>D&eacute;finit la dur&eacute;e de vie maximale d'un verrou de cache.</description>
787 <syntax>CacheLockMaxAge <var>entier</var></syntax>
788 <default>CacheLockMaxAge 5</default>
789 <contextlist><context>server config</context><context>virtual host</context>
790 </contextlist>
791
792 <usage>
793   <p>La directive <directive>CacheLockMaxAge</directive> permet de
794   sp&eacute;cifier la dur&eacute;e de vie maximale d'un verrou de cache.</p>
795
796   <p>Un verrou plus ancien que cette valeur exprim&eacute;e en secondes sera
797   ignor&eacute;, et la prochaine requ&ecirc;te entrante sera alors en mesure de
798   recr&eacute;er le verrou. Ce m&eacute;canisme permet d'&eacute;viter les mises &agrave; jour trop
799   longues initi&eacute;es par des clients lents.</p>
800
801 </usage>
802 </directivesynopsis>
803
804 <directivesynopsis>
805   <name>CacheQuickHandler</name>
806   <description>Ex&eacute;cute le cache &agrave; partir d'un gestionnaire rapide.</description>
807   <syntax>CacheQuickHandler <var>on|off</var></syntax>
808   <default>CacheQuickHandler on</default>
809   <contextlist><context>server config</context><context>virtual host</context>
810   </contextlist>
811
812   <usage>
813     <p>La directive <directive
814     module="mod_cache">CacheQuickHandler</directive> permet de contr&ocirc;ler
815     la phase au cours de laquelle la mise en cache est effectu&eacute;e.</p>
816
817     <p>Avec la configuration par d&eacute;faut, le cache agit au cours de la
818     phase du gestionnaire rapide. Cette phase court-circuite la majorit&eacute;
819     des traitements du serveur, et constitue le mode d'op&eacute;ration le plus
820     performant pour un serveur typique. Le cache
821     <strong>s'incruste</strong> devant le serveur, et la majorit&eacute; des
822     traitements du serveur est court-circuit&eacute;e.</p>
823
824     <p>Lorsque cette directive est d&eacute;finie &agrave; off, le cache agit comme un
825     gestionnaire normal, et est concern&eacute; par toutes les phases de
826     traitement d'une requ&ecirc;te. Bien que ce mode soit moins performant que
827     le mode par d&eacute;faut, il permet d'utiliser le cache dans les cas o&ugrave; un
828     traitement complet de la requ&ecirc;te est n&eacute;cessaire, comme par exemple
829     lorsque le contenu est soumis &agrave; autorisation.</p>
830
831     <example>
832       # Ex&eacute;cute le cache comme un gestionnaire normal<br />
833       CacheQuickHandler off<br /><br />
834     </example>
835
836     <p>Lorsque le gestionnaire rapide est d&eacute;sactiv&eacute;, l'administrateur a
837     aussi la possibilit&eacute; de choisir avec pr&eacute;cision le point de la cha&icirc;ne
838     de filtrage o&ugrave; la mise en cache sera effectu&eacute;e, en utilisant le
839     filtre <strong>CACHE</strong>.</p>
840
841     <example>
842       # Mise en cache du contenu avant l'intervention de mod_include et
843       # mod_deflate<br />
844       CacheQuickHandler off<br />
845       AddOutputFilterByType CACHE;INCLUDES;DEFLATE text/html<br /><br />
846     </example>
847
848     <p>Si le filtre CACHE est sp&eacute;cifi&eacute; plusieurs fois, c'est la derni&egrave;re
849     instance qui sera prise en compte.</p>
850
851   </usage>
852 </directivesynopsis>
853
854
855 </modulesynopsis>