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 -->
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
16 http://www.apache.org/licenses/LICENSE-2.0
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.
25 <modulesynopsis metafile="mod_cache.xml.meta">
27 <name>mod_cache</name>
28 <description>Mise en cache de contenu référencé par un
30 <status>Extension</status>
31 <sourcefile>mod_cache.c</sourcefile>
32 <identifier>cache_module</identifier>
35 <note type="warning">Ce module doit être utilisé avec précautions
36 car lorsque la directive <directive
37 module="mod_cache">CacheQuickHandler</directive> est définie à sa
38 valeur par dé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é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ès en fonction du nom
43 d'hôte du client, de l'adresse IP ou d'une variable
44 d'environnement.</note>
46 <p><module>mod_cache</module> implé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 être utilisée pour mettre en cache des contenus locaux ou mandaté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>
54 <dt><module>mod_disk_cache</module></dt>
55 <dd>implémente un gestionnaire de stockage sur disque.</dd>
58 <p>Les contenus sont stockés dans le cache et extraits de ce dernier
59 en utilisant une clé à base d'URI. Un contenu dont l'accès est
60 protégé ne sera pas mis en cache.</p>
61 <p>Pour de plus amples détails, une description, et des exemples,
62 reportez-vous au <a href="../caching.html">Guide de la mise en
65 <seealso><a href="../caching.html">Guide de la mise en
68 <section id="related"><title>Modules apparentés et directives</title>
71 <module>mod_disk_cache</module>
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>
83 <section id="sampleconf"><title>Exemple de configuration</title>
84 <example><title>Extrait de httpd.conf</title>
86 # Exemple de configuration du cache<br />
88 LoadModule cache_module modules/mod_cache.so<br />
90 <IfModule mod_cache.c><br />
92 LoadModule disk_cache_module modules/mod_disk_cache.so<br />
93 <IfModule mod_disk_cache.c><br />
95 CacheRoot c:/cacheroot<br />
96 CacheEnable disk /<br />
97 CacheDirLevels 5<br />
98 CacheDirLength 3<br />
100 </IfModule> <br />
102 # Lorsqu'on sert de mandataire, on ne met pas en cache la liste
103 # des mises à jour de sécurité<br />
104 CacheDisable http://security.update.server/update-list/<br />
110 <section id="thunderingherd"><title>Eviter une tempête de requête</title>
111 <p>Lorsqu'une entrée du cache est périmée, <module>mod_cache</module>
112 soumet une requête conditionnelle au processus d'arrière-plan, qui est
113 censé confirmer la validité de l'entrée du cache, ou dans la négative
114 envoyer une entrée mise à jour.</p>
115 <p>Un court mais non négligeable laps de temps existe entre le moment
116 où l'entrée du cache est périmée, et le moment où elle est mise à
117 jour. Sur un serveur fortement chargé, un certain nombre de requêtes
118 peut arriver pendant ce laps de temps, et provoquer une
119 <strong>tempête</strong> de requêtes susceptibles de saturer le
120 processus d'arrière-plan de manière soudaine et imprédictible.</p>
121 <p>Pour contenir cette tempête, on peut utiliser la directive
122 <directive>CacheLock</directive> afin de définir un répertoire où
123 seront créés <strong>à la volée</strong> des verrous pour les URLs.
124 Ces verrous sont utilisés comme autant d'<strong>indications</strong>
125 par les autres requêtes, soit pour empêcher une tentative de mise en
126 cache (un autre processus est en train de récupérer l'entité), soit
127 pour indiquer qu'une entrée périmée est en cours de mise à jour
128 (pendant ce temps, c'est le contenu périmé qui sera renvoyé).
131 <title>Mise en cache initiale d'une entrée</title>
132 <p>Lorsqu'une entité est mise en cache pour la première fois, un
133 verrou est créé pour cette entité jusqu'à ce que la réponse ait été
134 entièrement mise en cache. Pendant la durée de vie du verrou, le
135 cache va empêcher une seconde tentative de mise en cache de la même
136 entité. Bien que cela ne suffise pas à contenir la tempête de
137 requêtes, toute tentative de mettre en cache la même entité
138 plusieurs fois simultanément est stoppée.
142 <title>Mise à jour d'une entrée périmée</title>
143 <p>Lorsqu'une entrée atteint la limite de sa durée de vie, et
144 devient par conséquent périmée, un verrou est créé pour cette entité
145 jusqu'à ce que la réponse ait été soit confirmée comme encore
146 valide, soit remplacée par le processus d'arrière-plan. Pendant la
147 durée de vie du verrou, une seconde requête entrante va provoquer le
148 renvoi de la donnée périmée, et la tempête de requêtes sera
152 <title>Verrous et en-tête Cache-Control: no-cache</title>
153 <p>Les verrous ne sont utilisés <strong>qu'à titre
154 indicatif</strong> pour enjoindre le cache à être plus coopératif
155 avec les serveurs d'arrière-plan, et il est possible de passer outre
156 si nécessaire. Si le client envoie une requête contenant un en-tête
157 Cache-Control imposant un nouveau téléchargement de l'entité, tout
158 verrou éventuel sera ignoré, la requête du client sera honorée
159 immédiatement, et l'entrée du cache mise à jour.</p>
161 <p>Comme mécanisme de sécurité supplémentaire, la durée de vie
162 maximale des verrous est configurable. Lorsque cette limite est
163 atteinte, le verrou est supprimé et une autre requête peut alors en
164 créer un nouveau. Cette durée de vie peut être définie via la
165 directive <directive>CacheLockMaxAge</directive>, et sa valeur par
166 défaut est de 5 secondes.
170 <title>Exemple de configuration</title>
171 <example><title>Activation du verrouillage du cache</title>
173 # Active le verrouillage du cache<br />
175 <IfModule mod_cache.c><br />
178 CacheLockPath /tmp/mod_cache-lock<br />
179 CacheLockMaxAge 5<br />
186 <section id="finecontrol"><title>Contrôle fin via le filtre CACHE</title>
187 <p>Dans son mode de fonctionnement par défaut, le cache s'exécute sous
188 la forme d'un gestionnaire rapide, court-circuitant la majorité des
189 traitements du serveur et fournissant ainsi une mise en cache
190 possédant les plus hautes performances disponibles.</p>
192 <p>Dans ce mode, le cache <strong>s'incruste</strong> devant le
193 serveur, comme si un mandataire de mise en cache indépendant RFC2616
194 était placé devant ce dernier.</p>
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ête après que cette dernière ait
199 été mise en cache, comme ajouter du contenu personnalisé à la page
200 mise en cache, ou appliquer des restrictions d'autorisations au
201 contenu. Pour y parvenir, l'administrateur sera alors souvent forcé de
202 placer des serveurs mandataires inverses indépendants soit derrière,
203 soit devant le serveur de mise en cache.</p>
205 <p>Pour résoudre ce problème, la directive <directive
206 module="mod_cache">CacheQuickHandler</directive> peut être définie à
207 <strong>off</strong>, afin que le serveur traite toutes les phases
208 normalement exécutées par une requête non mise en cache, y compris les
209 phases <strong>d'authentification et d'autorisation</strong>.</p>
211 <p>En outre, l'administrateur peut éventuellement spécifier le
212 <strong>point précis dans la chaîne de filtrage</strong> où devra
213 intervenir la mise en cache en ajoutant le filtre
214 <strong>CACHE</strong> à la chaîne de filtrage en sortie.</p>
216 <p>Par exemple, pour mettre en cache le contenu avant d'appliquer une
217 compression à la réponse, placez le filtre <strong>CACHE</strong>
218 avant le filtre <strong>DEFLATE</strong> comme dans l'exemple suivant
222 # Mise en cache du contenu avant la compression optionnelle<br />
223 CacheQuickHandler off<br />
224 AddOutputFilterByType CACHE;DEFLATE text/plain<br /><br />
227 <p>Une autre possibilité consiste à mettre en cache le contenu avant
228 l'ajout de contenu personnalisé via <module>mod_include</module> (ou
229 tout autre filtre de traitement de contenu). Dans l'exemple suivant,
230 les modèles contenant des balises comprises par
231 <module>mod_include</module> sont mis en cache avant d'être
232 interprétés :</p>
235 # Mise en cache du contenu avant l'intervention de mod_include et
237 CacheQuickHandler off<br />
238 AddOutputFilterByType CACHE;INCLUDES;DEFLATE text/html<br /><br />
241 <p>Vous pouvez insérer le filtre <strong>CACHE</strong> en tout point
242 de la chaîne de filtrage. Dans l'exemple suivant, le contenu est mis
243 en cache après avoir été interprété par <module>mod_include</module>,
244 mais avant d'être traité par <module>mod_deflate</module> :</p>
247 # Mise en cache du contenu entre les interventions de mod_include et
249 CacheQuickHandler off<br />
250 AddOutputFilterByType INCLUDES;CACHE;DEFLATE text/html<br /><br />
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îne de filtrage est modifié, vous
256 devez <strong>vider votre cache</strong> pour être sûr que les données
257 servies soient à jour. En effet, <module>mod_cache</module> n'est pas
258 en mesure d'effectuer cette opération à votre place.</note>
265 <name>CacheEnable</name>
266 <description>Active la mise en cache des URLs spécifiées en utilisant le
267 gestionnaire de stockage précisé</description>
268 <syntax>CacheEnable <var>type de cache</var> <var>chaîne URL</var></syntax>
269 <contextlist><context>server config</context><context>virtual host</context>
273 <p>La directive <directive>CacheEnable</directive> enjoint
274 <module>mod_cache</module> de mettre en cache l'URL précisée par
275 <var>chaîne URL</var>, ainsi que les URLs de niveaux inférieurs. Le
276 gestionnaire de stockage du cache est spécifié à l'aide de
277 l'argument <var>type de cache</var>. Si la directive
278 <directive>CacheEnable</directive> est située à l'intérieur d'une
279 section <directive type="section">Location</directive>, le paramè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émenté par
283 <module>mod_disk_cache</module>.</p>
284 <p>Si les différentes directives <directive>CacheEnable</directive>
285 spécifient des URLs qui se recoupent (comme dans l'exemple
286 ci-dessous), tous les gestionnaires de stockage possibles seront
287 lancés, jusqu'au premier d'entre eux qui traitera effectivement la
289 L'ordre dans lequel les gestionnaires de stockage sont lancés est
290 déterminé par l'ordre dans lequel apparaissent les directives
291 <directive>CacheEnable</directive> dans le fichier de
294 <p>En fonctionnement du type serveur mandataire direct, <var>chaîne
295 URL</var> peut aussi être utilisé pour spécifier des sites distants
296 et des protocoles de mandat pour lesquels la mise en cache devra
297 être activée.</p>
300 # Mise en cache des URLs mandatées<br />
301 CacheEnable disk /<br /><br />
302 # Mise en cache des URLs FTP mandatées<br />
303 CacheEnable disk ftp://<br /><br />
304 # Mise en cache des contenus situés dans www.apache.org<br />
305 CacheEnable disk http://www.apache.org/<br />
308 <p>Un nom d'hôte commençant par un caractère <strong>"*"</strong>
309 correspondra à tout nom d'hôte se terminant par le suffixe
310 considéré. Un nom d'hôte commençant par un caractère
311 <strong>"."</strong> correspondra à tout nom d'hôte contenant le
312 composant de nom de domaine qui suit ce caractère.</p>
315 # Correspond à www.apache.org et fooapache.org<br />
316 CacheEnable disk http://*apache.org/<br />
317 # Correspond à www.apache.org, mais pas à fooapache.org<br />
318 CacheEnable disk http://.apache.org/<br />
321 <p>Depuis la version 2.2.12, on peut définir la variable
322 d'environnement <code>no-cache</code> pour une définition plus fine
323 des ressources à mettre en cache.</p>
326 <seealso><a href="../env.html">Les variables d'environnement dans
331 <name>CacheDisable</name>
332 <description>Désactive la mise en cache des URLs
333 spécifiées</description>
334 <syntax>CacheDisable <var>chaîne-url</var> | <var>on</var></syntax>
335 <contextlist><context>server config</context><context>virtual host</context>
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écifiée par <var>chaîne URL</var>, ainsi que les URLs de niveaux
342 inférieurs.</p>
344 <example><title>Exemple</title>
345 CacheDisable /fichiers_locaux
348 <p>Si la directive se trouve à l'intérieur d'une section <directive
349 type="section">Location</directive>, le chemin doit être spécifié en
350 dessous de la Location, et si le mot "on" est utilisé, la mise en
351 cache sera désactivée pour l'ensemble de l'arborescence concernée
352 par la section Location.</p>
354 <example><title>Exemple</title>
355 <Location /foo><br />
356 CacheDisable on<br />
357 </Location><br />
360 <p>Avec les versions 2.2.12 et ultérieures, on peut définir la
361 variable d'environnement <code>no-cache</code> pour une définition
362 plus fine des ressources à mettre en cache.</p>
364 <seealso><a href="../env.html">Les variables d'environnement dans
368 <name>CacheMaxExpire</name>
369 <description>La duré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ée)</default>
373 <contextlist><context>server config</context><context>virtual host</context>
377 <p>La directive <directive>CacheMaxExpire</directive> permet de
378 spécifier le nombre maximum de secondes pendant lequel les documents
379 HTTP suceptibles d'être mis en cache seront conservés sans vérifier
380 leur contenu sur le serveur d'origine. Ce nombre de secondes
381 correspond donc à la durée maximale pendant laquelle un document ne
382 sera pas à jour. L'utilisation de cette valeur maximale est forcée,
383 même si le document possède une date d'expiration.</p>
386 CacheMaxExpire 604800
392 <name>CacheMinExpire</name>
393 <description>La duré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>
401 <p>La directive <directive>CacheMaxExpire</directive> permet de
402 spécifier le nombre maximum de secondes pendant lequel les documents
403 HTTP suceptibles d'être mis en cache seront conservés sans vérifier
404 leur contenu sur le serveur d'origine. Elle n'est prise en compte
405 que dans le cas où le document ne possède aucune date d'expiration
415 <name>CacheDefaultExpire</name>
416 <description>La durée par défaut de mise en cache d'un document
417 lorsqu'aucune date d'expiration n'a été spécifié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>
424 <p>La directive <directive>CacheDefaultExpire</directive> permet de
425 spécifier un temps par défaut, en secondes, pendant lequel sera
426 conservé dans le cache un document qui ne possède ni date
427 d'expiration, ni date de dernière modification. La valeur de cette
428 directive est écrasée par la valeur de la directive
429 <directive>CacheMaxExpire</directive> si cette dernière est
433 CacheDefaultExpire 86400
439 <name>CacheIgnoreNoLastMod</name>
440 <description>Ignore le fait qu'une réponse ne possède pas d'en-tê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>
448 <p>Normalement, les documents qui ne possèdent pas de date de
449 dernière modification ne sont pas mis en cache. Dans certaines
450 circonstances, la date de dernière modification est supprimée (au
451 cours des traitements liés à <module>mod_include</module> par
452 exemple), ou n'existe tout simplement pas. La directive
453 <directive>CacheIgnoreNoLastMod</directive> permet de spécifier si
454 les documents ne possèdant pas de date de dernière modification
455 doivent être mis en cache, même sans date de dernière modification.
456 Si le document ne possède ni date d'expiration, ni date de dernière
457 modification, la valeur spécifiée par la directive
458 <directive>CacheDefaultExpire</directive> servira à générer une date
463 CacheIgnoreNoLastMod On
469 <name>CacheIgnoreCacheControl</name>
470 <description>Ignore les en-têtes de requê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>
478 <p>Normalement, les requêtes contenant des en-tê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ême si la requête contient un des en-têtes cités plus haut.
485 Les ressources qui requièrent une autorisation ne seront
486 <em>jamais</em> mises en cache.</p>
489 CacheIgnoreCacheControl On
492 <note type="warning"><title>Avertissement :</title>
493 Cette directive permet de servir des ressources depuis le cache,
494 même si le client a demandé à ce qu'il n'en soit pas ainsi. Le
495 contenu servi est ainsi susceptible d'être périmé.
498 <seealso><directive module="mod_cache">CacheStorePrivate</directive></seealso>
499 <seealso><directive module="mod_cache">CacheStoreNoStore</directive></seealso>
503 <name>CacheIgnoreQueryString</name>
504 <description>Ignore la chaîne de paramètres lors de la mise en
506 <syntax>CacheIgnoreQueryString On|Off</syntax>
507 <default>CacheIgnoreQueryString Off</default>
508 <contextlist><context>server config</context><context>virtual host</context>
512 <p>Normalement, les requêtes comportant une chaîne de paramètres
513 sont mises en cache séparément si leurs chaînes de paramètres
515 En accord avec la RFC 2616/13.9, cette mise en cache n'est effectuée
516 séparément que si une date d'expiration est spécifiée. La directive
517 <directive>CacheIgnoreQueryString</directive> permet la mise en
518 cache de requêtes même si aucune date d'expiration est spécifiée, et
519 de renvoyer une réponse depuis la cache même si les chaînes de
520 paramètres diffèrent. Du point de vue du cache, la requête est
521 traitée comme si elle ne possèdait pas de chaîne de paramètres
522 lorsque cette directive est activée.</p>
525 CacheIgnoreQueryString On
532 <name>CacheLastModifiedFactor</name>
533 <description>Le facteur utilisé pour générer une date d'expiration en
534 fonction de la date de derniè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>
541 <p>Si un document ne possède pas de date d'expiration, elle peut
542 être calculée en fonction de la date de dernière modification, si
543 elle existe. La directive
544 <directive>CacheLastModifiedFactor</directive> permet de spécifier
545 un <var>facteur</var> à utiliser pour la génération de cette date
546 d'expiration au sein de la formule suivante :
548 <code>délai-expiration = durée-depuis-date-dernière-modification *
550 date-expiration = date-courante + délai-expiration</code>
552 Par exemple, si la dernière modification du document date de 10
553 heures, et si <var>facteur</var> a pour valeur 0.1, le délai
554 d'expiration sera de 10*0.1 = 1 heure. Si l'heure courante est
555 3:00pm, la date d'expiration calculée sera 3:00pm + 1 heure =
558 Si le délai d'expiration est supérieur à celui spécifié par la
559 directive <directive>CacheMaxExpire</directive>, c'est ce dernier
563 CacheLastModifiedFactor 0.5
569 <name>CacheIgnoreHeaders</name>
570 <description>Ne pas stocker le(s) en-tête(s) spécifié(s) dans le cache.
572 <syntax>CacheIgnoreHeaders <var>en-tête</var> [<var>en-tête</var>] ...</syntax>
573 <default>CacheIgnoreHeaders None</default>
574 <contextlist><context>server config</context><context>virtual host</context>
578 <p>En accord avec la RFC 2616, les en-têtes HTTP hop-by-hop ne sont
579 pas stockés dans le cache. Les en-têtes HTTP suivant sont des
580 en-têtes hop-by-hop, et en tant que tels, ne sont en <em>aucun</em>
581 cas stockés dans le cache, quelle que soit la définition de la
582 directive <directive>CacheIgnoreHeaders</directive> :</p>
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>
595 <p>La directive <directive>CacheIgnoreHeaders</directive> permet de
596 spécifier quels en-têtes HTTP ne doivent pas être stockés dans le
597 cache. Par exemple, il peut s'avérer pertinent dans certains cas de
598 ne pas stocker les cookies dans le cache.</p>
600 <p>La directive <directive>CacheIgnoreHeaders</directive> accepte
601 une liste d'en-têtes HTTP séparés par des espaces, qui ne doivent
602 pas être stockés dans le cache. Si les en-têtes hop-by-hop sont les
603 seuls à ne pas devoir être stockés dans le cache (le comportement
604 compatible RFC 2616), la directive
605 <directive>CacheIgnoreHeaders</directive> peut être définie à
606 <code>None</code>.</p>
608 <example><title>Exemple 1</title>
609 CacheIgnoreHeaders Set-Cookie
612 <example><title>Exemple 2</title>
613 CacheIgnoreHeaders None
616 <note type="warning"><title>Avertissement :</title>
617 Si des en-têtes nécessaires à la bonne gestion du cache, comme
618 <code>Expires</code>, ne sont pas stockés suite à la définition
619 d'une directive <directive>CacheIgnoreHeaders</directive>, le
620 comportement de mod_cache sera imprévisible.
626 <name>CacheIgnoreURLSessionIdentifiers</name>
627 <description>Ignore les identifiants de session définis encodés dans
628 l'URL lors de la mise en cache
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>
637 <p>Certaines applications encodent l'identifiant de session dans
638 l'URL comme dans l'exemple suivant :
641 <li><code>/une-application/image.gif;jsessionid=123456789</code></li>
642 <li><code>/une-application/image.gif?PHPSESSIONID=12345678</code></li>
644 <p>Ceci implique la mise en cache des ressources séparément pour
645 chaque session, ce qui n'est en général pas souhaité. La directive
646 <directive>CacheIgnoreURLSessionIdentifiers</directive> permet de
647 définir une liste d'identifiants qui seront supprimés de la clé
648 utilisée pour identifier une entité dans le cache, de façon à ce que
649 les ressources ne soient pas stockées séparément pour chaque
652 <p><code>CacheIgnoreURLSessionIdentifiers None</code> vide la liste
653 des identifiants ignorés. Autrement, chaque identifiant spécifié est
654 ajouté à la liste.</p>
656 <example><title>Exemple 1</title>
657 CacheIgnoreURLSessionIdentifiers jsessionid
660 <example><title>Exemple 2</title>
661 CacheIgnoreURLSessionIdentifiers None
668 <name>CacheStorePrivate</name>
669 <description>Tente de mettre en cache des réponses que le serveur a
670 marquées comme privées</description>
671 <syntax>CacheStorePrivate On|Off</syntax>
672 <default>CacheStorePrivate Off</default>
673 <contextlist><context>server config</context><context>virtual host</context>
677 <p>Normalement, les réponse comportant un en-tête Cache-Control:
678 dont la valeur est private ne seront pas stockées dans le cache. La
679 directive <directive>CacheStorePrivate</directive> permet de
680 modifier ce comportement. Si
681 <directive>CacheStorePrivate</directive> est définie à On, le
682 serveur tentera de mettre la ressource en cache, même si elle
683 contient des en-têtes ayant pour valeur private. Les ressources
684 nécessitant une autorisation ne sont <em>jamais</em> mises en
691 <note type="warning"><title>Avertissement :</title>
692 Cette directive autorise la mise en cache même si le serveur
693 indique que la ressource ne doit pas être mise en cache. Elle
694 n'est de ce fait appropriée que dans le cas d'un cache
698 <seealso><directive module="mod_cache">CacheIgnoreCacheControl</directive></seealso>
699 <seealso><directive module="mod_cache">CacheStoreNoStore</directive></seealso>
703 <name>CacheStoreNoStore</name>
704 <description>Tente de mettre en cache les requêtes ou réponses dont
705 l'entê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>
712 <p>Normalement, les requêtes ou réponses dont l'en-tête
713 Cache-Control: a pour valeur no-store ne sont pas stockées dans le
714 cache. La directive <directive>CacheStoreNoCache</directive> permet
715 de modifier ce comportement. Si
716 <directive>CacheStoreNoCache</directive> est définie à On, le
717 serveur tente de mettre la ressource en cache même si elle contient
718 des en-têtes ayant pour valeur no-store. Les ressources
719 nécessitant une autorisation ne sont <em>jamais</em> mises en
726 <note type="warning"><title>Avertissement :</title>
727 Selon la RFC 2616, la valeur d'en-tête no-store est censée
728 "prévenir la suppression ou la ré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 été prévenus.
736 <seealso><directive module="mod_cache">CacheIgnoreCacheControl</directive></seealso>
737 <seealso><directive module="mod_cache">CacheStorePrivate</directive></seealso>
741 <name>CacheLock</name>
742 <description>Active la protection contre les tempêtes de requê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>
747 <compatibility>Disponible depuis la version 2.2.15 d'Apache</compatibility>
750 <p>La directive <directive>CacheLock</directive> active la protection
751 contre les tempêtes de requêtes pour l'espace d'adressage donné.</p>
753 <p>La configuration minimale pour activer le verrouillage contre les
754 tempêtes de requêtes dans le répertoire temp par défaut du système est
758 # Active le verrouillage du cache<br />
759 CacheLock on<br /><br />
766 <name>CacheLockPath</name>
767 <description>Définit le répertoire des verrous.</description>
768 <syntax>CacheLockPath <var>répertoire</var></syntax>
769 <default>CacheLockPath /tmp/mod_cache-lock</default>
770 <contextlist><context>server config</context><context>virtual host</context>
774 <p>La directive <directive>CacheLockPath</directive> permet de
775 spécifier le répertoire dans lequel les verrous sont créés. Par
776 défaut, c'est le répertoire temporaire du système qui est utilisé. Les
777 verrous sont des fichiers vides qui n'existent que pour les URLs
778 périmées en cours de mise à jour, et consomment donc bien moins de
779 ressources que le traditionnel cache sur disque.</p>
785 <name>CacheLockMaxAge</name>
786 <description>Définit la duré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>
793 <p>La directive <directive>CacheLockMaxAge</directive> permet de
794 spécifier la durée de vie maximale d'un verrou de cache.</p>
796 <p>Un verrou plus ancien que cette valeur exprimée en secondes sera
797 ignoré, et la prochaine requête entrante sera alors en mesure de
798 recréer le verrou. Ce mécanisme permet d'éviter les mises à jour trop
799 longues initiées par des clients lents.</p>
805 <name>CacheQuickHandler</name>
806 <description>Exécute le cache à 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>
813 <p>La directive <directive
814 module="mod_cache">CacheQuickHandler</directive> permet de contrôler
815 la phase au cours de laquelle la mise en cache est effectuée.</p>
817 <p>Avec la configuration par défaut, le cache agit au cours de la
818 phase du gestionnaire rapide. Cette phase court-circuite la majorité
819 des traitements du serveur, et constitue le mode d'opération le plus
820 performant pour un serveur typique. Le cache
821 <strong>s'incruste</strong> devant le serveur, et la majorité des
822 traitements du serveur est court-circuitée.</p>
824 <p>Lorsque cette directive est définie à off, le cache agit comme un
825 gestionnaire normal, et est concerné par toutes les phases de
826 traitement d'une requête. Bien que ce mode soit moins performant que
827 le mode par défaut, il permet d'utiliser le cache dans les cas où un
828 traitement complet de la requête est nécessaire, comme par exemple
829 lorsque le contenu est soumis à autorisation.</p>
832 # Exécute le cache comme un gestionnaire normal<br />
833 CacheQuickHandler off<br /><br />
836 <p>Lorsque le gestionnaire rapide est désactivé, l'administrateur a
837 aussi la possibilité de choisir avec précision le point de la chaîne
838 de filtrage où la mise en cache sera effectuée, en utilisant le
839 filtre <strong>CACHE</strong>.</p>
842 # Mise en cache du contenu avant l'intervention de mod_include et
844 CacheQuickHandler off<br />
845 AddOutputFilterByType CACHE;INCLUDES;DEFLATE text/html<br /><br />
848 <p>Si le filtre CACHE est spécifié plusieurs fois, c'est la dernière
849 instance qui sera prise en compte.</p>