<!DOCTYPE html SYSTEM "about:legacy-compat">
<html lang="fr"><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="width=device-width, initial-scale=1" name="viewport">
<!--
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              This file is generated from xml source: DO NOT EDIT
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -->
<title>mod_cache - Serveur HTTP Apache Version 2.4</title>
<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet">
<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size">
<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css"><link rel="stylesheet" type="text/css" href="../style/css/prettify.css">
<script src="../style/scripts/prettify.min.js">
</script>

<link href="../images/favicon.png" rel="shortcut icon"></head>
<body>
<div id="page-header">
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Signaler un bug</a></p>
<p class="apache">Serveur HTTP Apache Version 2.4</p>
<img alt="" src="../images/feather.png"></div>
<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif"></a></div>
<div id="path">
<a href="https://www.apache.org/">Apache</a> &gt; <a href="https://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="https://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.4</a> &gt; <a href="./">Modules</a></div>
<div id="page-content">
<div id="preamble"><h1>Module Apache mod_cache</h1>
<button aria-label="Toggle language list" class="lang-toggle"><svg xmlns="http://www.w3.org/2000/svg" stroke-width="2" stroke="currentColor" fill="none" viewBox="0 0 24 24" height="16" width="16"><circle r="10" cy="12" cx="12"/><line y2="12" x2="22" y1="12" x1="2"/><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/></svg></button>
<div class="toplang">
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_cache.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/mod/mod_cache.html" title="Fran&ccedil;ais">&nbsp;fr&nbsp;</a> |
<a href="../ja/mod/mod_cache.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="../ko/mod/mod_cache.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
</div>
<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Filtre de mise en cache HTTP conforme &agrave; la RFC 2616</td></tr>
<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur&nbsp;de&nbsp;Module:</a></th><td>cache_module</td></tr>
<tr><th><a href="module-dict.html#SourceFile">Fichier&nbsp;Source:</a></th><td>mod_cache.c</td></tr></table>
<h3>Sommaire</h3>

    <div class="warning">Ce module doit &ecirc;tre utilis&eacute; avec pr&eacute;cautions
    car lorsque la directive <code class="directive"><a href="#cachequickhandler">CacheQuickHandler</a></code> est d&eacute;finie &agrave; sa
    valeur par d&eacute;faut <strong>on</strong>, les directives <code class="directive"><a href="../mod/mod_access_compat.html#allow">Allow</a></code> and <code class="directive"><a href="../mod/mod_access_compat.html#deny">Deny</a></code> sont court-circuit&eacute;es. Vous
    ne devez donc pas activer la gestion rapide de la mise en cache pour
    un contenu auquel vous souhaitez limiter l'acc&egrave;s en fonction du nom
    d'h&ocirc;te du client, de l'adresse IP ou d'une variable
    d'environnement.</div>

    <p><code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> impl&eacute;mente un <strong>filtre de mise
    en cache de contenu HTTP</strong> conforme &agrave; la <a href="https://www.rfc-editor.org/rfc/rfc2616">RFC 2616</a>, avec
    support de la mise en cache des r&eacute;ponses dont le contenu a &eacute;t&eacute;
    n&eacute;goci&eacute; et comportant l'en-t&ecirc;te Vary.</p>

    <p>La mise en cache conforme &agrave; la RFC 2616 fournit un m&eacute;canisme
    permettant de v&eacute;rifier si un contenu expir&eacute; ou d&eacute;pass&eacute; est encore &agrave;
    jour, et peut apporter un gain de performances significatif si le
    serveur original supporte les <strong>requ&ecirc;tes
    conditionnelles</strong> en prenant en compte l'en-t&ecirc;te de requ&ecirc;te
    HTTP If-None-Match (<a href="https://www.rfc-editor.org/rfc/rfc2616#section-14.26">RFC 2616</a>).
    Le contenu n'est ainsi r&eacute;g&eacute;n&eacute;r&eacute; que lorsqu'il a &eacute;t&eacute; modifi&eacute;, et non
    lorsqu'il a expir&eacute;.</p>

    <p>En tant que filtre, <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> peut &ecirc;tre plac&eacute;
    en face d'un contenu issu de tout gestionnaire, y compris
    <strong>des fichiers &agrave; acc&egrave;s s&eacute;quentiel</strong> (servis depuis un
    disque lent mis en
    cache sur un gros disque), la sortie d'un <strong>script
    CGI</strong> ou d'un <strong>g&eacute;n&eacute;rateur de contenu
    dynamique</strong>, ou du contenu <strong>mandat&eacute; depuis un autre
    serveur</strong>.</p>

    <p>Dans la configuration par d&eacute;faut, <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code>
    place le filtre de mise en cache aussi loin que possible dans la
    pile de filtres, utilisant le <strong>gestionnaire rapide</strong>
    pour court-circuiter tout traitement par requ&ecirc;te lors de l'envoi du
    contenu au client. Dans ce mode op&eacute;ratoire,
    <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> peut &ecirc;tre consid&eacute;r&eacute; comme un serveur
    mandataire avec cache fix&eacute; en t&ecirc;te du serveur web, alors qu'il
    s'ex&eacute;cute dans ce m&ecirc;me serveur web.</p>

    <p>Lorsque le gestionnaire rapide est d&eacute;sactiv&eacute; via la directive
    <code class="directive"><a href="#cachequickhandler">CacheQuickHandler</a></code>, il
    devient possible d'ins&eacute;rer le filtre <strong>CACHE</strong> &agrave; un
    point de la pile de filtres choisi par l'administrateur. Ceci permet
    de mettre en cache un contenu avant que celui-ci ne soit
    personnalis&eacute; par le filtre <code class="module"><a href="../mod/mod_include.html">mod_include</a></code>, ou
    &eacute;ventuellement compress&eacute; par le filtre <code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code>.</p>

    <p>Dans le mode de fonctionnement normal, <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code>
    peut &ecirc;tre contr&ocirc;l&eacute; par les en-t&ecirc;tes Cache-Control (<a href="https://www.rfc-editor.org/rfc/rfc2616#section-14.9">RFC 2616</a>) et Pragma (<a href="https://www.rfc-editor.org/rfc/rfc2616#section-14.32">RFC 2616</a>)
    envoy&eacute;s par un client dans une requ&ecirc;te, ou par un serveur dans une
    r&eacute;ponse. Dans des circonstances exceptionnelles,
    <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> peut cependant &ecirc;tre configur&eacute; pour
    outrepasser ces en-t&ecirc;tes et forcer un comportement sp&eacute;cifique au
    site, bien qu'un tel comportement sera limit&eacute; &agrave; ce cache seulement,
    et n'affectera pas les op&eacute;rations des autres caches qui peuvent
    s'ins&eacute;rer entre le client et le serveur, et ce type de configuration
    ne doit donc &ecirc;tre utiliser qu'en cas de n&eacute;cessit&eacute; absolue.</p>

    <p>La RFC 2616 permet au cache de renvoyer des donn&eacute;es p&eacute;rim&eacute;es pendant que
    l'entr&eacute;e p&eacute;rim&eacute;e correspondante est mise &agrave; jour depuis le serveur original,
    et <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> supporte cette fonctionnalit&eacute; lorsque la
    directive <code class="directive"><a href="#cachelock">CacheLock</a></code> est configur&eacute;e
    en cons&eacute;quence. De telles r&eacute;ponses comportent un en-t&ecirc;te HTTP Warning (<a href="https://www.rfc-editor.org/rfc/rfc2616#section-14.46">RFC 2616</a>) contenant un code de r&eacute;ponse 110. La RFC 2616
    permet aussi au cache de renvoyer des donn&eacute;es p&eacute;rim&eacute;es lorsque la tentative
    de mise &agrave; jour des donn&eacute;es p&eacute;rim&eacute;es renvoie une erreur 500 ou sup&eacute;rieure, et
    cette fonctionnalit&eacute; est support&eacute;e par d&eacute;faut par
    <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code>. De telles r&eacute;ponses comportent un en-t&ecirc;te HTTP
    Warning (<a href="https://www.rfc-editor.org/rfc/rfc2616#section-14.46">RFC 2616</a>) contenant un code de r&eacute;ponse
    111.</p>

    <p><code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> requiert les services d'un ou
    plusieurs modules de gestion de stockage. La distribution Apache de base
    inclut les modules de gestion de stockage suivants :</p>
    <dl>
    <dt><code class="module"><a href="../mod/mod_cache_disk.html">mod_cache_disk</a></code></dt>

    <dd>impl&eacute;mente un gestionnaire de stockage sur disque. Les en-t&ecirc;tes
    et corps sont stock&eacute;s s&eacute;par&eacute;ment sur le disque dans une structure de
    r&eacute;pertoires bas&eacute;e sur le condens&eacute; md5 de l'URL mise en cache.
    Plusieurs r&eacute;ponses &agrave; contenu n&eacute;goci&eacute; peuvent &ecirc;tre stock&eacute;es en m&ecirc;me
    temps, mais la mise en cache de contenus partiels n'est pas
    support&eacute;e par ce module. L'utilitaire
    <code class="program"><a href="../programs/htcacheclean.html">htcacheclean</a></code> permet de lister et de supprimer les
    URLs mises en cache, et de maintenir le cache en de&ccedil;&agrave; de
    certaines limites de taille et de nombre d'inodes.</dd>
    <dt><code class="module"><a href="../mod/mod_cache_socache.html">mod_cache_socache</a></code></dt>
    <dd>Impl&eacute;mente un gestionnaire de stockage bas&eacute; sur un cache d'objets
    partag&eacute;s. Les en-t&ecirc;tes et corps sont stock&eacute;s ensemble sous une seule
    cl&eacute; bas&eacute;e sur l'URL de la r&eacute;ponse mise en cache. Des r&eacute;ponses &agrave;
    contenus multiples n&eacute;goci&eacute;s peuvent &ecirc;tre stock&eacute;es simultan&eacute;ment, mais
    ce module ne supporte pas la mise en cache de contenus partiels.</dd>
    </dl>

    <p>Pour de plus amples d&eacute;tails, une description, et des exemples,
    reportez-vous au <a href="../caching.html">Guide de la mise en
    cache</a>.</p>
</div>
<div id="quickview"><h3>Sujets</h3>
<ul id="topics">
<li><img alt="" src="../images/down.gif"> <a href="#related">Modules apparent&eacute;s et directives</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sampleconf">Exemple de configuration</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#thunderingherd">Eviter une temp&ecirc;te de requ&ecirc;te</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#finecontrol">Contr&ocirc;le fin via le filtre CACHE</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#status">Etat du cache et journalisation</a></li>
</ul><h3 class="directives">Directives</h3>
<ul id="toc">
<li><img alt="" src="../images/down.gif"> <a href="#cachedefaultexpire">CacheDefaultExpire</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#cachedetailheader">CacheDetailHeader</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#cachedisable">CacheDisable</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#cacheenable">CacheEnable</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#cacheheader">CacheHeader</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#cacheignorecachecontrol">CacheIgnoreCacheControl</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#cacheignoreheaders">CacheIgnoreHeaders</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#cacheignorenolastmod">CacheIgnoreNoLastMod</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#cacheignorequerystring">CacheIgnoreQueryString</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#cacheignoreurlsessionidentifiers">CacheIgnoreURLSessionIdentifiers</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#cachekeybaseurl">CacheKeyBaseURL</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#cachelastmodifiedfactor">CacheLastModifiedFactor</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#cachelock">CacheLock</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#cachelockmaxage">CacheLockMaxAge</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#cachelockpath">CacheLockPath</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#cachemaxexpire">CacheMaxExpire</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#cacheminexpire">CacheMinExpire</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#cachequickhandler">CacheQuickHandler</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#cachestaleonerror">CacheStaleOnError</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#cachestoreexpired">CacheStoreExpired</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#cachestorenostore">CacheStoreNoStore</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#cachestoreprivate">CacheStorePrivate</a></li>
</ul>
<h3>Traitement des bugs</h3><ul class="seealso"><li><a href="https://www.apache.org/dist/httpd/CHANGES_2.4">Journal des modifications de httpd</a></li><li><a href="https://bz.apache.org/bugzilla/buglist.cgi?bug_status=__open__&amp;list_id=144532&amp;product=Apache%20httpd-2&amp;query_format=specific&amp;order=changeddate%20DESC%2Cpriority%2Cbug_severity&amp;component=mod_cache">Probl&egrave;mes connus</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&amp;component=mod_cache">Signaler un bug</a></li></ul><h3>Voir aussi</h3>
<ul class="seealso">
<li><a href="../caching.html">Guide de la mise en
cache</a></li>
</ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="related">Modules apparent&eacute;s et directives <a title="Lien permanent" href="#related" class="permalink">&para;</a></h2>
    <table class="related"><tr><th>Modules Apparent&eacute;s</th><th>Directives Apparent&eacute;es</th></tr><tr><td><ul><li><code class="module"><a href="../mod/mod_cache_socache.html">mod_cache_socache</a></code></li></ul></td><td><ul><li><code class="directive"><a href="../mod/mod_cache_disk.html#cacheroot">CacheRoot</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachedirlevels">CacheDirLevels</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachedirlength">CacheDirLength</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cacheminfilesize">CacheMinFileSize</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachemaxfilesize">CacheMaxFileSize</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocache">CacheSocache</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocachemaxtime">CacheSocacheMaxTime</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocachemintime">CacheSocacheMinTime</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocachemaxsize">CacheSocacheMaxSize</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocachereadsize">CacheSocacheReadSize</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocachereadtime">CacheSocacheReadTime</a></code></li></ul></td></tr></table>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="sampleconf">Exemple de configuration <a title="Lien permanent" href="#sampleconf" class="permalink">&para;</a></h2>
    <div class="example"><h3>Extrait de httpd.conf</h3><pre class="prettyprint lang-config">#
# Exemple de configuration du cache
#
LoadModule cache_module modules/mod_cache.so
&lt;IfModule mod_cache.c&gt;
    LoadModule cache_disk_module modules/mod_cache_disk.so
    &lt;IfModule mod_cache_disk.c&gt;
        CacheRoot "c:/cacheroot"
        CacheEnable disk  "/"
        CacheDirLevels 5
        CacheDirLength 3
    &lt;/IfModule&gt;
    
    # Lorsqu'on sert de mandataire, on ne met pas en cache la liste
# des mises &agrave; jour de s&eacute;curit&eacute;
    CacheDisable "http://security.update.server/update-list/"
&lt;/IfModule&gt;</pre>
</div>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="thunderingherd">Eviter une temp&ecirc;te de requ&ecirc;te <a title="Lien permanent" href="#thunderingherd" class="permalink">&para;</a></h2>
  <p>Lorsqu'une entr&eacute;e du cache est p&eacute;rim&eacute;e, <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code>
  soumet une requ&ecirc;te conditionnelle au processus d'arri&egrave;re-plan, qui est
  cens&eacute; confirmer la validit&eacute; de l'entr&eacute;e du cache, ou dans la n&eacute;gative
  envoyer une entr&eacute;e mise &agrave; jour.</p>
  <p>Un court mais non n&eacute;gligeable laps de temps existe entre le moment
  o&ugrave; l'entr&eacute;e du cache est p&eacute;rim&eacute;e, et le moment o&ugrave; elle est mise &agrave;
  jour. Sur un serveur fortement charg&eacute;, un certain nombre de requ&ecirc;tes
  peut arriver pendant ce laps de temps, et provoquer une
  <strong>temp&ecirc;te</strong> de requ&ecirc;tes susceptibles de saturer le
  processus d'arri&egrave;re-plan de mani&egrave;re soudaine et impr&eacute;dictible.</p>
  <p>Pour contenir cette temp&ecirc;te, on peut utiliser la directive <code class="directive"><a href="#cachelock">CacheLock</a></code> afin de d&eacute;finir un r&eacute;pertoire o&ugrave;
  seront cr&eacute;&eacute;s <strong>&agrave; la vol&eacute;e</strong> des verrous pour les URLs.  Ces
  verrous sont utilis&eacute;s comme autant d'<strong>indications</strong> par les
  autres requ&ecirc;tes, soit pour emp&ecirc;cher une tentative de mise en cache (un autre
  processus est en train de r&eacute;cup&eacute;rer l'entit&eacute;), soit pour indiquer qu'une
  entr&eacute;e p&eacute;rim&eacute;e est en cours de mise &agrave; jour (pendant ce temps, c'est le contenu
  p&eacute;rim&eacute; qui sera renvoy&eacute;).
  </p>
  <h3>Mise en cache initiale d'une entr&eacute;e</h3>
    
    <p>Lorsqu'une entit&eacute; est mise en cache pour la premi&egrave;re fois, un
    verrou est cr&eacute;&eacute; pour cette entit&eacute; jusqu'&agrave; ce que la r&eacute;ponse ait &eacute;t&eacute;
    enti&egrave;rement mise en cache. Pendant la dur&eacute;e de vie du verrou, le
    cache va emp&ecirc;cher une seconde tentative de mise en cache de la m&ecirc;me
    entit&eacute;. Bien que cela ne suffise pas &agrave; contenir la temp&ecirc;te de
    requ&ecirc;tes, toute tentative de mettre en cache la m&ecirc;me entit&eacute;
    plusieurs fois simultan&eacute;ment est stopp&eacute;e.
    </p>
  
  <h3>Mise &agrave; jour d'une entr&eacute;e p&eacute;rim&eacute;e</h3>
    
    <p>Lorsqu'une entr&eacute;e atteint la limite de sa dur&eacute;e de vie, et
    devient par cons&eacute;quent p&eacute;rim&eacute;e, un verrou est cr&eacute;&eacute; pour cette entit&eacute;
    jusqu'&agrave; ce que la r&eacute;ponse ait &eacute;t&eacute; soit confirm&eacute;e comme encore
    valide, soit remplac&eacute;e par le processus d'arri&egrave;re-plan. Pendant la
    dur&eacute;e de vie du verrou, une seconde requ&ecirc;te entrante va provoquer le
    renvoi de la donn&eacute;e p&eacute;rim&eacute;e, et la temp&ecirc;te de requ&ecirc;tes sera
    contenue.</p>
  
  <h3>Verrous et en-t&ecirc;te Cache-Control: no-cache</h3>
    
    <p>Les verrous ne sont utilis&eacute;s <strong>qu'&agrave; titre
    indicatif</strong> pour enjoindre le cache &agrave; &ecirc;tre plus coop&eacute;ratif
    avec les serveurs d'arri&egrave;re-plan, et il est possible de passer outre
    si n&eacute;cessaire. Si le client envoie une requ&ecirc;te contenant un en-t&ecirc;te
    Cache-Control imposant un nouveau t&eacute;l&eacute;chargement de l'entit&eacute;, tout
    verrou &eacute;ventuel sera ignor&eacute;, la requ&ecirc;te du client sera honor&eacute;e
    imm&eacute;diatement, et l'entr&eacute;e du cache mise &agrave; jour.</p>

    <p>Comme m&eacute;canisme de s&eacute;curit&eacute; suppl&eacute;mentaire, la dur&eacute;e de vie maximale des
    verrous est configurable. Lorsque cette limite est atteinte, le verrou est
    supprim&eacute; et une autre requ&ecirc;te peut alors en cr&eacute;er un nouveau. Cette dur&eacute;e de
    vie peut &ecirc;tre d&eacute;finie via la directive <code class="directive"><a href="#cachemaxexpire">CacheMaxExpire</a></code>, et sa valeur par d&eacute;faut est
    de 5 secondes.
    </p>
  
  <h3>Exemple de configuration</h3>
    
    <div class="example"><h3>Activation du verrouillage du cache</h3><pre class="prettyprint lang-config">#
# Active le verrouillage du cache
#
&lt;IfModule mod_cache.c&gt;
    CacheLock on
    CacheLockPath "/tmp/mod_cache-lock"
    CacheLockMaxAge 5
&lt;/IfModule&gt;</pre>
</div>
  
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="finecontrol">Contr&ocirc;le fin via le filtre CACHE <a title="Lien permanent" href="#finecontrol" class="permalink">&para;</a></h2>
  <p>Dans son mode de fonctionnement par d&eacute;faut, le cache s'ex&eacute;cute sous
  la forme d'un gestionnaire rapide, court-circuitant la majorit&eacute; des
  traitements du serveur et fournissant ainsi une mise en cache
  poss&eacute;dant les plus hautes performances disponibles.</p>

  <p>Dans ce mode, le cache <strong>s'incruste</strong> devant le
  serveur, comme si un mandataire de mise en cache ind&eacute;pendant RFC 2616
  &eacute;tait plac&eacute; devant ce dernier.</p>

  <p>Bien que que ce mode offre les meilleures performances, les
  administrateurs peuvent souhaiter, dans certaines circonstances,
  effectuer des traitements sur la requ&ecirc;te apr&egrave;s que cette derni&egrave;re ait
  &eacute;t&eacute; mise en cache, comme ajouter du contenu personnalis&eacute; &agrave; la page
  mise en cache, ou appliquer des restrictions d'autorisations au
  contenu. Pour y parvenir, l'administrateur sera alors souvent forc&eacute; de
  placer des serveurs mandataires inverses ind&eacute;pendants soit derri&egrave;re,
  soit devant le serveur de mise en cache.</p>

  <p>Pour r&eacute;soudre ce probl&egrave;me, la directive <code class="directive"><a href="#cachequickhandler">CacheQuickHandler</a></code> peut &ecirc;tre d&eacute;finie &agrave;
  <strong>off</strong>, afin que le serveur traite toutes les phases
  normalement ex&eacute;cut&eacute;es par une requ&ecirc;te non mise en cache, y compris les
  phases <strong>d'authentification et d'autorisation</strong>.</p>

  <p>En outre, l'administrateur peut &eacute;ventuellement sp&eacute;cifier le
  <strong>point pr&eacute;cis dans la cha&icirc;ne de filtrage</strong> o&ugrave; devra
  intervenir la mise en cache en ajoutant le filtre
  <strong>CACHE</strong> &agrave; la cha&icirc;ne de filtrage en sortie.</p>

  <p>Par exemple, pour mettre en cache le contenu avant d'appliquer une
  compression &agrave; la r&eacute;ponse, placez le filtre <strong>CACHE</strong>
  avant le filtre <strong>DEFLATE</strong> comme dans l'exemple suivant
  :</p>

  <pre class="prettyprint lang-config"># Mise en cache du contenu avant la compression optionnelle
CacheQuickHandler off
AddOutputFilterByType CACHE;DEFLATE text/plain</pre>


  <p>Une autre possibilit&eacute; consiste &agrave; mettre en cache le contenu avant
  l'ajout de contenu personnalis&eacute; via <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> (ou
  tout autre filtre de traitement de contenu). Dans l'exemple suivant,
  les mod&egrave;les contenant des balises comprises par
  <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> sont mis en cache avant d'&ecirc;tre
  interpr&eacute;t&eacute;s :</p>

  <pre class="prettyprint lang-config"># Mise en cache du contenu avant l'intervention de mod_include et
   # mod_deflate
CacheQuickHandler off
AddOutputFilterByType CACHE;INCLUDES;DEFLATE text/html</pre>


  <p>Vous pouvez ins&eacute;rer le filtre <strong>CACHE</strong> en tout point
  de la cha&icirc;ne de filtrage. Dans l'exemple suivant, le contenu est mis
  en cache apr&egrave;s avoir &eacute;t&eacute; interpr&eacute;t&eacute; par <code class="module"><a href="../mod/mod_include.html">mod_include</a></code>,
  mais avant d'&ecirc;tre trait&eacute; par <code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code> :</p>

  <pre class="prettyprint lang-config"># Mise en cache du contenu entre les interventions de mod_include et
   # mod_deflate
CacheQuickHandler off
AddOutputFilterByType INCLUDES;CACHE;DEFLATE text/html</pre>


  <div class="warning"><h3>Avertissement :</h3>Si pour une raison
  ou pour une autre, le point d'insertion du filtre
  <strong>CACHE</strong> dans la cha&icirc;ne de filtrage est modifi&eacute;, vous
  devez <strong>vider votre cache</strong> pour &ecirc;tre s&ucirc;r que les donn&eacute;es
  servies soient &agrave; jour. En effet, <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> n'est pas
  en mesure d'effectuer cette op&eacute;ration &agrave; votre place.</div>

</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="status">Etat du cache et journalisation <a title="Lien permanent" href="#status" class="permalink">&para;</a></h2>
  <p>Lorsque <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> a d&eacute;cid&eacute; s'il devait ou non
  servir une entit&eacute; depuis le cache, les raisons pr&eacute;cises de cette
  d&eacute;cision sont enregistr&eacute;es dans l'environnement du sous-processus
  interne &agrave; la requ&ecirc;te sous la cl&eacute; <strong>cache-status</strong>.
  Cette information peut &ecirc;tre journalis&eacute;e via la directive <code class="directive"><a href="../mod/mod_log_config.html#logformat">LogFormat</a></code> comme suit :</p>

  <pre class="prettyprint lang-config">LogFormat "%{cache-status}e ..."</pre>


  <p>En fonction de la d&eacute;cision prise, l'information est aussi &eacute;crite
  dans l'environnement du sous-processus sous une des quatre cl&eacute;s
  suivantes :</p>

  <dl>
    <dt>cache-hit</dt><dd>Le contenu a &eacute;t&eacute; servi depuis le cache.</dd>
    <dt>cache-revalidate</dt><dd>Le contenu du cache &eacute;tait p&eacute;rim&eacute;, a &eacute;t&eacute;
    mis &agrave; jour avec succ&egrave;s, puis servi depuis le cache.</dd>
    <dt>cache-miss</dt><dd>Le contenu n'&eacute;tait pas dans le cache et a &eacute;t&eacute;
    servi directement depuis le serveur demand&eacute;.</dd>
    <dt>cache-invalidate</dt><dd>L'entit&eacute; du cache est devenue invalide
    suite &agrave; une requ&ecirc;te d'un type autre que GET ou HEAD.</dd>
  </dl>

  <p>Il est alors possible d'envisager une journalisation conditionnelle
  du traitement des requ&ecirc;tes par rapport au cache comme dans l'exemple
  suivant :</p>

  <pre class="prettyprint lang-config">CustomLog "cached-requests.log" common env=cache-hit
CustomLog "uncached-requests.log" common env=cache-miss
CustomLog "revalidated-requests.log" common env=cache-revalidate
CustomLog "invalidated-requests.log" common env=cache-invalidate</pre>


  <p>Pour les concepteurs de modules, une accroche (hook) nomm&eacute;e
  <var>cache_status</var> est disponible et permet aux modules de
  r&eacute;pondre aux r&eacute;sultats de la v&eacute;rification du cache ci-dessus de mani&egrave;re
  personnalis&eacute;e.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="cachedefaultexpire">Directive <span id="CacheDefaultExpire">CacheDefaultExpire</span> <a title="Lien permanent" href="#cachedefaultexpire" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>La dur&eacute;e par d&eacute;faut de mise en cache d'un document
lorsqu'aucune date d'expiration n'a &eacute;t&eacute; sp&eacute;cifi&eacute;e.</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CacheDefaultExpire <var>secondes</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>CacheDefaultExpire 3600 (une heure)</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, r&eacute;pertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_cache</td></tr>
</table>
    <p>La directive <code class="directive">CacheDefaultExpire</code> permet de
    sp&eacute;cifier un temps par d&eacute;faut, en secondes, pendant lequel sera conserv&eacute;
    dans le cache un document qui ne poss&egrave;de ni date d'expiration, ni date de
    derni&egrave;re modification. La valeur de cette directive n'est <em>pas</em>
    &eacute;cras&eacute;e par la valeur de la directive <code class="directive"><a href="#cachemaxexpire">CacheMaxExpire</a></code>, m&ecirc;me si cette derni&egrave;re est
    utilis&eacute;e.</p>

    <pre class="prettyprint lang-config">CacheDefaultExpire 86400</pre>


</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="cachedetailheader">Directive <span id="CacheDetailHeader">CacheDetailHeader</span> <a title="Lien permanent" href="#cachedetailheader" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ajoute un en-t&ecirc;te X-Cache-Detail &agrave; la r&eacute;ponse.</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CacheDetailHeader <var>on|off</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>CacheDetailHeader off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, r&eacute;pertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_cache</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Disponible depuis la version 2.3.9 d'Apache</td></tr>
</table>
  <p>Lorsque la directive <code class="directive">CacheDetailHeader</code> est d&eacute;finie &agrave;
  on, un en-t&ecirc;te <strong>X-Cache-Detail</strong> est ajout&eacute; &agrave; la r&eacute;ponse et
  contient les raisons pr&eacute;cises d'une d&eacute;cision d'utilisation du cache vis &agrave; vis
  de cette derni&egrave;re.</p>

  <p>Ceci peut s'av&eacute;rer utile au cours du d&eacute;veloppement de services
  RESTful mis en cache pour obtenir des informations suppl&eacute;mentaires &agrave;
  propos des d&eacute;cisions vis &agrave; vis du cache &eacute;crites dans les en-t&ecirc;tes de
  la r&eacute;ponse. Il est ainsi possible de v&eacute;rifier si
  <code>Cache-Control</code> et d'autres en-t&ecirc;tes ont &eacute;t&eacute; correctement
  utilis&eacute;s par le service et le client.</p>

  <p>Si le gestionnaire normal est utilis&eacute;, cette directive peut se situer dans
  une section <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code> ou
  <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code>. Si c'est le
  gestionnaire rapide qui est utilis&eacute;, elle doit se situer dans un contexte de
  serveur principal ou de serveur virtuel, sinon elle sera ignor&eacute;e.</p>

  <pre class="prettyprint lang-config"># Active l'en-t&ecirc;te X-Cache-Detail
CacheDetailHeader on</pre>


  <div class="example"><p><code>
    X-Cache-Detail: "conditional cache hit: entity refreshed" from localhost<br>
  </code></p></div>


</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="cachedisable">Directive <span id="CacheDisable">CacheDisable</span> <a title="Lien permanent" href="#cachedisable" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>D&eacute;sactive la mise en cache des URLs
sp&eacute;cifi&eacute;es</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CacheDisable <var>cha&icirc;ne-url</var> | <var>on</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, r&eacute;pertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_cache</td></tr>
</table>
    <div class="note"><p>Cette directive n&rsquo;est valable que dans les sections <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code> et <code class="directive"><a href="../mod/mod_proxy.html#proxy">&lt;Proxy&gt;</a></code> dans des contextes de
    r&eacute;pertoire. Elle ne l&rsquo;est pas dans les sections <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code>, <code class="directive"><a href="../mod/core.html#files">&lt;Files&gt;</a></code> ou <code class="directive"><a href="../mod/core.html#if">&lt;If&gt;</a></code>.</p></div>
    
    <p>La directive <code class="directive">CacheDisable</code> enjoint
    <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> de <em>ne pas</em> mettre en cache l'URL
    sp&eacute;cifi&eacute;e par <var>cha&icirc;ne URL</var>, ainsi que les URLs de niveaux
    inf&eacute;rieurs.</p>

    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">CacheDisable "/fichiers_locaux"</pre>
</div>

    <p>Si la directive se trouve &agrave; l'int&eacute;rieur d'une section <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code>, le chemin doit &ecirc;tre
    sp&eacute;cifi&eacute; en dessous de la Location, et si le mot "on" est utilis&eacute;, la mise
    en cache sera d&eacute;sactiv&eacute;e pour l'ensemble de l'arborescence concern&eacute;e par la
    section Location.</p>

    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">&lt;Location "/foo"&gt;
    CacheDisable on
&lt;/Location&gt;</pre>
</div>

    <p>Avec les versions 2.2.12 et ult&eacute;rieures, on peut d&eacute;finir la
    variable d'environnement <code>no-cache</code> pour une d&eacute;finition
    plus fine des ressources &agrave; mettre en cache.</p>

<h3>Voir aussi</h3>
<ul>
<li><a href="../env.html">Les variables d'environnement dans
Apache</a></li>
</ul>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="cacheenable">Directive <span id="CacheEnable">CacheEnable</span> <a title="Lien permanent" href="#cacheenable" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active la mise en cache des URLs sp&eacute;cifi&eacute;es en utilisant le
gestionnaire de stockage pr&eacute;cis&eacute;</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CacheEnable <var>type de cache</var> [<var>cha&icirc;ne
URL</var>]</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, r&eacute;pertoire</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_cache</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Une cha&icirc;ne URL telle que '/' s'appliquait &agrave; tout contenu
en mandat direct dans les versions 2.2 et ant&eacute;rieures.</td></tr>
</table>
    <p>La directive <code class="directive">CacheEnable</code> enjoint
    <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> de mettre en cache l'URL pr&eacute;cis&eacute;e par
    <var>cha&icirc;ne URL</var>, ainsi que les URLs de niveaux inf&eacute;rieurs. Le
    gestionnaire de stockage du cache est sp&eacute;cifi&eacute; &agrave; l'aide de l'argument
    <var>type de cache</var>. La directive <code class="directive">CacheEnable</code>
    peut &ecirc;tre plac&eacute;e &agrave; l'int&eacute;rieur d'une section <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code> ou <code class="directive"><a href="../mod/core.html#locationmatch">&lt;LocationMatch&gt;</a></code> pour indiquer que le contenu
    consid&eacute;r&eacute; peut &ecirc;tre mis en cache. Si <var>type de cache</var> a pour valeur
    <code>disk</code>, <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> utilisera le gestionnaire de
    stockage sur disque impl&eacute;ment&eacute; par
    <code class="module"><a href="../mod/mod_cache_disk.html">mod_cache_disk</a></code>. Pour que <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code>
    utilise le gestionnaire de stockage bas&eacute; sur le cache d'objets
    partag&eacute;s impl&eacute;ment&eacute; par <code class="module"><a href="../mod/mod_cache_socache.html">mod_cache_socache</a></code>,
    sp&eacute;cifiez <code>socache</code> comme valeur du param&egrave;tre <var>type
    de cache</var>.</p>
    <p>Si les diff&eacute;rentes directives <code class="directive">CacheEnable</code>
    sp&eacute;cifient des URLs qui se recoupent (comme dans l'exemple
    ci-dessous), tous les gestionnaires de stockage possibles seront
    lanc&eacute;s, jusqu'au premier d'entre eux qui traitera effectivement la
    requ&ecirc;te.
    L'ordre dans lequel les gestionnaires de stockage sont lanc&eacute;s est d&eacute;termin&eacute;
    par l'ordre dans lequel apparaissent les directives
    <code class="directive">CacheEnable</code> dans le fichier de configuration. Les
    directives <code class="directive">CacheEnable</code> situ&eacute;es &agrave; l'int&eacute;rieur de
    sections <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code> ou
    <code class="directive"><a href="../mod/core.html#locationmatch">&lt;LocationMatch&gt;</a></code> sont
    trait&eacute;es avant les directives <code class="directive">CacheEnable</code> d&eacute;finies au
    niveau global.</p>

    <p>En fonctionnement du type serveur mandataire direct, <var>cha&icirc;ne
    URL</var> doit au moins d&eacute;buter par un protocole pour lequel la mise
    en cache doit &ecirc;tre activ&eacute;e.</p>

    <pre class="prettyprint lang-config"># Mise en cache de contenu (gestionnaire normal seulement)
CacheQuickHandler off
&lt;Location "/foo"&gt;
    CacheEnable disk
&lt;/Location&gt;

# Mise en cache via une expression rationnelle (gestionnaire normal seulement)
CacheQuickHandler off
&lt;LocationMatch "foo$"&gt;
    CacheEnable disk
&lt;/LocationMatch&gt;

# Mise en cache de tous les contenus, &agrave; l'exception des URLs
# mandat&eacute;es en direct (gestionnaire normal ou rapide)
CacheEnable  disk  /

# Mise en cache des URLs FTP mandat&eacute;es (gestionnaire normal ou rapide)
CacheEnable  disk  ftp://

# Mise en cache des contenus mandat&eacute;s en direct depuis www.example.org (gestionnaire normal ou rapide)
CacheEnable  disk  http://www.example.org/</pre>


    <p>Un nom d'h&ocirc;te commen&ccedil;ant par un caract&egrave;re <strong>"*"</strong>
    correspondra &agrave; tout nom d'h&ocirc;te se terminant par le suffixe
    consid&eacute;r&eacute;. Un nom d'h&ocirc;te commen&ccedil;ant par un caract&egrave;re
    <strong>"."</strong> correspondra &agrave; tout nom d'h&ocirc;te contenant le
    composant de nom de domaine qui suit ce caract&egrave;re.</p>

    <pre class="prettyprint lang-config"># Correspond &agrave; www.example.org et fooexample.org
CacheEnable  disk  "http://*example.org/"
# Correspond &agrave; www.example.org, mais pas &agrave; fooexample.org
CacheEnable  disk  "http://.example.org/"</pre>


    <p>Depuis la version 2.2.12, on peut d&eacute;finir la variable
    d'environnement <code>no-cache</code> pour une d&eacute;finition plus fine
    des ressources &agrave; mettre en cache.</p>


<h3>Voir aussi</h3>
<ul>
<li><a href="../env.html">Les variables d'environnement dans
Apache</a></li>
</ul>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="cacheheader">Directive <span id="CacheHeader">CacheHeader</span> <a title="Lien permanent" href="#cacheheader" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ajoute un en-t&ecirc;te X-Cache &agrave; la r&eacute;ponse.</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CacheHeader <var>on|off</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>CacheHeader off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, r&eacute;pertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_cache</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Disponible depuis la version 2.3.9 d'Apache</td></tr>
</table>
  <p>Lorsque la directive <code class="directive">CacheHeader</code> est d&eacute;finie &agrave; on, un
  en-t&ecirc;te <strong>X-Cache</strong> est ajout&eacute; &agrave; la r&eacute;ponse et contient
  l'&eacute;tat du cache pour cette derni&egrave;re. Si le gestionnaire normal est
  utilis&eacute;, cette directive peut se situer dans une section
  <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code> ou
  <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code>. Si c'est
  le gestionnaire rapide qui est utilis&eacute;, elle doit se situer dans un
  contexte de serveur principal ou de serveur virtuel, sinon elle sera
  ignor&eacute;e.</p>

  <dl>
    <dt><strong>HIT</strong></dt><dd>Le contenu &eacute;tait &agrave; jour et a &eacute;t&eacute;
    servi depuis le cache.</dd>
    <dt><strong>REVALIDATE</strong></dt><dd>Le contenu &eacute;tait p&eacute;rim&eacute;, a
    &eacute;t&eacute; mis &agrave; jour, puis a &eacute;t&eacute; servi depuis le cache.</dd>
    <dt><strong>MISS</strong></dt><dd>Le contenu n'a pas &eacute;t&eacute; servi
    depuis le cache, mais directement depuis le serveur demand&eacute;.</dd>
  </dl>

  <pre class="prettyprint lang-config"># Active l'en-t&ecirc;te X-Cache
CacheHeader on</pre>


  <pre class="prettyprint lang-config">X-Cache: HIT from localhost</pre>

  


</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="cacheignorecachecontrol">Directive <span id="CacheIgnoreCacheControl">CacheIgnoreCacheControl</span> <a title="Lien permanent" href="#cacheignorecachecontrol" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ignore les en-t&ecirc;tes de requ&ecirc;te enjoignant de ne pas servir
le contenu au client depuis le cache</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CacheIgnoreCacheControl On|Off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>CacheIgnoreCacheControl Off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_cache</td></tr>
</table>
    <p>Normalement, les requ&ecirc;tes contenant des en-t&ecirc;tes tels que
    <code>Cache-Control: no-cache</code> ou Pragma: no-cache ne sont pas 
    servies depuis le cache. La directive
    <code class="directive">CacheIgnoreCacheControl</code> permet de modifier ce
    comportement. Avec <code class="directive">CacheIgnoreCacheControl
    On</code>, le serveur tentera de servir la ressource depuis le
    cache, m&ecirc;me si la requ&ecirc;te contient un des en-t&ecirc;tes cit&eacute;s plus haut.
    Les ressources qui requi&egrave;rent une autorisation ne seront
    <em>jamais</em> mises en cache.</p>

    <pre class="prettyprint lang-config">CacheIgnoreCacheControl On</pre>


    <div class="warning"><h3>Avertissement :</h3>
       Cette directive permet de servir des ressources depuis le cache,
       m&ecirc;me si le client a demand&eacute; &agrave; ce qu'il n'en soit pas ainsi. Le
       contenu servi est ainsi susceptible d'&ecirc;tre p&eacute;rim&eacute;.
    </div>

<h3>Voir aussi</h3>
<ul>
<li><code class="directive"><a href="#cachestoreprivate">CacheStorePrivate</a></code></li>
<li><code class="directive"><a href="#cachestorenostore">CacheStoreNoStore</a></code></li>
</ul>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="cacheignoreheaders">Directive <span id="CacheIgnoreHeaders">CacheIgnoreHeaders</span> <a title="Lien permanent" href="#cacheignoreheaders" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ne pas stocker le(s) en-t&ecirc;te(s) sp&eacute;cifi&eacute;(s) dans le cache.
</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CacheIgnoreHeaders <var>en-t&ecirc;te</var> [<var>en-t&ecirc;te</var>] ...</code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>CacheIgnoreHeaders None</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_cache</td></tr>
</table>
    <p>En accord avec la RFC 2616, les en-t&ecirc;tes HTTP hop-by-hop ne sont
    pas stock&eacute;s dans le cache. Les en-t&ecirc;tes HTTP suivant sont des
    en-t&ecirc;tes hop-by-hop, et en tant que tels, ne sont en  <em>aucun</em>
    cas stock&eacute;s dans le cache, quelle que soit la d&eacute;finition de la
    directive <code class="directive">CacheIgnoreHeaders</code> :</p>

    <ul>
      <li><code>Connection</code></li>
      <li><code>Keep-Alive</code></li>
      <li><code>Proxy-Authenticate</code></li>
      <li><code>Proxy-Authorization</code></li>
      <li><code>TE</code></li>
      <li><code>Trailers</code></li>
      <li><code>Transfer-Encoding</code></li>
      <li><code>Upgrade</code></li>
    </ul>

    <p>La directive <code class="directive">CacheIgnoreHeaders</code> permet de
    sp&eacute;cifier quels en-t&ecirc;tes HTTP ne doivent pas &ecirc;tre stock&eacute;s dans le
    cache. Par exemple, il peut s'av&eacute;rer pertinent dans certains cas de
    ne pas stocker les cookies dans le cache.</p>

    <p>La directive <code class="directive">CacheIgnoreHeaders</code> accepte
    une liste d'en-t&ecirc;tes HTTP s&eacute;par&eacute;s par des espaces, qui ne doivent
    pas &ecirc;tre stock&eacute;s dans le cache. Si les en-t&ecirc;tes hop-by-hop sont les
    seuls &agrave; ne pas devoir &ecirc;tre stock&eacute;s dans le cache (le comportement
    compatible RFC 2616), la directive
    <code class="directive">CacheIgnoreHeaders</code> peut &ecirc;tre d&eacute;finie &agrave;
    <code>None</code>.</p>

    <div class="example"><h3>Exemple 1</h3><pre class="prettyprint lang-config">CacheIgnoreHeaders Set-Cookie</pre>
</div>

    <div class="example"><h3>Exemple 2</h3><pre class="prettyprint lang-config">CacheIgnoreHeaders None</pre>
</div>

    <div class="warning"><h3>Avertissement :</h3>
      Si des en-t&ecirc;tes n&eacute;cessaires &agrave; la bonne gestion du cache, comme
      <code>Expires</code>, ne sont pas stock&eacute;s suite &agrave; la d&eacute;finition
      d'une directive <code class="directive">CacheIgnoreHeaders</code>, le
      comportement de mod_cache sera impr&eacute;visible.
    </div>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="cacheignorenolastmod">Directive <span id="CacheIgnoreNoLastMod">CacheIgnoreNoLastMod</span> <a title="Lien permanent" href="#cacheignorenolastmod" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ignore le fait qu'une r&eacute;ponse ne poss&egrave;de pas d'en-t&ecirc;te Last
Modified.</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CacheIgnoreNoLastMod On|Off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>CacheIgnoreNoLastMod Off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, r&eacute;pertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_cache</td></tr>
</table>
    <p>Normalement, les documents qui ne poss&egrave;dent pas de date de
    derni&egrave;re modification ne sont pas mis en cache. Dans certaines
    circonstances, la date de derni&egrave;re modification est supprim&eacute;e (au
    cours des traitements li&eacute;s &agrave; <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> par
    exemple), ou n'existe tout simplement pas. La directive
    <code class="directive">CacheIgnoreNoLastMod</code> permet de sp&eacute;cifier si
    les documents ne poss&egrave;dant pas de date de derni&egrave;re modification doivent &ecirc;tre
    mis en cache, m&ecirc;me sans date de derni&egrave;re modification.  Si le document ne
    poss&egrave;de ni date d'expiration, ni date de derni&egrave;re modification, la valeur
    sp&eacute;cifi&eacute;e par la directive <code class="directive"><a href="#cachedefaultexpire">CacheDefaultExpire</a></code> servira &agrave; g&eacute;n&eacute;rer une date
    d'expiration.
    </p>

    <div class="note">Plus pr&eacute;cis&eacute;ment, une r&eacute;ponse 200 OK n'est mise en cache que si elle
    contient au moins un des en-t&ecirc;tes <code>Last-Modified</code>,
    <code>ETag</code> ou <code>Expires</code>, ou une directive
    <code>Cache-Control: max-age</code> ou <code>s-maxage</code>. Cette
    directive permet de s'affranchir enti&egrave;rement de cette condition pr&eacute;alable.
    Si un de ces en-t&ecirc;tes est d&eacute;j&agrave; pr&eacute;sent, cette directive n'a aucun
    effet.</div>

    <pre class="prettyprint lang-config">CacheIgnoreNoLastMod On</pre>


</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="cacheignorequerystring">Directive <span id="CacheIgnoreQueryString">CacheIgnoreQueryString</span> <a title="Lien permanent" href="#cacheignorequerystring" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ignore la cha&icirc;ne de param&egrave;tres lors de la mise en
cache</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CacheIgnoreQueryString On|Off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>CacheIgnoreQueryString Off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_cache</td></tr>
</table>
    <p>Normalement, les requ&ecirc;tes comportant une cha&icirc;ne de param&egrave;tres
    sont mises en cache s&eacute;par&eacute;ment si leurs cha&icirc;nes de param&egrave;tres
    diff&egrave;rent.
    En accord avec la RFC 2616/13.9, cette mise en cache n'est effectu&eacute;e
    s&eacute;par&eacute;ment que si une date d'expiration est sp&eacute;cifi&eacute;e. La directive
    <code class="directive">CacheIgnoreQueryString</code> permet la mise en
    cache de requ&ecirc;tes m&ecirc;me si aucune date d'expiration est sp&eacute;cifi&eacute;e, et
    de renvoyer une r&eacute;ponse depuis la cache m&ecirc;me si les cha&icirc;nes de
    param&egrave;tres diff&egrave;rent. Du point de vue du cache, la requ&ecirc;te est
    trait&eacute;e comme si elle ne poss&egrave;dait pas de cha&icirc;ne de param&egrave;tres
    lorsque cette directive est activ&eacute;e.</p>

    <pre class="prettyprint lang-config">CacheIgnoreQueryString On</pre>



</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="cacheignoreurlsessionidentifiers">Directive <span id="CacheIgnoreURLSessionIdentifiers">CacheIgnoreURLSessionIdentifiers</span> <a title="Lien permanent" href="#cacheignoreurlsessionidentifiers" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ignore les identifiants de session d&eacute;finis encod&eacute;s dans
l'URL lors de la mise en cache
</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CacheIgnoreURLSessionIdentifiers <var>identifiant</var>
[<var>identifiant</var>] ...</code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>CacheIgnoreURLSessionIdentifiers None</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_cache</td></tr>
</table>
    <p>Certaines applications encodent l'identifiant de session dans
    l'URL comme dans l'exemple suivant :
    </p>
    <ul>
      <li><code>/une-application/image.gif;jsessionid=123456789</code></li>
      <li><code>/une-application/image.gif?PHPSESSIONID=12345678</code></li>
    </ul>
    <p>Ceci implique la mise en cache des ressources s&eacute;par&eacute;ment pour
    chaque session, ce qui n'est en g&eacute;n&eacute;ral pas souhait&eacute;. La directive
    <code class="directive">CacheIgnoreURLSessionIdentifiers</code> permet de
    d&eacute;finir une liste d'identifiants qui seront supprim&eacute;s de la cl&eacute;
    utilis&eacute;e pour identifier une entit&eacute; dans le cache, de fa&ccedil;on &agrave; ce que
    les ressources ne soient pas stock&eacute;es s&eacute;par&eacute;ment pour chaque
    session.
    </p>
    <p><code>CacheIgnoreURLSessionIdentifiers None</code> vide la liste
    des identifiants ignor&eacute;s. Autrement, chaque identifiant sp&eacute;cifi&eacute; est
    ajout&eacute; &agrave; la liste.</p>

    <div class="example"><h3>Exemple 1</h3><pre class="prettyprint lang-config">CacheIgnoreURLSessionIdentifiers jsessionid</pre>
</div>

    <div class="example"><h3>Exemple 2</h3><pre class="prettyprint lang-config">CacheIgnoreURLSessionIdentifiers None</pre>
</div>


</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="cachekeybaseurl">Directive <span id="CacheKeyBaseURL">CacheKeyBaseURL</span> <a title="Lien permanent" href="#cachekeybaseurl" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Remplace l'URL de base des cl&eacute;s du cache mandat&eacute;es en
inverse</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CacheKeyBaseURL <var>URL</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_cache</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Disponible depuis la version 2.3.9 d'Apache</td></tr>
</table>
  <p>Lorsque la directive <code class="directive">CacheKeyBaseURL</code> est utilis&eacute;e,
  l'URL sp&eacute;cifi&eacute;e sera utilis&eacute;e comme URL de base pour calculer l'URL des cl&eacute;s
  du cache dans la configuration du mandataire inverse. Par d&eacute;faut, c'est le
  protocole/nom d'h&ocirc;te/port du serveur virtuel courant qui sera utilis&eacute; pour
  construire la cl&eacute; de cache. Dans le cas d'un cluster de machines, si toutes
  les entr&eacute;es du cache doivent poss&eacute;der la m&ecirc;me cl&eacute;, cette directive permet de
  sp&eacute;cifier une nouvelle URL de base.</p>

  <pre class="prettyprint lang-config"># Remplace l'URL de base de la cl&eacute; de cache.
CacheKeyBaseURL "http://www.example.com/"</pre>


  <div class="warning">Prenez garde en d&eacute;finissant cette directive. Si
  deux serveurs virtuels distincts poss&egrave;dent accidentellement la m&ecirc;me
  URL de base, les entr&eacute;es en provenance d'un serveur virtuel seront
  servies par l'autre.</div>


</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="cachelastmodifiedfactor">Directive <span id="CacheLastModifiedFactor">CacheLastModifiedFactor</span> <a title="Lien permanent" href="#cachelastmodifiedfactor" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Le facteur utilis&eacute; pour g&eacute;n&eacute;rer une date d'expiration en
fonction de la date de derni&egrave;re modification.</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CacheLastModifiedFactor <var>flottant</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>CacheLastModifiedFactor 0.1</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, r&eacute;pertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_cache</td></tr>
</table>
    <p>Si un document ne poss&egrave;de pas de date d'expiration, elle peut
    &ecirc;tre calcul&eacute;e en fonction de la date de derni&egrave;re modification, si
    elle existe. La directive
    <code class="directive">CacheLastModifiedFactor</code> permet de sp&eacute;cifier
    un <var>facteur</var> &agrave; utiliser pour la g&eacute;n&eacute;ration de cette date
    d'expiration au sein de la formule suivante :

    <code>d&eacute;lai-expiration = dur&eacute;e-depuis-date-derni&egrave;re-modification *
    <var>facteur</var>
    date-expiration = date-courante + d&eacute;lai-expiration</code>

    Par exemple, si la derni&egrave;re modification du document date de 10
    heures, et si <var>facteur</var> a pour valeur 0.1, le d&eacute;lai
    d'expiration sera de 10*0.1 = 1 heure. Si l'heure courante est
    3:00pm, la date d'expiration calcul&eacute;e sera 3:00pm + 1 heure =
    4:00pm.

    Si le d&eacute;lai d'expiration est sup&eacute;rieur &agrave; celui sp&eacute;cifi&eacute; par la directive
    <code class="directive"><a href="#cachemaxexpire">CacheMaxExpire</a></code>, c'est ce dernier
    qui l'emporte.</p>

    <pre class="prettyprint lang-config">CacheLastModifiedFactor 0.5</pre>


</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="cachelock">Directive <span id="CacheLock">CacheLock</span> <a title="Lien permanent" href="#cachelock" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active la protection contre les temp&ecirc;tes de requ&ecirc;tes.</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CacheLock <var>on|off</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>CacheLock off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_cache</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Disponible depuis la version 2.2.15 d'Apache</td></tr>
</table>
  <p>La directive <code class="directive">CacheLock</code> active la protection
  contre les temp&ecirc;tes de requ&ecirc;tes pour l'espace d'adressage donn&eacute;.</p>

  <p>La configuration minimale pour activer le verrouillage contre les
  temp&ecirc;tes de requ&ecirc;tes dans le r&eacute;pertoire temp par d&eacute;faut du syst&egrave;me est
  la suivante :</p>

  <pre class="prettyprint lang-config"># Active le verrouillage du cache
CacheLock on</pre>



</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="cachelockmaxage">Directive <span id="CacheLockMaxAge">CacheLockMaxAge</span> <a title="Lien permanent" href="#cachelockmaxage" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>D&eacute;finit la dur&eacute;e de vie maximale d'un verrou de cache.</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CacheLockMaxAge <var>entier</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>CacheLockMaxAge 5</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_cache</td></tr>
</table>
  <p>La directive <code class="directive">CacheLockMaxAge</code> permet de
  sp&eacute;cifier la dur&eacute;e de vie maximale d'un verrou de cache.</p>

  <p>Un verrou plus ancien que cette valeur exprim&eacute;e en secondes sera
  ignor&eacute;, et la prochaine requ&ecirc;te entrante sera alors en mesure de
  recr&eacute;er le verrou. Ce m&eacute;canisme permet d'&eacute;viter les mises &agrave; jour trop
  longues initi&eacute;es par des clients lents.</p>


</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="cachelockpath">Directive <span id="CacheLockPath">CacheLockPath</span> <a title="Lien permanent" href="#cachelockpath" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>D&eacute;finit le r&eacute;pertoire des verrous.</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CacheLockPath <var>r&eacute;pertoire</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>CacheLockPath /tmp/mod_cache-lock</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_cache</td></tr>
</table>
  <p>La directive <code class="directive">CacheLockPath</code> permet de
  sp&eacute;cifier le r&eacute;pertoire dans lequel les verrous sont cr&eacute;&eacute;s. Par
  d&eacute;faut, c'est le r&eacute;pertoire temporaire du syst&egrave;me qui est utilis&eacute;. Les
  verrous sont des fichiers vides qui n'existent que pour les URLs
  p&eacute;rim&eacute;es en cours de mise &agrave; jour, et consomment donc bien moins de
  ressources que le traditionnel cache sur disque.</p>


</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="cachemaxexpire">Directive <span id="CacheMaxExpire">CacheMaxExpire</span> <a title="Lien permanent" href="#cachemaxexpire" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>La dur&eacute;e maximale en secondes de mise en cache d'un
document</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CacheMaxExpire <var>secondes</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>CacheMaxExpire 86400 (une journ&eacute;e)</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, r&eacute;pertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_cache</td></tr>
</table>
    <p>La directive <code class="directive">CacheMaxExpire</code> permet de
    sp&eacute;cifier le nombre maximum de secondes pendant lequel les documents
    HTTP suceptibles d'&ecirc;tre mis en cache seront conserv&eacute;s sans v&eacute;rifier
    leur contenu sur le serveur d'origine. Ce nombre de secondes
    correspond donc &agrave; la dur&eacute;e maximale pendant laquelle un document ne
    sera pas &agrave; jour. L'utilisation de cette valeur maximale est forc&eacute;e,
    m&ecirc;me si le document poss&egrave;de une date d'expiration.</p>

    <pre class="prettyprint lang-config">CacheMaxExpire 604800</pre>

    

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="cacheminexpire">Directive <span id="CacheMinExpire">CacheMinExpire</span> <a title="Lien permanent" href="#cacheminexpire" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>La dur&eacute;e minimale en secondes de mise en cache d'un
document</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CacheMinExpire <var>secondes</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>CacheMinExpire 0</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, r&eacute;pertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_cache</td></tr>
</table>
    <p>La directive <code class="directive">CacheMinExpire</code> permet de
    sp&eacute;cifier le nombre minimum de secondes pendant lequel les documents
    HTTP susceptibles d'&ecirc;tre mis en cache seront conserv&eacute;s sans v&eacute;rifier
    leur contenu sur le serveur d'origine. Elle n'est prise en compte
    que dans le cas o&ugrave; le document ne poss&egrave;de aucune date d'expiration
    valide.</p>

    <pre class="prettyprint lang-config">CacheMinExpire 3600</pre>


</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="cachequickhandler">Directive <span id="CacheQuickHandler">CacheQuickHandler</span> <a title="Lien permanent" href="#cachequickhandler" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ex&eacute;cute le cache &agrave; partir d'un gestionnaire rapide.</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CacheQuickHandler <var>on|off</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>CacheQuickHandler on</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_cache</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Disponible &agrave; partir de la version 2.3.3 du serveur HTTP
  Apache</td></tr>
</table>
    <p>La directive <code class="directive">CacheQuickHandler</code> permet de contr&ocirc;ler
    la phase au cours de laquelle la mise en cache est effectu&eacute;e.</p>

    <p>Avec la configuration par d&eacute;faut, le cache agit au cours de la
    phase du gestionnaire rapide. Cette phase court-circuite la majorit&eacute;
    des traitements du serveur, et constitue le mode d'op&eacute;ration le plus
    performant pour un serveur typique. Le cache
    <strong>s'incruste</strong> devant le serveur, et la majorit&eacute; des
    traitements du serveur est court-circuit&eacute;e.</p>

    <p>Lorsque cette directive est d&eacute;finie &agrave; off, le cache agit comme un
    gestionnaire normal, et est concern&eacute; par toutes les phases de
    traitement d'une requ&ecirc;te. Bien que ce mode soit moins performant que
    le mode par d&eacute;faut, il permet d'utiliser le cache dans les cas o&ugrave; un
    traitement complet de la requ&ecirc;te est n&eacute;cessaire, comme par exemple
    lorsque le contenu est soumis &agrave; autorisation.</p>

    <pre class="prettyprint lang-config"># Ex&eacute;cute le cache comme un gestionnaire normal
CacheQuickHandler off</pre>


    <p>Lorsque le gestionnaire rapide est d&eacute;sactiv&eacute;, l'administrateur a
    aussi la possibilit&eacute; de choisir avec pr&eacute;cision le point de la cha&icirc;ne
    de filtrage o&ugrave; la mise en cache sera effectu&eacute;e, en utilisant le
    filtre <strong>CACHE</strong>.</p>

    <pre class="prettyprint lang-config"># Mise en cache du contenu avant l'intervention de mod_include et
     # mod_deflate
CacheQuickHandler off
AddOutputFilterByType CACHE;INCLUDES;DEFLATE text/html</pre>


    <p>Si le filtre CACHE est sp&eacute;cifi&eacute; plusieurs fois, c'est la derni&egrave;re
    instance qui sera prise en compte.</p>

  
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="cachestaleonerror">Directive <span id="CacheStaleOnError">CacheStaleOnError</span> <a title="Lien permanent" href="#cachestaleonerror" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sert du contenu non &agrave; jour &agrave; la place de r&eacute;ponses 5xx.</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CacheStaleOnError <var>on|off</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>CacheStaleOnError on</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, r&eacute;pertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_cache</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Disponible depuis la version 2.3.9 d'Apache</td></tr>
</table>
  <p>Lorsque la directive <code class="directive">CacheStaleOnError</code> est d&eacute;finie &agrave;
  on, et si des donn&eacute;es non mises &agrave; jour sont disponibles dans le cache, ce
  dernier renverra ces donn&eacute;es, plut&ocirc;t qu'une &eacute;ventuelle r&eacute;ponse 5xx en
  provenance du serveur d'arri&egrave;re-plan. Alors que l'en-t&ecirc;te Cache-Control envoy&eacute;
  par les clients sera respect&eacute;, et que les clients recevront donc dans ce cas
  la r&eacute;ponse 5xx brute &agrave; leur requ&ecirc;te, cette r&eacute;ponse 5xx renvoy&eacute;e au client
  n'invalidera pas le contenu dans le cache.</p>

  <pre class="prettyprint lang-config"># Sert des donn&eacute;es non mises &agrave; jour en cas d'erreur.
CacheStaleOnError on</pre>



</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="cachestoreexpired">Directive <span id="CacheStoreExpired">CacheStoreExpired</span> <a title="Lien permanent" href="#cachestoreexpired" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Tente de mettre en cache les r&eacute;ponses que le serveur
consid&egrave;re comme arriv&eacute;es &agrave; expiration</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CacheStoreExpired On|Off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>CacheStoreExpired Off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, r&eacute;pertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_cache</td></tr>
</table>
    <p>Depuis la version 2.2.4, les r&eacute;ponses qui sont arriv&eacute;es &agrave;
    expiration ne sont pas stock&eacute;es dans le cache. La directive
    <code class="directive">CacheStoreExpired</code> permet de modifier ce
    comportement. Avec <code class="directive">CacheStoreExpired</code> On, le
    serveur tente de mettre en cache la ressource si elle est p&eacute;rim&eacute;e.
    Les requ&ecirc;tes suivantes vont d&eacute;clencher une requ&ecirc;te si-modifi&eacute;-depuis
    de la part du serveur d'origine, et la r&eacute;ponse sera renvoy&eacute;e &agrave;
    partir du cache si la ressource d'arri&egrave;re-plan n'a pas &eacute;t&eacute; modifi&eacute;e.</p>

    <pre class="prettyprint lang-config">CacheStoreExpired On</pre>

    

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="cachestorenostore">Directive <span id="CacheStoreNoStore">CacheStoreNoStore</span> <a title="Lien permanent" href="#cachestorenostore" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Tente de mettre en cache les requ&ecirc;tes ou r&eacute;ponses dont
l'ent&ecirc;te Cache-Control: a pour valeur no-store.</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CacheStoreNoStore On|Off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>CacheStoreNoStore Off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, r&eacute;pertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_cache</td></tr>
</table>
    <p>Normalement, les requ&ecirc;tes ou r&eacute;ponses dont l'en-t&ecirc;te
    <code>Cache-Control: no-store</code> ne sont pas stock&eacute;es dans le
    cache. La directive <code class="directive">CacheStoreNoStore</code> permet
    de modifier ce comportement. Si
    <code class="directive">CacheStoreNoStore</code> est d&eacute;finie &agrave; On, le
    serveur tente de mettre la ressource en cache m&ecirc;me si elle contient
    des en-t&ecirc;tes ayant pour valeur no-store. Les ressources
    n&eacute;cessitant une autorisation ne sont <em>jamais</em> mises en
    cache.</p>

    
    <pre class="prettyprint lang-config">CacheStoreNoStore On</pre>

    

    <div class="warning"><h3>Avertissement :</h3>
       Selon la RFC 2616, la valeur d'en-t&ecirc;te no-store est cens&eacute;e
       "pr&eacute;venir la suppression ou la r&eacute;tention par inadvertance
       d'informations sensibles (par exemple, sur des bandes de
       sauvegarde)". Autrement dit, l'activation de la directive
       <code class="directive">CacheStoreNoCache</code> pourrait provoquer le
       stockage d'informations sensibles dans le cache. Vous avez donc
       &eacute;t&eacute; pr&eacute;venus.
    </div>

<h3>Voir aussi</h3>
<ul>
<li><code class="directive"><a href="#cacheignorecachecontrol">CacheIgnoreCacheControl</a></code></li>
<li><code class="directive"><a href="#cachestoreprivate">CacheStorePrivate</a></code></li>
</ul>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="cachestoreprivate">Directive <span id="CacheStorePrivate">CacheStorePrivate</span> <a title="Lien permanent" href="#cachestoreprivate" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Tente de mettre en cache des r&eacute;ponses que le serveur a
marqu&eacute;es comme priv&eacute;es</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CacheStorePrivate On|Off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>CacheStorePrivate Off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, r&eacute;pertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_cache</td></tr>
</table>
    <p>Normalement, les r&eacute;ponse comportant un en-t&ecirc;te <code>Cache-Control:
    private</code> ne seront pas stock&eacute;es dans le cache. La directive
    <code class="directive">CacheStorePrivate</code> permet de modifier ce comportement.
    Si <code class="directive">CacheStorePrivate</code> est d&eacute;finie &agrave; On, le serveur
    tentera de mettre la ressource en cache, m&ecirc;me si elle
    contient des en-t&ecirc;tes ayant pour valeur private. Les ressources
    n&eacute;cessitant une autorisation ne sont <em>jamais</em> mises en
    cache.</p>

    
    <pre class="prettyprint lang-config">CacheStorePrivate On</pre>

    

    <div class="warning"><h3>Avertissement :</h3>
       Cette directive autorise la mise en cache m&ecirc;me si le serveur
       indique que la ressource ne doit pas &ecirc;tre mise en cache. Elle
       n'est de ce fait appropri&eacute;e que dans le cas d'un cache
       'priv&eacute;'.
    </div>

<h3>Voir aussi</h3>
<ul>
<li><code class="directive"><a href="#cacheignorecachecontrol">CacheIgnoreCacheControl</a></code></li>
<li><code class="directive"><a href="#cachestorenostore">CacheStoreNoStore</a></code></li>
</ul>
</div>
</div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_cache.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/mod/mod_cache.html" title="Fran&ccedil;ais">&nbsp;fr&nbsp;</a> |
<a href="../ja/mod/mod_cache.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="../ko/mod/mod_cache.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
</div><div id="footer">
<p class="apache">Copyright 2026 The Apache Software Foundation.<br>Autoris&eacute; sous <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Signaler un bug</a></p></div><script><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
    prettyPrint();
}
var langToggle = document.querySelector('.lang-toggle');
var topLang = document.querySelector('.toplang');
if (langToggle && topLang) {
    langToggle.addEventListener('click', function() { topLang.classList.toggle('open'); });
}
var qv = document.getElementById('quickview');
if (qv) {
    document.body.appendChild(qv);
    var qvBtn = document.createElement('button');
    qvBtn.className = 'qv-toggle';
    qvBtn.setAttribute('aria-label', 'Toggle page navigation');
    qvBtn.innerHTML = '&#9776;';
    document.body.appendChild(qvBtn);
    qvBtn.addEventListener('click', function() {
        var isOpen = qv.classList.toggle('open');
        if (isOpen) {
            qv.style.top = window.scrollY + 10 + 'px';
        }
    });
    window.addEventListener('scroll', function() { qv.classList.remove('open'); });
}
//--><!]]></script>
</body></html>