]> granicus.if.org Git - apache/blob - docs/manual/mod/mod_cache.xml.fr
fcdcc64712fd8e7c8aa602f32e90e0b83ffecdec
[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 : 1300892 -->
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>Filtre de mise en cache HTTP conforme &agrave; la RFC 2616</description>
29 <status>Extension</status>
30 <sourcefile>mod_cache.c</sourcefile>
31 <identifier>cache_module</identifier>
32
33 <summary>
34     <note type="warning">Ce module doit &ecirc;tre utilis&eacute; avec pr&eacute;cautions
35     car lorsque la directive <directive
36     module="mod_cache">CacheQuickHandler</directive> est d&eacute;finie &agrave; sa
37     valeur par d&eacute;faut <strong>on</strong>, les directives <directive
38     module="mod_access_compat">Allow</directive> and <directive
39     module="mod_access_compat">Deny</directive> sont court-circuit&eacute;es. Vous
40     ne devez donc pas activer la gestion rapide de la mise en cache pour
41     un contenu auquel vous souhaitez limiter l'acc&egrave;s en fonction du nom
42     d'h&ocirc;te du client, de l'adresse IP ou d'une variable
43     d'environnement.</note>
44
45     <p><module>mod_cache</module> impl&eacute;mente un <strong>filtre de mise
46     en cache de contenu HTTP</strong> conforme &agrave; la <a
47     href="http://www.ietf.org/rfc/rfc2616.txt">RFC 2616</a>, avec
48     support de la mise en cache des r&eacute;ponses dont le contenu a &eacute;t&eacute;
49     n&eacute;goci&eacute; et comportant l'en-t&ecirc;te Vary.</p>
50
51     <p>La mise en cache conforme &agrave; la RFC 2616 fournit un m&eacute;canisme
52     permettant de v&eacute;rifier si un contenu expir&eacute; ou d&eacute;pass&eacute; est encore &agrave;
53     jour, et peut apporter un gain de performances significatif si le
54     serveur original supporte les <strong>requ&ecirc;tes
55     conditionnelles</strong> en prenant en compte l'en-t&ecirc;te de requ&ecirc;te
56     HTTP <a
57     href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.26">If-None-Match</a>.
58     Le contenu n'est ainsi r&eacute;g&eacute;n&eacute;r&eacute; que lorsqu'il a &eacute;t&eacute; modifi&eacute;, et non
59     lorsqu'il a expir&eacute;.</p>
60
61     <p>En tant que filtre, <module>mod_cache</module> peut &ecirc;tre plac&eacute;
62     en face d'un contenu issu de tout gestionnaire, y compris
63     <strong>des fichiers &agrave; acc&egrave;s s&eacute;quentiel</strong> (servis depuis un
64     disque lent mis en
65     cache sur un gros disque), la sortie d'un <strong>script
66     CGI</strong> ou d'un <strong>g&eacute;n&eacute;rateur de contenu
67     dynamique</strong>, ou du contenu <strong>mandat&eacute; depuis un autre
68     serveur</strong>.</p>
69
70     <p>Dans la configuration par d&eacute;faut, <module>mod_cache</module>
71     place le filtre de mise en cache aussi loin que possible dans la
72     pile de filtres, utilisant le <strong>gestionnaire rapide</strong>
73     pour court-circuiter tout traitement par requ&ecirc;te lors de l'envoi du
74     contenu au client. Dans ce mode op&eacute;ratoire,
75     <module>mod_cache</module> peut &ecirc;tre consid&eacute;r&eacute; comme un serveur
76     mandataire avec cache fix&eacute; en t&ecirc;te du serveur web, alors qu'il
77     s'ex&eacute;cute dans ce m&ecirc;me serveur web.</p>
78
79     <p>Lorsque le gestionnaire rapide est d&eacute;sactiv&eacute; via la directive
80     <directive module="mod_cache">CacheQuickHandler</directive>, il
81     devient possible d'ins&eacute;rer le filtre <strong>CACHE</strong> &agrave; un
82     point de la pile de filtres choisi par l'administrateur. Ceci permet
83     de mettre en cache un contenu avant que celui-ci ne soit
84     personnalis&eacute; par le filtre <module>mod_include</module>, ou
85     &eacute;ventuellement compress&eacute; par le filtre <module>mod_deflate</module>.</p>
86
87     <p>Dans le mode de fonctionnement normal, <module>mod_cache</module>
88     peut &ecirc;tre contr&ocirc;l&eacute; par les en-t&ecirc;tes <a
89     href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9">Cache-Control</a>
90     et <a
91     href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.32">Pragma</a>
92     envoy&eacute;s par un client dans une requ&ecirc;te, ou par un serveur dans une
93     r&eacute;ponse. Dans des circonstances exceptionnelles,
94     <module>mod_cache</module> peut cependant &ecirc;tre configur&eacute; pour
95     outrepasser ces en-t&ecirc;tes et forcer un comportement sp&eacute;cifique au
96     site, bien qu'un tel comportement sera limit&eacute; &agrave; ce cache seulement,
97     et n'affectera pas les op&eacute;rations des autres caches qui peuvent
98     s'ins&eacute;rer entre le client et le serveur, et ce type de configuration
99     ne doit donc &ecirc;tre utiliser qu'en cas de n&eacute;cessit&eacute; absolue.</p>
100
101     <p>La RFC 2616 permet au cache de renvoyer des donn&eacute;es p&eacute;rim&eacute;es
102     pendant que l'entr&eacute;e p&eacute;rim&eacute;e correspondante est mise &agrave; jour depuis
103     le serveur original, et <module>mod_cache</module> supporte cette
104     fonctionnalit&eacute; lorsque la directive <directive
105     module="mod_cache">CacheLock</directive> est configur&eacute;e en
106     cons&eacute;quence. De telles r&eacute;ponses comportent un en-t&ecirc;te HTTP <a
107     href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.46">Warning</a>
108     contenant un code de r&eacute;ponse 110. La RFC 2616 permet aussi au cache
109     de renvoyer des donn&eacute;es p&eacute;rim&eacute;es lorsque la tentative de mise &agrave; jour
110     des donn&eacute;es p&eacute;rim&eacute;es renvoie une erreur 500 ou sup&eacute;rieure, et cette
111     fonctionnalit&eacute; est support&eacute;e par d&eacute;faut par
112     <module>mod_cache</module>. De telles r&eacute;ponses comportent un en-t&ecirc;te HTTP <a
113     href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.46">Warning</a>
114     contenant un code de r&eacute;ponse 111.</p>
115
116     <p><module>mod_cache</module> requiert les services d'un ou
117     plusieurs modules de gestion de stockage. La distribution Apache de base
118     inclut un module de gestion de stockage :</p>
119     <dl>
120     <dt><module>mod_cache_disk</module></dt>
121
122     <dd>impl&eacute;mente un gestionnaire de stockage sur disque. Les en-t&ecirc;tes
123     et corps sont stock&eacute;s s&eacute;par&eacute;ment sur le disque dans une structure de
124     r&eacute;pertoires bas&eacute;e sur le condens&eacute; md5 de l'URL mise en cache.
125     Plusieurs r&eacute;ponses &agrave; contenu n&eacute;goci&eacute; peuvent &ecirc;tre stock&eacute;es en m&ecirc;me
126     temps, mais la mise en cache de contenus partiels n'est pas
127     support&eacute;e par ce module. L'utilitaire
128     <program>htcacheclean</program> permet de lister et de supprimer les
129     URLs mises en cache, et de maintenir le cache en de&ccedil;&agrave; de
130     certaines limites de taille et de nombre d'inodes.</dd>
131     </dl>
132
133     <p>Pour de plus amples d&eacute;tails, une description, et des exemples,
134     reportez-vous au <a href="../caching.html">Guide de la mise en
135     cache</a>.</p>
136 </summary>
137 <seealso><a href="../caching.html">Guide de la mise en
138 cache</a></seealso>
139
140 <section id="related"><title>Modules apparent&eacute;s et directives</title>
141     <related>
142       <modulelist>
143         <module>mod_cache_disk</module>
144       </modulelist>
145       <directivelist>
146         <directive module="mod_cache_disk">CacheRoot</directive>
147         <directive module="mod_cache_disk">CacheDirLevels</directive>
148         <directive module="mod_cache_disk">CacheDirLength</directive>
149         <directive module="mod_cache_disk">CacheMinFileSize</directive>
150         <directive module="mod_cache_disk">CacheMaxFileSize</directive>
151       </directivelist>
152     </related>
153 </section>
154
155 <section id="sampleconf"><title>Exemple de configuration</title>
156     <example><title>Extrait de httpd.conf</title>
157       #<br />
158       # Exemple de configuration du cache<br />
159       #<br />
160       LoadModule cache_module modules/mod_cache.so<br />
161       <br />
162       &lt;IfModule mod_cache.c&gt;<br />
163       <indent>
164         LoadModule disk_cache_module modules/mod_cache_disk.so<br />
165         &lt;IfModule mod_cache_disk.c&gt;<br />
166         <indent>
167           CacheRoot c:/cacheroot<br />
168           CacheEnable disk  /<br />
169           CacheDirLevels 5<br />
170           CacheDirLength 3<br />
171         </indent>
172         &lt;/IfModule&gt; <br />
173         <br />
174         # Lorsqu'on sert de mandataire, on ne met pas en cache la liste
175         # des mises &agrave; jour de s&eacute;curit&eacute;<br />
176         CacheDisable http://security.update.server/update-list/<br />
177       </indent>
178       &lt;/IfModule&gt;
179     </example>
180 </section>
181
182 <section id="thunderingherd"><title>Eviter une temp&ecirc;te de requ&ecirc;te</title>
183   <p>Lorsqu'une entr&eacute;e du cache est p&eacute;rim&eacute;e, <module>mod_cache</module>
184   soumet une requ&ecirc;te conditionnelle au processus d'arri&egrave;re-plan, qui est
185   cens&eacute; confirmer la validit&eacute; de l'entr&eacute;e du cache, ou dans la n&eacute;gative
186   envoyer une entr&eacute;e mise &agrave; jour.</p>
187   <p>Un court mais non n&eacute;gligeable laps de temps existe entre le moment
188   o&ugrave; l'entr&eacute;e du cache est p&eacute;rim&eacute;e, et le moment o&ugrave; elle est mise &agrave;
189   jour. Sur un serveur fortement charg&eacute;, un certain nombre de requ&ecirc;tes
190   peut arriver pendant ce laps de temps, et provoquer une
191   <strong>temp&ecirc;te</strong> de requ&ecirc;tes susceptibles de saturer le
192   processus d'arri&egrave;re-plan de mani&egrave;re soudaine et impr&eacute;dictible.</p>
193   <p>Pour contenir cette temp&ecirc;te, on peut utiliser la directive
194   <directive>CacheLock</directive> afin de d&eacute;finir un r&eacute;pertoire o&ugrave;
195   seront cr&eacute;&eacute;s <strong>&agrave; la vol&eacute;e</strong> des verrous pour les URLs.
196   Ces verrous sont utilis&eacute;s comme autant d'<strong>indications</strong>
197   par les autres requ&ecirc;tes, soit pour emp&ecirc;cher une tentative de mise en
198   cache (un autre processus est en train de r&eacute;cup&eacute;rer l'entit&eacute;), soit
199   pour indiquer qu'une entr&eacute;e p&eacute;rim&eacute;e est en cours de mise &agrave; jour
200   (pendant ce temps, c'est le contenu p&eacute;rim&eacute; qui sera renvoy&eacute;).
201   </p>
202   <section>
203     <title>Mise en cache initiale d'une entr&eacute;e</title>
204     <p>Lorsqu'une entit&eacute; est mise en cache pour la premi&egrave;re fois, un
205     verrou est cr&eacute;&eacute; pour cette entit&eacute; jusqu'&agrave; ce que la r&eacute;ponse ait &eacute;t&eacute;
206     enti&egrave;rement mise en cache. Pendant la dur&eacute;e de vie du verrou, le
207     cache va emp&ecirc;cher une seconde tentative de mise en cache de la m&ecirc;me
208     entit&eacute;. Bien que cela ne suffise pas &agrave; contenir la temp&ecirc;te de
209     requ&ecirc;tes, toute tentative de mettre en cache la m&ecirc;me entit&eacute;
210     plusieurs fois simultan&eacute;ment est stopp&eacute;e.
211     </p>
212   </section>
213   <section>
214     <title>Mise &agrave; jour d'une entr&eacute;e p&eacute;rim&eacute;e</title>
215     <p>Lorsqu'une entr&eacute;e atteint la limite de sa dur&eacute;e de vie, et
216     devient par cons&eacute;quent p&eacute;rim&eacute;e, un verrou est cr&eacute;&eacute; pour cette entit&eacute;
217     jusqu'&agrave; ce que la r&eacute;ponse ait &eacute;t&eacute; soit confirm&eacute;e comme encore
218     valide, soit remplac&eacute;e par le processus d'arri&egrave;re-plan. Pendant la
219     dur&eacute;e de vie du verrou, une seconde requ&ecirc;te entrante va provoquer le
220     renvoi de la donn&eacute;e p&eacute;rim&eacute;e, et la temp&ecirc;te de requ&ecirc;tes sera
221     contenue.</p>
222   </section>
223   <section>
224     <title>Verrous et en-t&ecirc;te Cache-Control: no-cache</title>
225     <p>Les verrous ne sont utilis&eacute;s <strong>qu'&agrave; titre
226     indicatif</strong> pour enjoindre le cache &agrave; &ecirc;tre plus coop&eacute;ratif
227     avec les serveurs d'arri&egrave;re-plan, et il est possible de passer outre
228     si n&eacute;cessaire. Si le client envoie une requ&ecirc;te contenant un en-t&ecirc;te
229     Cache-Control imposant un nouveau t&eacute;l&eacute;chargement de l'entit&eacute;, tout
230     verrou &eacute;ventuel sera ignor&eacute;, la requ&ecirc;te du client sera honor&eacute;e
231     imm&eacute;diatement, et l'entr&eacute;e du cache mise &agrave; jour.</p>
232
233     <p>Comme m&eacute;canisme de s&eacute;curit&eacute; suppl&eacute;mentaire, la dur&eacute;e de vie
234     maximale des verrous est configurable. Lorsque cette limite est
235     atteinte, le verrou est supprim&eacute; et une autre requ&ecirc;te peut alors en
236     cr&eacute;er un nouveau. Cette dur&eacute;e de vie peut &ecirc;tre d&eacute;finie via la
237     directive <directive>CacheLockMaxAge</directive>, et sa valeur par
238     d&eacute;faut est de 5 secondes.
239     </p>
240   </section>
241   <section>
242     <title>Exemple de configuration</title>
243     <example><title>Activation du verrouillage du cache</title>
244       #<br />
245       # Active le verrouillage du cache<br />
246       #<br />
247       &lt;IfModule mod_cache.c&gt;<br />
248       <indent>
249         CacheLock on<br />
250         CacheLockPath /tmp/mod_cache-lock<br />
251         CacheLockMaxAge 5<br />
252       </indent>
253       &lt;/IfModule&gt;
254     </example>
255   </section>
256 </section>
257
258 <section id="finecontrol"><title>Contr&ocirc;le fin via le filtre CACHE</title>
259   <p>Dans son mode de fonctionnement par d&eacute;faut, le cache s'ex&eacute;cute sous
260   la forme d'un gestionnaire rapide, court-circuitant la majorit&eacute; des
261   traitements du serveur et fournissant ainsi une mise en cache
262   poss&eacute;dant les plus hautes performances disponibles.</p>
263
264   <p>Dans ce mode, le cache <strong>s'incruste</strong> devant le
265   serveur, comme si un mandataire de mise en cache ind&eacute;pendant RFC 2616
266   &eacute;tait plac&eacute; devant ce dernier.</p>
267
268   <p>Bien que que ce mode offre les meilleures performances, les
269   administrateurs peuvent souhaiter, dans certaines circonstances,
270   effectuer des traitements sur la requ&ecirc;te apr&egrave;s que cette derni&egrave;re ait
271   &eacute;t&eacute; mise en cache, comme ajouter du contenu personnalis&eacute; &agrave; la page
272   mise en cache, ou appliquer des restrictions d'autorisations au
273   contenu. Pour y parvenir, l'administrateur sera alors souvent forc&eacute; de
274   placer des serveurs mandataires inverses ind&eacute;pendants soit derri&egrave;re,
275   soit devant le serveur de mise en cache.</p>
276
277   <p>Pour r&eacute;soudre ce probl&egrave;me, la directive <directive
278   module="mod_cache">CacheQuickHandler</directive> peut &ecirc;tre d&eacute;finie &agrave;
279   <strong>off</strong>, afin que le serveur traite toutes les phases
280   normalement ex&eacute;cut&eacute;es par une requ&ecirc;te non mise en cache, y compris les
281   phases <strong>d'authentification et d'autorisation</strong>.</p>
282
283   <p>En outre, l'administrateur peut &eacute;ventuellement sp&eacute;cifier le
284   <strong>point pr&eacute;cis dans la cha&icirc;ne de filtrage</strong> o&ugrave; devra
285   intervenir la mise en cache en ajoutant le filtre
286   <strong>CACHE</strong> &agrave; la cha&icirc;ne de filtrage en sortie.</p>
287
288   <p>Par exemple, pour mettre en cache le contenu avant d'appliquer une
289   compression &agrave; la r&eacute;ponse, placez le filtre <strong>CACHE</strong>
290   avant le filtre <strong>DEFLATE</strong> comme dans l'exemple suivant
291   :</p>
292
293   <example>
294     # Mise en cache du contenu avant la compression optionnelle<br />
295     CacheQuickHandler off<br />
296     AddOutputFilterByType CACHE;DEFLATE text/plain<br /><br />
297   </example>
298
299   <p>Une autre possibilit&eacute; consiste &agrave; mettre en cache le contenu avant
300   l'ajout de contenu personnalis&eacute; via <module>mod_include</module> (ou
301   tout autre filtre de traitement de contenu). Dans l'exemple suivant,
302   les mod&egrave;les contenant des balises comprises par
303   <module>mod_include</module> sont mis en cache avant d'&ecirc;tre
304   interpr&eacute;t&eacute;s :</p>
305
306   <example>
307     # Mise en cache du contenu avant l'intervention de mod_include et
308     # mod_deflate<br />
309     CacheQuickHandler off<br />
310     AddOutputFilterByType CACHE;INCLUDES;DEFLATE text/html<br /><br />
311   </example>
312
313   <p>Vous pouvez ins&eacute;rer le filtre <strong>CACHE</strong> en tout point
314   de la cha&icirc;ne de filtrage. Dans l'exemple suivant, le contenu est mis
315   en cache apr&egrave;s avoir &eacute;t&eacute; interpr&eacute;t&eacute; par <module>mod_include</module>,
316   mais avant d'&ecirc;tre trait&eacute; par <module>mod_deflate</module> :</p>
317
318   <example>
319     # Mise en cache du contenu entre les interventions de mod_include et
320     # mod_deflate<br />
321     CacheQuickHandler off<br />
322     AddOutputFilterByType INCLUDES;CACHE;DEFLATE text/html<br /><br />
323   </example>
324
325   <note type="warning"><title>Avertissement :</title>Si pour une raison
326   ou pour une autre, le point d'insertion du filtre
327   <strong>CACHE</strong> dans la cha&icirc;ne de filtrage est modifi&eacute;, vous
328   devez <strong>vider votre cache</strong> pour &ecirc;tre s&ucirc;r que les donn&eacute;es
329   servies soient &agrave; jour. En effet, <module>mod_cache</module> n'est pas
330   en mesure d'effectuer cette op&eacute;ration &agrave; votre place.</note>
331
332 </section>
333
334 <section id="status"><title>Etat du cache et journalisation</title>
335   <p>Lorsque <module>mod_cache</module> a d&eacute;cid&eacute; s'il devait ou non
336   servir une entit&eacute; depuis le cache, les raisons pr&eacute;cises de cette
337   d&eacute;cision sont enregistr&eacute;es dans l'environnement du sous-processus
338   interne &agrave; la requ&ecirc;te sous la cl&eacute; <strong>cache-status</strong>.
339   Cette information peut &ecirc;tre journalis&eacute;e via la directive <directive
340   module="mod_log_config">LogFormat</directive> comme suit :</p>
341
342   <example>
343     LogFormat "%{cache-status}e ..."
344   </example>
345
346   <p>En fonction de la d&eacute;cision prise, l'information est aussi &eacute;crite
347   dans l'environnement du sous-processus sous une des quatre cl&eacute;s
348   suivantes :</p>
349
350   <dl>
351     <dt>cache-hit</dt><dd>Le contenu a &eacute;t&eacute; servi depuis le cache.</dd>
352     <dt>cache-revalidate</dt><dd>Le contenu du cache &eacute;tait p&eacute;rim&eacute;, a &eacute;t&eacute;
353     mis &agrave; jour avec succ&egrave;s, puis servi depuis le cache.</dd>
354     <dt>cache-miss</dt><dd>Le contenu n'&eacute;tait pas dans le cache et a &eacute;t&eacute;
355     servi directement depuis le serveur demand&eacute;.</dd>
356     <dt>cache-invalidate</dt><dd>L'entit&eacute; du cache est devenue invalide
357     suite &agrave; une requ&ecirc;te d'un type autre que GET ou HEAD.</dd>
358   </dl>
359
360   <p>Il est alors possible d'envisager une journalisation conditionnelle
361   du traitement des requ&ecirc;tes par rapport au cache comme dans l'exemple
362   suivant :</p>
363
364   <example>
365     CustomLog requetes-depuis-cache.log common env=cache-hit<br />
366     CustomLog requetes-hors-cache.log common env=cache-miss<br />
367     CustomLog requetes-avec-mise-a-jour-du-cache.log common env=cache-revalidate<br />
368     CustomLog requetes-avec-invalidation.log common env=cache-invalidate<br />
369   </example>
370
371   <p>Pour les concepteurs de modules, une accroche (hook) nomm&eacute;e
372   <var>cache_status</var> est disponible et permet aux modules de
373   r&eacute;pondre aux r&eacute;sultats de la v&eacute;rification du cache ci-dessus de mani&egrave;re
374   personnalis&eacute;e.</p>
375
376 </section>
377
378 <directivesynopsis>
379 <name>CacheEnable</name>
380 <description>Active la mise en cache des URLs sp&eacute;cifi&eacute;es en utilisant le
381 gestionnaire de stockage pr&eacute;cis&eacute;</description>
382 <syntax>CacheEnable <var>type de cache</var> [<var>cha&icirc;ne
383 URL</var>]</syntax>
384 <contextlist><context>server config</context><context>virtual host</context>
385 <context>directory</context><context>.htaccess</context>
386 </contextlist>
387
388 <usage>
389     <p>La directive <directive>CacheEnable</directive> enjoint
390     <module>mod_cache</module> de mettre en cache l'URL pr&eacute;cis&eacute;e par
391     <var>cha&icirc;ne URL</var>, ainsi que les URLs de niveaux inf&eacute;rieurs. Le
392     gestionnaire de stockage du cache est sp&eacute;cifi&eacute; &agrave; l'aide de
393     l'argument <var>type de cache</var>. La directive
394     <directive>CacheEnable</directive> peut &ecirc;tre plac&eacute;e &agrave; l'int&eacute;rieur d'une
395     section <directive type="section">Location</directive> ou <directive
396     type="section">LocationMatch</directive> pour indiquer que le
397     contenu consid&eacute;r&eacute; peut &ecirc;tre mis en cache. Si <var>type de cache</var>
398     a pour valeur <code>disk</code>, <module>mod_cache</module>
399     utilisera le gestionnaire de stockage sur disque impl&eacute;ment&eacute; par
400     <module>mod_cache_disk</module>.</p>
401     <p>Si les diff&eacute;rentes directives <directive>CacheEnable</directive>
402     sp&eacute;cifient des URLs qui se recoupent (comme dans l'exemple
403     ci-dessous), tous les gestionnaires de stockage possibles seront
404     lanc&eacute;s, jusqu'au premier d'entre eux qui traitera effectivement la
405     requ&ecirc;te.
406     L'ordre dans lequel les gestionnaires de stockage sont lanc&eacute;s est
407     d&eacute;termin&eacute; par l'ordre dans lequel apparaissent les directives
408     <directive>CacheEnable</directive> dans le fichier de
409     configuration. Les directives <directive>CacheEnable</directive>
410     situ&eacute;es &agrave; l'int&eacute;rieur de sections <directive
411     type="section">Location</directive> ou <directive
412     type="section">LocationMatch</directive> sont trait&eacute;es avant les
413     directives <directive>CacheEnable</directive> d&eacute;finies au niveau
414     global.</p>
415
416     <p>En fonctionnement du type serveur mandataire direct, <var>cha&icirc;ne
417     URL</var> peut aussi &ecirc;tre utilis&eacute; pour sp&eacute;cifier des sites distants
418     et des protocoles de mandat pour lesquels la mise en cache devra
419     &ecirc;tre activ&eacute;e.</p>
420
421     <example>
422       # Mise en cache de contenu<br />
423       &lt;Location /foo&gt;<br />
424       <indent>
425         CacheEnable disk<br />
426       </indent>
427       &lt;/Location&gt;<br /><br />
428       # Mise en cache via une expression rationnelle<br />
429       &lt;LocationMatch foo$&gt;<br />
430       <indent>
431         CacheEnable disk<br />
432       </indent>
433       &lt;/LocationMatch&gt;<br /><br />
434       # Mise en cache des URLs mandat&eacute;es<br />
435       CacheEnable  disk  /<br /><br />
436       # Mise en cache des URLs FTP mandat&eacute;es<br />
437       CacheEnable  disk  ftp://<br /><br />
438       # Mise en cache des contenus situ&eacute;s dans www.example.org<br />
439       CacheEnable  disk  http://www.example.org/<br />
440     </example>
441
442     <p>Un nom d'h&ocirc;te commen&ccedil;ant par un caract&egrave;re <strong>"*"</strong>
443     correspondra &agrave; tout nom d'h&ocirc;te se terminant par le suffixe
444     consid&eacute;r&eacute;. Un nom d'h&ocirc;te commen&ccedil;ant par un caract&egrave;re
445     <strong>"."</strong> correspondra &agrave; tout nom d'h&ocirc;te contenant le
446     composant de nom de domaine qui suit ce caract&egrave;re.</p>
447
448     <example>
449       # Correspond &agrave; www.example.org et fooexample.org<br />
450       CacheEnable  disk  http://*example.org/<br />
451       # Correspond &agrave; www.example.org, mais pas &agrave; fooexample.org<br />
452       CacheEnable  disk  http://.example.org/<br />
453     </example>
454
455     <p>Depuis la version 2.2.12, on peut d&eacute;finir la variable
456     d'environnement <code>no-cache</code> pour une d&eacute;finition plus fine
457     des ressources &agrave; mettre en cache.</p>
458
459 </usage>
460 <seealso><a href="../env.html">Les variables d'environnement dans
461 Apache</a></seealso>
462 </directivesynopsis>
463
464 <directivesynopsis>
465 <name>CacheDisable</name>
466 <description>D&eacute;sactive la mise en cache des URLs
467 sp&eacute;cifi&eacute;es</description>
468 <syntax>CacheDisable <var>cha&icirc;ne-url</var> | <var>on</var></syntax>
469 <contextlist><context>server config</context><context>virtual host</context>
470 <context>directory</context><context>.htaccess</context>
471 </contextlist>
472
473 <usage>
474     <p>La directive <directive>CacheDisable</directive> enjoint
475     <module>mod_cache</module> de <em>ne pas</em> mettre en cache l'URL
476     sp&eacute;cifi&eacute;e par <var>cha&icirc;ne URL</var>, ainsi que les URLs de niveaux
477     inf&eacute;rieurs.</p>
478
479     <example><title>Exemple</title>
480       CacheDisable /fichiers_locaux
481     </example>
482
483     <p>Si la directive se trouve &agrave; l'int&eacute;rieur d'une section <directive
484     type="section">Location</directive>, le chemin doit &ecirc;tre sp&eacute;cifi&eacute; en
485     dessous de la Location, et si le mot "on" est utilis&eacute;, la mise en
486     cache sera d&eacute;sactiv&eacute;e pour l'ensemble de l'arborescence concern&eacute;e
487     par la section Location.</p>
488
489     <example><title>Exemple</title>
490       &lt;Location /foo&gt;<br />
491       <indent>
492         CacheDisable on<br />
493       </indent>
494       &lt;/Location&gt;<br />
495     </example>
496
497     <p>Avec les versions 2.2.12 et ult&eacute;rieures, on peut d&eacute;finir la
498     variable d'environnement <code>no-cache</code> pour une d&eacute;finition
499     plus fine des ressources &agrave; mettre en cache.</p>
500 </usage>
501 <seealso><a href="../env.html">Les variables d'environnement dans
502 Apache</a></seealso>
503 </directivesynopsis>
504 <directivesynopsis>
505 <name>CacheMaxExpire</name>
506 <description>La dur&eacute;e maximale en secondes de mise en cache d'un
507 document</description>
508 <syntax>CacheMaxExpire <var>secondes</var></syntax>
509 <default>CacheMaxExpire 86400 (une journ&eacute;e)</default>
510 <contextlist><context>server config</context><context>virtual host</context>
511 <context>directory</context><context>.htaccess</context>
512 </contextlist>
513
514 <usage>
515     <p>La directive <directive>CacheMaxExpire</directive> permet de
516     sp&eacute;cifier le nombre maximum de secondes pendant lequel les documents
517     HTTP suceptibles d'&ecirc;tre mis en cache seront conserv&eacute;s sans v&eacute;rifier
518     leur contenu sur le serveur d'origine. Ce nombre de secondes
519     correspond donc &agrave; la dur&eacute;e maximale pendant laquelle un document ne
520     sera pas &agrave; jour. L'utilisation de cette valeur maximale est forc&eacute;e,
521     m&ecirc;me si le document poss&egrave;de une date d'expiration.</p>
522
523     <example>
524       CacheMaxExpire 604800
525     </example>
526 </usage>
527 </directivesynopsis>
528
529 <directivesynopsis>
530 <name>CacheMinExpire</name>
531 <description>La dur&eacute;e minimale en secondes de mise en cache d'un
532 document</description>
533 <syntax>CacheMinExpire <var>secondes</var></syntax>
534 <default>CacheMinExpire 0</default>
535 <contextlist><context>server config</context><context>virtual host</context>
536 <context>directory</context><context>.htaccess</context>
537 </contextlist>
538
539 <usage>
540     <p>La directive <directive>CacheMaxExpire</directive> permet de
541     sp&eacute;cifier le nombre maximum de secondes pendant lequel les documents
542     HTTP suceptibles d'&ecirc;tre mis en cache seront conserv&eacute;s sans v&eacute;rifier
543     leur contenu sur le serveur d'origine. Elle n'est prise en compte
544     que dans le cas o&ugrave; le document ne poss&egrave;de aucune date d'expiration
545     valide.</p>
546
547     <example>
548       CacheMinExpire 3600
549     </example>
550 </usage>
551 </directivesynopsis>
552
553 <directivesynopsis>
554 <name>CacheDefaultExpire</name>
555 <description>La dur&eacute;e par d&eacute;faut de mise en cache d'un document
556 lorsqu'aucune date d'expiration n'a &eacute;t&eacute; sp&eacute;cifi&eacute;e.</description>
557 <syntax>CacheDefaultExpire <var>secondes</var></syntax>
558 <default>CacheDefaultExpire 3600 (une heure)</default>
559 <contextlist><context>server config</context><context>virtual host</context>
560 <context>directory</context><context>.htaccess</context>
561 </contextlist>
562
563 <usage>
564     <p>La directive <directive>CacheDefaultExpire</directive> permet de
565     sp&eacute;cifier un temps par d&eacute;faut, en secondes, pendant lequel sera
566     conserv&eacute; dans le cache un document qui ne poss&egrave;de ni date
567     d'expiration, ni date de derni&egrave;re modification. La valeur de cette
568     directive est &eacute;cras&eacute;e par la valeur de la directive
569     <directive>CacheMaxExpire</directive> si cette derni&egrave;re est
570     utilis&eacute;e.</p>
571
572     <example>
573       CacheDefaultExpire 86400
574     </example>
575 </usage>
576 </directivesynopsis>
577
578 <directivesynopsis>
579 <name>CacheIgnoreNoLastMod</name>
580 <description>Ignore le fait qu'une r&eacute;ponse ne poss&egrave;de pas d'en-t&ecirc;te Last
581 Modified.</description>
582 <syntax>CacheIgnoreNoLastMod On|Off</syntax>
583 <default>CacheIgnoreNoLastMod Off</default>
584 <contextlist><context>server config</context><context>virtual host</context>
585 <context>directory</context><context>.htaccess</context>
586 </contextlist>
587
588 <usage>
589     <p>Normalement, les documents qui ne poss&egrave;dent pas de date de
590     derni&egrave;re modification ne sont pas mis en cache. Dans certaines
591     circonstances, la date de derni&egrave;re modification est supprim&eacute;e (au
592     cours des traitements li&eacute;s &agrave; <module>mod_include</module> par
593     exemple), ou n'existe tout simplement pas. La directive
594     <directive>CacheIgnoreNoLastMod</directive> permet de sp&eacute;cifier si
595     les documents ne poss&egrave;dant pas de date de derni&egrave;re modification
596     doivent &ecirc;tre mis en cache, m&ecirc;me sans date de derni&egrave;re modification.
597     Si le document ne poss&egrave;de ni date d'expiration, ni date de derni&egrave;re
598     modification, la valeur sp&eacute;cifi&eacute;e par la directive
599     <directive>CacheDefaultExpire</directive> servira &agrave; g&eacute;n&eacute;rer une date
600     d'expiration.
601     </p>
602
603     <example>
604       CacheIgnoreNoLastMod On
605     </example>
606 </usage>
607 </directivesynopsis>
608
609 <directivesynopsis>
610 <name>CacheIgnoreCacheControl</name>
611 <description>Ignore les en-t&ecirc;tes de requ&ecirc;te enjoignant de ne pas servir
612 le contenu au client depuis le cache</description>
613 <syntax>CacheIgnoreCacheControl On|Off</syntax>
614 <default>CacheIgnoreCacheControl Off</default>
615 <contextlist><context>server config</context><context>virtual host</context>
616 </contextlist>
617
618 <usage>
619     <p>Normalement, les requ&ecirc;tes contenant des en-t&ecirc;tes tels que
620     Cache-Control: no-cache ou Pragma: no-cache ne sont pas servies
621     depuis le cache. La directive
622     <directive>CacheIgnoreCacheControl</directive> permet de modifier ce
623     comportement. Avec <directive>CacheIgnoreCacheControl
624     On</directive>, le serveur tentera de servir la ressource depuis le
625     cache, m&ecirc;me si la requ&ecirc;te contient un des en-t&ecirc;tes cit&eacute;s plus haut.
626     Les ressources qui requi&egrave;rent une autorisation ne seront
627     <em>jamais</em> mises en cache.</p>
628
629     <example>
630       CacheIgnoreCacheControl On
631     </example>
632
633     <note type="warning"><title>Avertissement :</title>
634        Cette directive permet de servir des ressources depuis le cache,
635        m&ecirc;me si le client a demand&eacute; &agrave; ce qu'il n'en soit pas ainsi. Le
636        contenu servi est ainsi susceptible d'&ecirc;tre p&eacute;rim&eacute;.
637     </note>
638 </usage>
639 <seealso><directive module="mod_cache">CacheStorePrivate</directive></seealso>
640 <seealso><directive module="mod_cache">CacheStoreNoStore</directive></seealso>
641 </directivesynopsis>
642
643 <directivesynopsis>
644 <name>CacheIgnoreQueryString</name>
645 <description>Ignore la cha&icirc;ne de param&egrave;tres lors de la mise en
646 cache</description>
647 <syntax>CacheIgnoreQueryString On|Off</syntax>
648 <default>CacheIgnoreQueryString Off</default>
649 <contextlist><context>server config</context><context>virtual host</context>
650 </contextlist>
651
652 <usage>
653     <p>Normalement, les requ&ecirc;tes comportant une cha&icirc;ne de param&egrave;tres
654     sont mises en cache s&eacute;par&eacute;ment si leurs cha&icirc;nes de param&egrave;tres
655     diff&egrave;rent.
656     En accord avec la RFC 2616/13.9, cette mise en cache n'est effectu&eacute;e
657     s&eacute;par&eacute;ment que si une date d'expiration est sp&eacute;cifi&eacute;e. La directive
658     <directive>CacheIgnoreQueryString</directive> permet la mise en
659     cache de requ&ecirc;tes m&ecirc;me si aucune date d'expiration est sp&eacute;cifi&eacute;e, et
660     de renvoyer une r&eacute;ponse depuis la cache m&ecirc;me si les cha&icirc;nes de
661     param&egrave;tres diff&egrave;rent. Du point de vue du cache, la requ&ecirc;te est
662     trait&eacute;e comme si elle ne poss&egrave;dait pas de cha&icirc;ne de param&egrave;tres
663     lorsque cette directive est activ&eacute;e.</p>
664
665     <example>
666       CacheIgnoreQueryString On
667     </example>
668
669 </usage>
670 </directivesynopsis>
671
672 <directivesynopsis>
673 <name>CacheLastModifiedFactor</name>
674 <description>Le facteur utilis&eacute; pour g&eacute;n&eacute;rer une date d'expiration en
675 fonction de la date de derni&egrave;re modification.</description>
676 <syntax>CacheLastModifiedFactor <var>flottant</var></syntax>
677 <default>CacheLastModifiedFactor 0.1</default>
678 <contextlist><context>server config</context><context>virtual host</context>
679 <context>directory</context><context>.htaccess</context>
680 </contextlist>
681
682 <usage>
683     <p>Si un document ne poss&egrave;de pas de date d'expiration, elle peut
684     &ecirc;tre calcul&eacute;e en fonction de la date de derni&egrave;re modification, si
685     elle existe. La directive
686     <directive>CacheLastModifiedFactor</directive> permet de sp&eacute;cifier
687     un <var>facteur</var> &agrave; utiliser pour la g&eacute;n&eacute;ration de cette date
688     d'expiration au sein de la formule suivante :
689
690     <code>d&eacute;lai-expiration = dur&eacute;e-depuis-date-derni&egrave;re-modification *
691     <var>facteur</var>
692     date-expiration = date-courante + d&eacute;lai-expiration</code>
693
694     Par exemple, si la derni&egrave;re modification du document date de 10
695     heures, et si <var>facteur</var> a pour valeur 0.1, le d&eacute;lai
696     d'expiration sera de 10*0.1 = 1 heure. Si l'heure courante est
697     3:00pm, la date d'expiration calcul&eacute;e sera 3:00pm + 1 heure =
698     4:00pm.
699
700     Si le d&eacute;lai d'expiration est sup&eacute;rieur &agrave; celui sp&eacute;cifi&eacute; par la
701     directive <directive>CacheMaxExpire</directive>, c'est ce dernier
702     qui l'emporte.</p>
703
704     <example>
705       CacheLastModifiedFactor 0.5
706     </example>
707 </usage>
708 </directivesynopsis>
709
710 <directivesynopsis>
711 <name>CacheIgnoreHeaders</name>
712 <description>Ne pas stocker le(s) en-t&ecirc;te(s) sp&eacute;cifi&eacute;(s) dans le cache.
713 </description>
714 <syntax>CacheIgnoreHeaders <var>en-t&ecirc;te</var> [<var>en-t&ecirc;te</var>] ...</syntax>
715 <default>CacheIgnoreHeaders None</default>
716 <contextlist><context>server config</context><context>virtual host</context>
717 </contextlist>
718
719 <usage>
720     <p>En accord avec la RFC 2616, les en-t&ecirc;tes HTTP hop-by-hop ne sont
721     pas stock&eacute;s dans le cache. Les en-t&ecirc;tes HTTP suivant sont des
722     en-t&ecirc;tes hop-by-hop, et en tant que tels, ne sont en  <em>aucun</em>
723     cas stock&eacute;s dans le cache, quelle que soit la d&eacute;finition de la
724     directive <directive>CacheIgnoreHeaders</directive> :</p>
725
726     <ul>
727       <li><code>Connection</code></li>
728       <li><code>Keep-Alive</code></li>
729       <li><code>Proxy-Authenticate</code></li>
730       <li><code>Proxy-Authorization</code></li>
731       <li><code>TE</code></li>
732       <li><code>Trailers</code></li>
733       <li><code>Transfer-Encoding</code></li>
734       <li><code>Upgrade</code></li>
735     </ul>
736
737     <p>La directive <directive>CacheIgnoreHeaders</directive> permet de
738     sp&eacute;cifier quels en-t&ecirc;tes HTTP ne doivent pas &ecirc;tre stock&eacute;s dans le
739     cache. Par exemple, il peut s'av&eacute;rer pertinent dans certains cas de
740     ne pas stocker les cookies dans le cache.</p>
741
742     <p>La directive <directive>CacheIgnoreHeaders</directive> accepte
743     une liste d'en-t&ecirc;tes HTTP s&eacute;par&eacute;s par des espaces, qui ne doivent
744     pas &ecirc;tre stock&eacute;s dans le cache. Si les en-t&ecirc;tes hop-by-hop sont les
745     seuls &agrave; ne pas devoir &ecirc;tre stock&eacute;s dans le cache (le comportement
746     compatible RFC 2616), la directive
747     <directive>CacheIgnoreHeaders</directive> peut &ecirc;tre d&eacute;finie &agrave;
748     <code>None</code>.</p>
749
750     <example><title>Exemple 1</title>
751       CacheIgnoreHeaders Set-Cookie
752     </example>
753
754     <example><title>Exemple 2</title>
755       CacheIgnoreHeaders None
756     </example>
757
758     <note type="warning"><title>Avertissement :</title>
759       Si des en-t&ecirc;tes n&eacute;cessaires &agrave; la bonne gestion du cache, comme
760       <code>Expires</code>, ne sont pas stock&eacute;s suite &agrave; la d&eacute;finition
761       d'une directive <directive>CacheIgnoreHeaders</directive>, le
762       comportement de mod_cache sera impr&eacute;visible.
763     </note>
764 </usage>
765 </directivesynopsis>
766
767 <directivesynopsis>
768 <name>CacheIgnoreURLSessionIdentifiers</name>
769 <description>Ignore les identifiants de session d&eacute;finis encod&eacute;s dans
770 l'URL lors de la mise en cache
771 </description>
772 <syntax>CacheIgnoreURLSessionIdentifiers <var>identifiant</var>
773 [<var>identifiant</var>] ...</syntax>
774 <default>CacheIgnoreURLSessionIdentifiers None</default>
775 <contextlist><context>server config</context><context>virtual host</context>
776 </contextlist>
777
778 <usage>
779     <p>Certaines applications encodent l'identifiant de session dans
780     l'URL comme dans l'exemple suivant :
781     </p>
782     <ul>
783       <li><code>/une-application/image.gif;jsessionid=123456789</code></li>
784       <li><code>/une-application/image.gif?PHPSESSIONID=12345678</code></li>
785     </ul>
786     <p>Ceci implique la mise en cache des ressources s&eacute;par&eacute;ment pour
787     chaque session, ce qui n'est en g&eacute;n&eacute;ral pas souhait&eacute;. La directive
788     <directive>CacheIgnoreURLSessionIdentifiers</directive> permet de
789     d&eacute;finir une liste d'identifiants qui seront supprim&eacute;s de la cl&eacute;
790     utilis&eacute;e pour identifier une entit&eacute; dans le cache, de fa&ccedil;on &agrave; ce que
791     les ressources ne soient pas stock&eacute;es s&eacute;par&eacute;ment pour chaque
792     session.
793     </p>
794     <p><code>CacheIgnoreURLSessionIdentifiers None</code> vide la liste
795     des identifiants ignor&eacute;s. Autrement, chaque identifiant sp&eacute;cifi&eacute; est
796     ajout&eacute; &agrave; la liste.</p>
797
798     <example><title>Exemple 1</title>
799       CacheIgnoreURLSessionIdentifiers jsessionid
800     </example>
801
802     <example><title>Exemple 2</title>
803       CacheIgnoreURLSessionIdentifiers None
804     </example>
805
806 </usage>
807 </directivesynopsis>
808
809 <directivesynopsis>
810 <name>CacheStoreExpired</name>
811 <description>Tente de mettre en cache les r&eacute;ponses que le serveur
812 consid&egrave;re comme arriv&eacute;es &agrave; expiration</description>
813 <syntax>CacheStoreExpired On|Off</syntax>
814 <default>CacheStoreExpired Off</default>
815 <contextlist><context>server config</context><context>virtual host</context>
816 <context>directory</context><context>.htaccess</context>
817 </contextlist>
818
819 <usage>
820     <p>Depuis la version 2.2.4, les r&eacute;ponses qui sont arriv&eacute;es &agrave;
821     expiration ne sont pas stock&eacute;es dans le cache. La directive
822     <directive>CacheStoreExpired</directive> permet de modifier ce
823     comportement. Avec <directive>CacheStoreExpired</directive> On, le
824     serveur tente de mettre en cache la ressource si elle est p&eacute;rim&eacute;e.
825     Les requ&ecirc;tes suivantes vont d&eacute;clencher une requ&ecirc;te si-modifi&eacute;-depuis
826     de la part du serveur d'origine, et la r&eacute;ponse sera renvoy&eacute;e &agrave;
827     partir du cache si la ressource d'arri&egrave;re-plan n'a pas &eacute;t&eacute; modifi&eacute;e.</p>
828
829     <example>
830       CacheStoreExpired On
831     </example>
832 </usage>
833 </directivesynopsis>
834
835 <directivesynopsis>
836 <name>CacheStorePrivate</name>
837 <description>Tente de mettre en cache des r&eacute;ponses que le serveur a
838 marqu&eacute;es comme priv&eacute;es</description>
839 <syntax>CacheStorePrivate On|Off</syntax>
840 <default>CacheStorePrivate Off</default>
841 <contextlist><context>server config</context><context>virtual host</context>
842 <context>directory</context><context>.htaccess</context>
843 </contextlist>
844
845 <usage>
846     <p>Normalement, les r&eacute;ponse comportant un en-t&ecirc;te Cache-Control:
847     dont la valeur est private ne seront pas stock&eacute;es dans le cache. La
848     directive <directive>CacheStorePrivate</directive> permet de
849     modifier ce comportement. Si
850     <directive>CacheStorePrivate</directive> est d&eacute;finie &agrave; On, le
851     serveur tentera de mettre la ressource en cache, m&ecirc;me si elle
852     contient des en-t&ecirc;tes ayant pour valeur private. Les ressources
853     n&eacute;cessitant une autorisation ne sont <em>jamais</em> mises en
854     cache.</p>
855
856     <example>
857       CacheStorePrivate On
858     </example>
859
860     <note type="warning"><title>Avertissement :</title>
861        Cette directive autorise la mise en cache m&ecirc;me si le serveur
862        indique que la ressource ne doit pas &ecirc;tre mise en cache. Elle
863        n'est de ce fait appropri&eacute;e que dans le cas d'un cache
864        'priv&eacute;'.
865     </note>
866 </usage>
867 <seealso><directive module="mod_cache">CacheIgnoreCacheControl</directive></seealso>
868 <seealso><directive module="mod_cache">CacheStoreNoStore</directive></seealso>
869 </directivesynopsis>
870
871 <directivesynopsis>
872 <name>CacheStoreNoStore</name>
873 <description>Tente de mettre en cache les requ&ecirc;tes ou r&eacute;ponses dont
874 l'ent&ecirc;te Cache-Control: a pour valeur no-store.</description>
875 <syntax>CacheStoreNoStore On|Off</syntax>
876 <default>CacheStoreNoStore Off</default>
877 <contextlist><context>server config</context><context>virtual host</context>
878 <context>directory</context><context>.htaccess</context>
879 </contextlist>
880
881 <usage>
882     <p>Normalement, les requ&ecirc;tes ou r&eacute;ponses dont l'en-t&ecirc;te
883     Cache-Control: a pour valeur no-store ne sont pas stock&eacute;es dans le
884     cache. La directive <directive>CacheStoreNoStore</directive> permet
885     de modifier ce comportement. Si
886     <directive>CacheStoreNoStore</directive> est d&eacute;finie &agrave; On, le
887     serveur tente de mettre la ressource en cache m&ecirc;me si elle contient
888     des en-t&ecirc;tes ayant pour valeur no-store. Les ressources
889     n&eacute;cessitant une autorisation ne sont <em>jamais</em> mises en
890     cache.</p>
891
892     <example>
893       CacheStoreNoStore On
894     </example>
895
896     <note type="warning"><title>Avertissement :</title>
897        Selon la RFC 2616, la valeur d'en-t&ecirc;te no-store est cens&eacute;e
898        "pr&eacute;venir la suppression ou la r&eacute;tention par inadvertance
899        d'informations sensibles (par exemple, sur des bandes de
900        sauvegarde)". Autrement dit, l'activation de la directive
901        <directive>CacheStoreNoCache</directive> pourrait provoquer le
902        stockage d'informations sensibles dans le cache. Vous avez donc
903        &eacute;t&eacute; pr&eacute;venus.
904     </note>
905 </usage>
906 <seealso><directive module="mod_cache">CacheIgnoreCacheControl</directive></seealso>
907 <seealso><directive module="mod_cache">CacheStorePrivate</directive></seealso>
908 </directivesynopsis>
909
910 <directivesynopsis>
911 <name>CacheLock</name>
912 <description>Active la protection contre les temp&ecirc;tes de requ&ecirc;tes.</description>
913 <syntax>CacheLock <var>on|off</var></syntax>
914 <default>CacheLock off</default>
915 <contextlist><context>server config</context><context>virtual host</context>
916 </contextlist>
917 <compatibility>Disponible depuis la version 2.2.15 d'Apache</compatibility>
918
919 <usage>
920   <p>La directive <directive>CacheLock</directive> active la protection
921   contre les temp&ecirc;tes de requ&ecirc;tes pour l'espace d'adressage donn&eacute;.</p>
922
923   <p>La configuration minimale pour activer le verrouillage contre les
924   temp&ecirc;tes de requ&ecirc;tes dans le r&eacute;pertoire temp par d&eacute;faut du syst&egrave;me est
925   la suivante :</p>
926
927   <example>
928     # Active le verrouillage du cache<br />
929     CacheLock on<br /><br />
930   </example>
931
932 </usage>
933 </directivesynopsis>
934
935 <directivesynopsis>
936 <name>CacheLockPath</name>
937 <description>D&eacute;finit le r&eacute;pertoire des verrous.</description>
938 <syntax>CacheLockPath <var>r&eacute;pertoire</var></syntax>
939 <default>CacheLockPath /tmp/mod_cache-lock</default>
940 <contextlist><context>server config</context><context>virtual host</context>
941 </contextlist>
942
943 <usage>
944   <p>La directive <directive>CacheLockPath</directive> permet de
945   sp&eacute;cifier le r&eacute;pertoire dans lequel les verrous sont cr&eacute;&eacute;s. Par
946   d&eacute;faut, c'est le r&eacute;pertoire temporaire du syst&egrave;me qui est utilis&eacute;. Les
947   verrous sont des fichiers vides qui n'existent que pour les URLs
948   p&eacute;rim&eacute;es en cours de mise &agrave; jour, et consomment donc bien moins de
949   ressources que le traditionnel cache sur disque.</p>
950
951 </usage>
952 </directivesynopsis>
953
954 <directivesynopsis>
955 <name>CacheLockMaxAge</name>
956 <description>D&eacute;finit la dur&eacute;e de vie maximale d'un verrou de cache.</description>
957 <syntax>CacheLockMaxAge <var>entier</var></syntax>
958 <default>CacheLockMaxAge 5</default>
959 <contextlist><context>server config</context><context>virtual host</context>
960 </contextlist>
961
962 <usage>
963   <p>La directive <directive>CacheLockMaxAge</directive> permet de
964   sp&eacute;cifier la dur&eacute;e de vie maximale d'un verrou de cache.</p>
965
966   <p>Un verrou plus ancien que cette valeur exprim&eacute;e en secondes sera
967   ignor&eacute;, et la prochaine requ&ecirc;te entrante sera alors en mesure de
968   recr&eacute;er le verrou. Ce m&eacute;canisme permet d'&eacute;viter les mises &agrave; jour trop
969   longues initi&eacute;es par des clients lents.</p>
970
971 </usage>
972 </directivesynopsis>
973
974 <directivesynopsis>
975   <name>CacheQuickHandler</name>
976   <description>Ex&eacute;cute le cache &agrave; partir d'un gestionnaire rapide.</description>
977   <syntax>CacheQuickHandler <var>on|off</var></syntax>
978   <default>CacheQuickHandler on</default>
979   <contextlist><context>server config</context><context>virtual host</context>
980   </contextlist>
981   <compatibility>Disponible à partir de la version 2.3.3 du serveur HTTP
982   Apache</compatibility>
983
984   <usage>
985     <p>La directive <directive
986     module="mod_cache">CacheQuickHandler</directive> permet de contr&ocirc;ler
987     la phase au cours de laquelle la mise en cache est effectu&eacute;e.</p>
988
989     <p>Avec la configuration par d&eacute;faut, le cache agit au cours de la
990     phase du gestionnaire rapide. Cette phase court-circuite la majorit&eacute;
991     des traitements du serveur, et constitue le mode d'op&eacute;ration le plus
992     performant pour un serveur typique. Le cache
993     <strong>s'incruste</strong> devant le serveur, et la majorit&eacute; des
994     traitements du serveur est court-circuit&eacute;e.</p>
995
996     <p>Lorsque cette directive est d&eacute;finie &agrave; off, le cache agit comme un
997     gestionnaire normal, et est concern&eacute; par toutes les phases de
998     traitement d'une requ&ecirc;te. Bien que ce mode soit moins performant que
999     le mode par d&eacute;faut, il permet d'utiliser le cache dans les cas o&ugrave; un
1000     traitement complet de la requ&ecirc;te est n&eacute;cessaire, comme par exemple
1001     lorsque le contenu est soumis &agrave; autorisation.</p>
1002
1003     <example>
1004       # Ex&eacute;cute le cache comme un gestionnaire normal<br />
1005       CacheQuickHandler off<br /><br />
1006     </example>
1007
1008     <p>Lorsque le gestionnaire rapide est d&eacute;sactiv&eacute;, l'administrateur a
1009     aussi la possibilit&eacute; de choisir avec pr&eacute;cision le point de la cha&icirc;ne
1010     de filtrage o&ugrave; la mise en cache sera effectu&eacute;e, en utilisant le
1011     filtre <strong>CACHE</strong>.</p>
1012
1013     <example>
1014       # Mise en cache du contenu avant l'intervention de mod_include et
1015       # mod_deflate<br />
1016       CacheQuickHandler off<br />
1017       AddOutputFilterByType CACHE;INCLUDES;DEFLATE text/html<br /><br />
1018     </example>
1019
1020     <p>Si le filtre CACHE est sp&eacute;cifi&eacute; plusieurs fois, c'est la derni&egrave;re
1021     instance qui sera prise en compte.</p>
1022
1023   </usage>
1024 </directivesynopsis>
1025
1026 <directivesynopsis>
1027 <name>CacheHeader</name>
1028 <description>Ajoute un en-t&ecirc;te X-Cache &agrave; la r&eacute;ponse.</description>
1029 <syntax>CacheHeader <var>on|off</var></syntax>
1030 <default>CacheHeader off</default>
1031 <contextlist><context>server config</context>
1032     <context>virtual host</context>
1033     <context>directory</context>
1034     <context>.htaccess</context>
1035 </contextlist>
1036 <compatibility>Disponible depuis la version 2.3.9 d'Apache</compatibility>
1037
1038 <usage>
1039   <p>Lorsque la directive <directive
1040   module="mod_cache">CacheHeader</directive> est d&eacute;finie &agrave; on, un
1041   en-t&ecirc;te <strong>X-Cache</strong> est ajout&eacute; &agrave; la r&eacute;ponse et contient
1042   l'&eacute;tat du cache pour cette derni&egrave;re. Si le gestionnaire normal est
1043   utilis&eacute;, cette directive peut se situer dans une section <directive
1044   module="core">&lt;Directory&gt;</directive> ou <directive
1045   module="core">&lt;Location&gt;</directive>. Si c'est le
1046   gestionnaire rapide qui est utilis&eacute;, elle doit se situer dans un
1047   contexte de serveur principal ou de serveur virtuel, sinon elle sera
1048   ignor&eacute;e.</p>
1049
1050   <dl>
1051     <dt><strong>HIT</strong></dt><dd>Le contenu &eacute;tait &agrave; jour et a &eacute;t&eacute;
1052     servi depuis le cache.</dd>
1053     <dt><strong>REVALIDATE</strong></dt><dd>Le contenu &eacute;tait p&eacute;rim&eacute;, a
1054     &eacute;t&eacute; mis &agrave; jour, puis a &eacute;t&eacute; servi depuis le cache.</dd>
1055     <dt><strong>MISS</strong></dt><dd>Le contenu n'a pas &eacute;t&eacute; servi
1056     depuis le cache, mais directement depuis le serveur demand&eacute;.</dd>
1057   </dl>
1058
1059   <example>
1060     # Active l'en-t&ecirc;te X-Cache<br />
1061     CacheHeader on<br />
1062   </example>
1063
1064   <example>
1065     X-Cache: HIT from localhost<br />
1066   </example>
1067
1068 </usage>
1069 </directivesynopsis>
1070
1071 <directivesynopsis>
1072 <name>CacheDetailHeader</name>
1073 <description>Ajoute un en-t&ecirc;te X-Cache-Detail &agrave; la r&eacute;ponse.</description>
1074 <syntax>CacheDetailHeader <var>on|off</var></syntax>
1075 <default>CacheDetailHeader off</default>
1076 <contextlist><context>server config</context>
1077       <context>virtual host</context>
1078       <context>directory</context>
1079       <context>.htaccess</context>
1080 </contextlist>
1081 <compatibility>Disponible depuis la version 2.3.9 d'Apache</compatibility>
1082
1083 <usage>
1084   <p>Lorsque la directive <directive
1085   module="mod_cache">CacheDetailHeader</directive> est d&eacute;finie &agrave; on, un
1086   en-t&ecirc;te <strong>X-Cache-Detail</strong> est ajout&eacute; &agrave; la r&eacute;ponse et
1087   contient les raisons pr&eacute;cises d'une d&eacute;cision d'utilisation du cache
1088   vis &agrave; vis de cette derni&egrave;re.</p>
1089
1090   <p>Ceci peut s'av&eacute;rer utile au cours du d&eacute;veloppement de services
1091   RESTful mis en cache pour obtenir des informations suppl&eacute;mentaires &agrave;
1092   propos des d&eacute;cisions vis &agrave; vis du cache &eacute;crites dans les en-t&ecirc;tes de
1093   la r&eacute;ponse. Il est ainsi possible de v&eacute;rifier si
1094   <code>Cache-Control</code> et d'autres en-t&ecirc;tes ont &eacute;t&eacute; correctement
1095   utilis&eacute;s par le service et le client.</p>
1096
1097   <p>Si le gestionnaire normal est utilis&eacute;, cette directive peut se
1098   situer dans une section <directive
1099   module="core">&lt;Directory&gt;</directive> ou <directive
1100   module="core">&lt;Location&gt;</directive>. Si c'est le gestionnaire
1101   rapide qui est utilis&eacute;, elle doit se situer dans un contexte de
1102   serveur principal ou de serveur virtuel, sinon elle sera ignor&eacute;e.</p>
1103
1104   <example>
1105     # Active l'en-t&ecirc;te X-Cache-Detail<br />
1106     CacheDetailHeader on<br />
1107   </example>
1108
1109   <example>
1110     X-Cache-Detail: "conditional cache hit: entity refreshed" from localhost<br />
1111   </example>
1112
1113 </usage>
1114 </directivesynopsis>
1115
1116 <directivesynopsis>
1117 <name>CacheKeyBaseURL</name>
1118 <description>Remplace l'URL de base des cl&eacute;s du cache mandat&eacute;es en
1119 inverse</description>
1120 <syntax>CacheKeyBaseURL <var>URL</var></syntax>
1121 <default>CacheKeyBaseURL http://example.com</default>
1122 <contextlist><context>server config</context>
1123 <context>virtual host</context>
1124 </contextlist>
1125 <compatibility>Disponible depuis la version 2.3.9 d'Apache</compatibility>
1126
1127 <usage>
1128   <p>Lorsque la directive <directive
1129   module="mod_cache">CacheKeyBaseURL</directive> est utilis&eacute;e, l'URL
1130   sp&eacute;cifi&eacute;e sera utilis&eacute;e comme URL de base pour calculer l'URL des cl&eacute;s
1131   du cache dans la configuration du mandataire inverse. Par d&eacute;faut,
1132   c'est le protocole/nom d'h&ocirc;te/port du serveur virtuel courant qui sera
1133   utilis&eacute; pour construire la cl&eacute; de cache. Dans le cas d'un cluster de
1134   machines, si toutes les entr&eacute;es du cache doivent poss&eacute;der la m&ecirc;me cl&eacute;,
1135   cette directive permet de sp&eacute;cifier une nouvelle URL de base.</p>
1136
1137   <example>
1138     # Remplace l'URL de base de la cl&eacute; de cache.<br />
1139     CacheKeyBaseURL http://www.example.com/<br />
1140   </example>
1141
1142   <note type="warning">Prenez garde en d&eacute;finissant cette directive. Si
1143   deux serveurs virtuels distincts poss&egrave;dent accidentellement la m&ecirc;me
1144   URL de base, les entr&eacute;es en provenance d'un serveur virtuel seront
1145   servies par l'autre.</note>
1146
1147 </usage>
1148 </directivesynopsis>
1149
1150 <directivesynopsis>
1151 <name>CacheStaleOnError</name>
1152 <description>Sert du contenu non &agrave; jour &agrave; la place de r&eacute;ponses 5xx.</description>
1153 <syntax>CacheStaleOnError <var>on|off</var></syntax>
1154 <default>CacheStaleOnError on</default>
1155 <contextlist><context>server config</context>
1156     <context>virtual host</context>
1157     <context>directory</context>
1158     <context>.htaccess</context>
1159 </contextlist>
1160 <compatibility>Disponible depuis la version 2.3.9 d'Apache</compatibility>
1161
1162 <usage>
1163   <p>Lorsque la directive <directive
1164   module="mod_cache">CacheStaleOnError</directive> est d&eacute;finie &agrave; on, et
1165   si des donn&eacute;es non mises &agrave; jour sont disponibles dans le cache, ce
1166   dernier renverra ces donn&eacute;es, plut&ocirc;t qu'une &eacute;ventuelle r&eacute;ponse 5xx en
1167   provenance du serveur d'arri&egrave;re-plan. Alors que l'en-t&ecirc;te
1168   Cache-Control envoy&eacute; par les clients sera respect&eacute;, et que les clients
1169   recevront donc dans ce cas la r&eacute;ponse 5xx brute &agrave; leur requ&ecirc;te, cette
1170   r&eacute;ponse 5xx renvoy&eacute;e au client n'invalidera pas le contenu dans le
1171   cache.  </p>
1172
1173   <example>
1174     # Sert des donn&eacute;es non mises &agrave; jour en cas d'erreur.<br />
1175     CacheStaleOnError on<br />
1176   </example>
1177
1178 </usage>
1179 </directivesynopsis>
1180
1181 </modulesynopsis>