github.com/krum110487/go-htaccess@v0.0.0-20240316004156-60641c8e7598/tests/data/apache_2_2_34/manual/caching.html.fr (about)

     1  <?xml version="1.0" encoding="ISO-8859-1"?>
     2  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
     3  <html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head>
     4  <meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
     5  <!--
     6          XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
     7                This file is generated from xml source: DO NOT EDIT
     8          XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
     9        -->
    10  <title>Guide de la mise en cache - Serveur Apache HTTP Version 2.2</title>
    11  <link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
    12  <link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
    13  <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" />
    14  <script src="./style/scripts/prettify.min.js" type="text/javascript">
    15  </script>
    16  
    17  <link href="./images/favicon.ico" rel="shortcut icon" /><link href="http://httpd.apache.org/docs/current/caching.html" rel="canonical" /></head>
    18  <body id="manual-page"><div id="page-header">
    19  <p class="menu"><a href="./mod/">Modules</a> | <a href="./mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="./glossary.html">Glossaire</a> | <a href="./sitemap.html">Plan du site</a></p>
    20  <p class="apache">Serveur Apache HTTP Version 2.2</p>
    21  <img alt="" src="./images/feather.gif" /></div>
    22  <div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="./images/left.gif" /></a></div>
    23  <div id="path">
    24  <a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="./">Version 2.2</a></div><div id="page-content"><div class="retired"><h4>A savoir</h4>
    25              <p>Ce document concerne une version ancienne (<strong>2.2</strong>)
    26  	    du serveur HTTP Apache. La version actuelle est
    27  	    documentée <a href="http://httpd.apache.org/docs/current">ici</a>. Si vous n'avez
    28  	    pas encore effectué la mise è jour, veuillez suivre <a href="http://httpd.apache.org/docs/current/upgrading.html">ce
    29  	    lien</a> pour plus d'informations.</p>
    30          <p>Pour consulter la version actuelle de ce
    31  	document, vous pouvez suivre <a href="http://httpd.apache.org/docs/current/caching.html">ce lien</a>.</p></div><div id="preamble"><h1>Guide de la mise en cache</h1>
    32  <div class="toplang">
    33  <p><span>Langues Disponibles: </span><a href="./en/caching.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
    34  <a href="./fr/caching.html" title="Français">&nbsp;fr&nbsp;</a> |
    35  <a href="./tr/caching.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
    36  </div>
    37  
    38      <p>Ce document complète la documentation de référence des modules
    39      <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code>,
    40      <code class="module"><a href="./mod/mod_disk_cache.html">mod_disk_cache</a></code>, <code class="module"><a href="./mod/mod_mem_cache.html">mod_mem_cache</a></code>,
    41      <code class="module"><a href="./mod/mod_file_cache.html">mod_file_cache</a></code> et du programme <a href="programs/htcacheclean.html">htcacheclean</a>.
    42      Il décrit l'utilisation des fonctionnalités de mise en cache d'Apache
    43      pour accélérer les services web et proxy, tout en évitant les problèmes
    44      courants et les erreurs de configuration.</p>
    45    </div>
    46  <div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#introduction">Introduction</a></li>
    47  <li><img alt="" src="./images/down.gif" /> <a href="#overview">Vue d'ensemble de la mise en cache</a></li>
    48  <li><img alt="" src="./images/down.gif" /> <a href="#security">Considérations sur la sécurité</a></li>
    49  <li><img alt="" src="./images/down.gif" /> <a href="#filehandle">Mise en cache de la gestion de fichier</a></li>
    50  <li><img alt="" src="./images/down.gif" /> <a href="#inmemory">Mise en cache en mémoire</a></li>
    51  <li><img alt="" src="./images/down.gif" /> <a href="#disk">Mise en cache sur disque</a></li>
    52  </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
    53  <div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
    54  <div class="section">
    55  <h2><a name="introduction" id="introduction">Introduction</a></h2>
    56      
    57  
    58      <p>Depuis la version 2.2 du serveur HTTP Apache, les modules
    59      <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code>
    60      et <code class="module"><a href="./mod/mod_file_cache.html">mod_file_cache</a></code> ne sont plus jugés expérimentaux
    61      et on considère qu'ils peuvent être utilisés en production. Ces
    62      architectures de mise en cache constituent un puissant concept
    63      d'accélération de la gestion HTTP, tant comme serveur web originel
    64      que comme mandataire.</p>
    65  
    66      <p>Le module <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> et ses modules de soutien
    67      <code class="module"><a href="./mod/mod_mem_cache.html">mod_mem_cache</a></code> et <code class="module"><a href="./mod/mod_disk_cache.html">mod_disk_cache</a></code>
    68      permettent une mise en cache intelligente du point de vue HTTP.
    69      Le contenu proprement dit est stocké dans le cache,
    70      et mod_cache tente d'honorer tous les en-têtes HTTP et les options
    71      qui définissent la possibilité de mise en cache du contenu. Il gère non
    72      seulement le contenu local, mais aussi le contenu mandaté.
    73      <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code>
    74      est conçu pour des configurations de mise en cache simples ou complexes,
    75      dans lesquels vous traitez de contenu mandaté, de contenu local dynamique
    76      ou avez besoin d'accélérer l'accès à des fichiers locaux qui sont modifiés
    77      au cours du temps.</p>
    78  
    79      <p>Le module <code class="module"><a href="./mod/mod_file_cache.html">mod_file_cache</a></code> quant à lui, constitue une
    80      forme de mise en cache plus basique, mais quelques fois intéressante.
    81      Plutôt que de gérer la complexité de s'assurer de manière active de la
    82      possibilité de mise en cache d'URLs,
    83      <code class="module"><a href="./mod/mod_file_cache.html">mod_file_cache</a></code> fournit des méthodes pour la gestion
    84      et l'édition de fichiers en mémoire afin de maintenir un cache de fichiers
    85      dans l'état où ils étaient la dernière fois qu'Apache a démarré.
    86      En tant que tel, <code class="module"><a href="./mod/mod_file_cache.html">mod_file_cache</a></code> a été conçu pour améliorer
    87      le temps d'accès à des fichiers locaux statiques qui ne sont modifiés
    88      que rarement.</p>
    89  
    90      <p>Etant donné que <code class="module"><a href="./mod/mod_file_cache.html">mod_file_cache</a></code> constitue une
    91      implémentation de mise en cache relativement simple, mises à part les
    92      sections spécifiques sur les directives <code class="directive"><a href="./mod/mod_file_cache.html#cachefile">CacheFile</a></code> et <code class="directive"><a href="./mod/mod_file_cache.html#mmapfile">MMapFile</a></code>, les explications fournies
    93      dans ce guide concernent l'architecture de mise en cache du
    94      module <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code>.</p>
    95  
    96      <p>Pour tirer parti efficacement de ce document, les bases de HTTP doivent
    97      vous être familières, et vous devez avoir lu les sections
    98      <a href="urlmapping.html">Mise en correspondance des
    99      URLs avec le système de fichiers</a> et
   100      <a href="content-negotiation.html">Négociation sur le contenu</a>
   101      du guide de l'utilisateur.</p>
   102  
   103    </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
   104  <div class="section">
   105  <h2><a name="overview" id="overview">Vue d'ensemble de la mise en cache</a></h2>
   106  
   107      
   108  
   109      <table class="related"><tr><th>Modules Apparentés</th><th>Directives Apparentées</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code></li><li><code class="module"><a href="./mod/mod_mem_cache.html">mod_mem_cache</a></code></li><li><code class="module"><a href="./mod/mod_disk_cache.html">mod_disk_cache</a></code></li><li><code class="module"><a href="./mod/mod_file_cache.html">mod_file_cache</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_cache.html#cacheenable">CacheEnable</a></code></li><li><code class="directive"><a href="./mod/mod_cache.html#cachedisable">CacheDisable</a></code></li><li><code class="directive"><a href="./mod/mod_file_cache.html#cachefile">CacheFile</a></code></li><li><code class="directive"><a href="./mod/mod_file_cache.html#mmapfile">MMapFile</a></code></li><li><code class="directive"><a href="./mod/core.html#usecanonicalname">UseCanonicalName</a></code></li><li><code class="directive"><a href="./mod/mod_negotiation.html#cachenegotiateddocs">CacheNegotiatedDocs</a></code></li></ul></td></tr></table>
   110  
   111      <p><code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> peut faire intervenir deux phases
   112      principales pendant la durée de vie d'une requête.
   113      En premier lieu, <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code>
   114      est un module de mise en correspondance d'URLs, ce qui signifie que si
   115      une URL a été mise en cache, et que la version du cache de cette URL n'est
   116      pas arrivée à expiration, la requête sera traitée directement par
   117      <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code>.</p>
   118  
   119      <p>Ceci entraîne que toutes autres actions qui se dérouleraient normalement
   120      au cours du processus de traitement d'une requête -- par exemple un
   121      traitement effectué par <code class="module"><a href="./mod/mod_proxy.html">mod_proxy</a></code>, ou
   122      <code class="module"><a href="./mod/mod_rewrite.html">mod_rewrite</a></code> --
   123      ne seront pas effectuées. Mais c'est justement l'intérêt
   124      de la mise en cache préalable du contenu.</p>
   125  
   126      <p>Si l'URL ne se trouve pas dans le cache, <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code>
   127      va ajouter un <a href="filter.html">filtre</a> au traitement de la requête.
   128      Une fois le contenu de la réponse HTTP trouvé par Apache de manière classique, le
   129      filtre sera exécuté en même temps que le contenu sera transmis au client.
   130      S'il est déterminé que le contenu peut être mis en cache,
   131      il sera sauvegardé dans le cache pour une utilisation future.</p>
   132  
   133      <p>Si l'URL se trouve dans le cache, mais est arrivée à expiration,
   134      le filtre est quand-même ajouté, mais <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> va créer
   135      une requête conditionnelle en arrière-plan, pour déterminer si la version
   136      du cache est encore à jour. Si la version du cache est encore à jour, ses
   137      meta-informations seront mises à jour et la requête sera servie à partir du
   138      cache. Si la version du contenu n'est plus à jour, elle sera supprimée et le
   139      filtre va sauvegarder le contenu mis à jour dans le cache
   140      au moment où il sera servi.</p>
   141  
   142      <h3>Amélioration du taux de présence dans le cache</h3>
   143        
   144  
   145        <p>Lors de la mise en cache de contenu généré localement, le
   146        positionnement de la directive
   147        <code class="directive"><a href="./mod/core.html#usecanonicalname">UseCanonicalName</a></code> à
   148        <code>On</code> peut améliorer de manière spectaculaire le taux de
   149        présence dans le cache. Ceci est du au fait que le nom d'hôte de l'hôte
   150        virtuel qui sert le contenu constitue une partie de la clé de cache.
   151        Avec <code class="directive"><a href="./mod/core.html#usecanonicalname">UseCanonicalName</a></code> positionnée
   152        à <code>On</code>,
   153        les hôtes virtuels possédant plusieurs noms de serveur ou alias ne
   154        généreront pas d'entités de cache différentes, et le contenu sera mis en
   155        cache en faisant référence au nom d'hôte canonique.</p>
   156  
   157        <p>Les documents mis en cache ne seront servis qu'en réponse à des
   158        requêtes de type URL, car la mise en cache est effectuée lors de la phase
   159        de traduction de l'URL en nom de fichier.
   160        En général, cela n'a que peu d'effet, à moins que vous n'utilisiez les
   161        <a href="howto/ssi.html">Inclusions Côté Serveur (SSI)</a>;</p>
   162  
   163        <div class="example"><pre>&lt;!-- L'inclusion suivante peut être mise en cache --&gt;
   164  &lt;!--#include virtual="/footer.html" --&gt;
   165  
   166  &lt;!-- L'inclusion suivante ne peut pas être mise en cache --&gt;
   167  &lt;!--#include file="/path/to/footer.html" --&gt;</pre></div>
   168  
   169        <p>Si vous utilisez les SSI, et voulez bénéficier de la vitesse de
   170        service depuis le cache, vous devez utiliser des inclusions de type
   171        <code>virtual</code>.</p>
   172      
   173  
   174      <h3>Périodes d'expiration</h3>
   175        
   176  
   177        <p>La période d'expiration par défaut pour les entités du cache est
   178        d'une heure; elle peut cependant être facilement modifiée à l'aide de
   179        la directive <code class="directive"><a href="./mod/mod_cache.html#cachedefaultexpire">CacheDefaultExpire</a></code>. Cette valeur par
   180        défaut n'est utilisée que lorsque la source originale du contenu ne
   181        précise pas de période d'expiration ou d'heure de dernière
   182        modification.</p>
   183  
   184        <p>Si une réponse ne contient pas d'en-tête <code>Expires</code> mais
   185        inclut un en-tête <code>Last-Modified</code>, <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code>
   186        peut déduire une période d'expiration en se basant sur la valeur de la
   187        directive <code class="directive"><a href="./mod/mod_cache.html#cachelastmodifiedfactor">CacheLastModifiedFactor</a></code>.</p>
   188  
   189        <p>La période d'expiration des contenus locaux peut être ajustée finement
   190        en utilisant le module <code class="module"><a href="./mod/mod_expires.html">mod_expires</a></code>.</p>
   191  
   192        <p>On peut aussi contrôler la période d'expiration maximale en utilisant
   193        la directive <code class="directive"><a href="./mod/mod_cache.html#cachemaxexpire">CacheMaxExpire</a></code>.</p>
   194  
   195      
   196  
   197      <h3>Guide succinct des requêtes conditionnelles</h3>
   198        
   199  
   200        <p>Lorsqu'un contenu est arrivé à expiration dans le cache et fait
   201        l'objet d'une nouvelle demande d'accès, plutôt que traiter directement
   202        la requête originale, Apache préfère utiliser une
   203        requête conditionnelle.</p>
   204  
   205        <p>HTTP propose toute une panoplie d'en-têtes qui permettent à un client,
   206        ou au cache de distinguer les différentes versions d'un même contenu. Par
   207        exemple, si une ressource a été servie avec un en-tête "Etag:", il est
   208        possible de créer une requête conditionnelle contenant un en-tête
   209        "If-None-Match:". Si une ressource a été servie avec un en-tête
   210        "Last-Modified:", il est possible de créer une requête conditionnelle
   211        contenant un en-tête "If-Modified-Since:", etc....</p>
   212  
   213        <p>Lorsqu'une telle requête conditionnelle est créée, la reponse diffère
   214        selon que le contenu satisfait ou non aux conditions. Si une requête est
   215        créée avec un en-tête "If-Modified-Since:", et le contenu n'a pas été
   216        modifié depuis le moment indiqué dans la requête, alors un laconique
   217        "304 Not Modified" est retourné.</p>
   218  
   219        <p>Si le contenu a été modifié, il est servi comme si la requête n'avait
   220        pas été conditionnelle à l'origine.</p>
   221  
   222        <p>Les bénéfices des requêtes conditionnelles pour ce qui concerne la
   223        mise en cache sont de deux sortes. Premièrement, quand une telle requête
   224        est envoyée au processus en arrière-plan, il sera aisé de déterminer
   225        si le contenu que devra servir le processus en arrière-plan correspond
   226        au contenu stocké dans le cache, sans être obligé de transmettre la
   227        totalité de la ressource.</p>
   228  
   229        <p>Deuxièmement, les requêtes conditionnelles sont en général moins
   230        coûteuses en ressources pour le processus en arrière-plan.
   231        Pour ce qui est des fichiers
   232        statiques, l'action type est un appel à <code>stat()</code> ou un appel
   233        système similaire, pour déterminer si la taille du fichier ou sa date de
   234        modification ont changé. Ainsi, même si Apache met en cache le contenu
   235        local, un contenu arrivé à expiration pourra être servi plus rapidement
   236        depuis le cache s'il n'a pas été modifié, parce que la lecture depuis le
   237        cache est plus rapide que la lecture depuis le processus en arrière-plan
   238        (à comparer à la différence de vitesse entre la lecture depuis un cache en
   239        mémoire et la lecture depuis un disque).</p>
   240      
   241  
   242      <h3>Que peut-on mettre en cache ?</h3>
   243        
   244  
   245        <p>Comme mentionné plus haut, les deux styles de mise en cache d'Apache
   246        fonctionnent différemment; la mise en cache de
   247        <code class="module"><a href="./mod/mod_file_cache.html">mod_file_cache</a></code> conserve les contenus des fichiers
   248        tels qu'ils étaient au démarrage d'Apache. Quand une requête pour un
   249        fichier mis en cache par ce module est envoyée, elle est interceptée
   250        et le fichier mis en cache est servi.</p>
   251  
   252        <p>La mise en cache de <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code>, quant à elle, est
   253        plus complexe. Lors du traitement d'une requête, le module de mise en
   254        cache déterminera si le contenu peut être mis en cache, s'il ne l'a
   255        pas déjà été auparavant. Les conditions qui permettent de déterminer
   256        la possibilité de mise en cache d'une réponse sont :</p>
   257  
   258        <ol>
   259          <li>La mise en cache doit être activée pour cette URL. Voir les
   260  	directives <code class="directive"><a href="./mod/mod_cache.html#cacheenable">CacheEnable</a></code> et <code class="directive"><a href="./mod/mod_cache.html#cachedisable">CacheDisable</a></code>.</li>
   261  
   262          <li>La reponse doit avoir un code de statut HTTP de 200, 203, 300, 301
   263  	ou 410.</li>
   264  
   265          <li>La requête doit être de type HTTP GET.</li>
   266  
   267          <li>Si la requête contient un en-tête "Authorization:", la réponse ne
   268  	sera pas mise en cache.</li>
   269  
   270          <li>Si la réponse contient un en-tête "Authorization:", elle doit aussi
   271  	contenir une option "s-maxage", "must-revalidate" ou "public"
   272  	dans l'en-tête "Cache-Control:".</li>
   273  
   274          <li>Si l'URL contient une chaîne de paramètres
   275  	(provenant par exemple d'une méthode GET de formulaire HTML), elle ne
   276  	sera pas mise en cache à moins que la réponse ne spécifie une
   277  	condition d'expiration explicite via un en-tête "Expires:" ou la
   278  	directive max-age ou s-maxage de l'en-tête "Cache-Control:",
   279  	comme préconisé dans la RFC2616, sections 13.9 et 13.2.1.</li>
   280  
   281          <li>Si la réponse a un statut de 200 (OK), elle doit aussi contenir
   282  	au moins un des en-têtes "Etag", "Last-Modified" ou
   283          "Expires", ou la directive max-age ou s-maxage de l'en-tête
   284  	"Cache-Control:", à moins que la directive
   285          <code class="directive"><a href="./mod/mod_cache.html#cacheignorenolastmod">CacheIgnoreNoLastMod</a></code>
   286          ne précise d'autres contraintes.</li>
   287  
   288          <li>Si la réponse contient l'option "private" dans un en-tête
   289  	"Cache-Control:", elle ne sera pas mise en cache à moins que la
   290  	directive
   291          <code class="directive"><a href="./mod/mod_cache.html#cachestoreprivate">CacheStorePrivate</a></code>
   292  	ne précise d'autres contraintes.</li>
   293  
   294          <li>De même, si la réponse contient l'option "no-store" dans un en-tête
   295          "Cache-Control:", elle ne sera pas mise en cache à moins que la
   296  	directive
   297          <code class="directive"><a href="./mod/mod_cache.html#cachestorenostore">CacheStoreNoStore</a></code>
   298  	n'ait été utilisée.</li>
   299  
   300          <li>Une réponse ne sera pas mise en cache si elle comporte un en-tête
   301  	"Vary:" contenant le caractère "*" qui correspond à toute
   302  	chaîne de caractères.</li>
   303        </ol>
   304      
   305  
   306      <h3>Qu'est ce qui ne doit pas être mis en cache ?</h3>
   307        
   308  
   309        <p>En bref, tout contenu qui varie beaucoup avec le temps, ou en fonction
   310        de particularités de la requête qui ne sont pas couvertes par la
   311        négociation HTTP, ne doit pas être mis en cache.</p>
   312  
   313        <p>Un contenu dynamique qui varie en fonction de l'adresse IP du
   314        demandeur, ou qui est modifié toutes les 5 minutes, ne devra en général
   315        pas être mis en cache.</p>
   316  
   317        <p>Si par contre le contenu servi diffère en fonction de la valeur de
   318        divers en-têtes HTTP, il se peut que l'on puisse le mettre en cache
   319        intelligemment en utilisant un en-tête "Vary".</p>
   320      
   321  
   322      <h3>Contenu variable et/ou négocié</h3>
   323        
   324  
   325        <p>Si <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> reçoit une réponse contenant un en-tête
   326        "Vary", lorsqu'un contenu a été demandé par un processus d'arrière-plan,
   327        il va s'efforcer de la traiter intelligemment. Si possible,
   328        <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> va détecter les en-têtes attribués dans la
   329        réponse "Vary" à l'occasion des futures demandes, et servir une réponse
   330        correcte à partir du cache.</p>
   331  
   332        <p>Si par exemple, une réponse est reçue avec l'en-tête Vary suivant,</p>
   333  
   334        <div class="example"><p><code>
   335  Vary: negotiate,accept-language,accept-charset
   336        </code></p></div>
   337  
   338        <p><code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> ne servira aux demandeurs que le contenu
   339        mis en cache qui correspond au contenu des en-têtes accept-language et
   340        accept-charset de la requête originale.</p>
   341      
   342  
   343    </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
   344  <div class="section">
   345  <h2><a name="security" id="security">Considérations sur la sécurité</a></h2>
   346      
   347  
   348      <h3>Autorisation et contrôle d'accès</h3>
   349        
   350  
   351        <p>Utiliser <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> revient sensiblement à la même
   352        chose qu'avoir un mandataire inverse intégré (reverse-proxy). Les requêtes
   353        seront servies par le module de mise en cache sauf si ce dernier
   354        détermine qu'un processus d'arrière-plan doit être appelé. La mise en
   355        cache de ressources locales modifie considérablement le modèle de
   356        sécurité d'Apache.</p>
   357  
   358        <p>Comme le parcours de la hiérarchie d'un système de fichiers pour
   359        examiner le contenu d'éventuels fichiers
   360        <code>.htaccess</code> serait une opération très coûteuse en ressources,
   361        annulant partiellement de ce fait l'intérêt de la mise en cache
   362        (accélérer le traitement des requêtes),
   363        <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> ne se préoccupe pas de savoir s'il a
   364        l'autorisation de servir une entité mise en cache. En d'autres termes,
   365        si <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> a mis en cache un certain contenu, ce
   366        dernier sera servi à partir du cache tant qu'il ne sera pas arrivé à
   367        expiration.</p>
   368  
   369        <p>Si par exemple, votre configuration autorise l'accès à une ressource
   370        en fonction de l'adresse IP, vous devez vous assurer que ce contenu n'est
   371        pas mis en cache. Ceci est possible en utilisant la directive
   372        <code class="directive"><a href="./mod/mod_cache.html#cachedisable">CacheDisable</a></code>, ou le module
   373        <code class="module"><a href="./mod/mod_expires.html">mod_expires</a></code>. Livré à lui-même,
   374        <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> - pratiquement comme un mandataire inverse -
   375        mettrait en cache le contenu lors de son service, et le servirait ensuite
   376        à tout client, vers n'importe quelle adresse IP.</p>
   377      
   378  
   379      <h3>Piratages locaux</h3>
   380        
   381  
   382        <p>Etant donné que les requêtes des utilisateurs finaux peuvent être
   383        servies depuis le cache, ce dernier est une cible potentielle pour ceux
   384        qui veulent défigurer un contenu ou interférer avec lui. Il est important
   385        de garder à l'esprit que l'utilisateur sous lequel tourne Apache doit
   386        toujours avoir l'accès en écriture dans le cache. Ceci est en contraste
   387        total avec la recommandation usuelle d'interdire à l'utilisateur sous
   388        lequel tourne Apache
   389        l'accès en écriture à tout contenu.</p>
   390  
   391        <p>Si l'utilisateur sous lequel tourne Apache est compromis,
   392        par exemple à cause d'une
   393        faille de sécurité dans un processus CGI, il est possible que le cache
   394        fasse l'objet d'une attaque. Il est relativement aisé d'insérer ou de
   395        modifier une entité dans le cache en utilisant le module
   396        <code class="module"><a href="./mod/mod_disk_cache.html">mod_disk_cache</a></code>.</p>
   397  
   398        <p>Cela représente un risque relativement élévé par rapport aux autres
   399        types d'attaques qu'il est possible de mener sous l'utilisateur apache.
   400        Si vous utilisez <code class="module"><a href="./mod/mod_disk_cache.html">mod_disk_cache</a></code>, vous devez garder ceci
   401        à l'esprit : effectuez toujours les mises à jour d'Apache quand des
   402        correctifs de sécurité sont annoncés et exécutez les processus CGI sous
   403        un utilisateur autre qu'apache en utilisant
   404        <a href="suexec.html">suEXEC</a> dans la mesure du possible.</p>
   405  
   406      
   407  
   408      <h3>Empoisonnement du cache (Cache Poisoning)</h3>
   409        
   410  
   411        <p>Si vous utilisez Apache comme serveur mandataire avec mise en cache,
   412        vous vous exposez aussi à un éventuel "Empoisonnement du
   413        cache" (Cache poisoning). L'empoisonnement du cache est un terme général
   414        pour désigner les attaques au cours desquelles l'attaquant fait en sorte
   415        que le serveur mandataire renvoie un contenu incorrect (et souvent
   416        indésirable) en provenance du serveur d'arrière plan.
   417        </p>
   418  
   419        <p>Par exemple, si les serveur DNS qu'utilise votre système où tourne
   420        Apache sont vulnérables à l'empoisonnement du cache des DNS, un attaquant
   421        pourra contrôler vers où Apache se connecte lorsqu'il demande un contenu
   422        depuis le serveur d'origine.
   423        Un autre exemple est constitué par les attaques ainsi nommées
   424        "Dissimulation de requêtes HTTP" (HTTP request-smuggling).</p>
   425  
   426        <p>Ce document n'est pas le bon endroit pour une discussion approfondie
   427        à propos de la Dissimulation de requêtes HTTP (utilisez plutôt votre
   428        moteur de recherche favori); il est cependant important de savoir qu'il
   429        est possible d'élaborer une série de requêtes, et d'exploiter une
   430        vulnérabilité d'un serveur web d'origine de telle façon que l'attaquant
   431        puisse contrôler entièrement le contenu renvoyé par le mandataire.</p>
   432      
   433    </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
   434  <div class="section">
   435  <h2><a name="filehandle" id="filehandle">Mise en cache de la gestion de fichier</a></h2>
   436      
   437  
   438      <table class="related"><tr><th>Modules Apparentés</th><th>Directives Apparentées</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_file_cache.html">mod_file_cache</a></code></li><li><code class="module"><a href="./mod/mod_mem_cache.html">mod_mem_cache</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_file_cache.html#cachefile">CacheFile</a></code></li><li><code class="directive"><a href="./mod/mod_cache.html#cacheenable">CacheEnable</a></code></li><li><code class="directive"><a href="./mod/mod_cache.html#cachedisable">CacheDisable</a></code></li></ul></td></tr></table>
   439  
   440      <p>Le fait d'ouvrir un fichier peut en lui-même introduire un délai,
   441      en particulier dans les systèmes de fichiers répartis sur le réseau. Apache
   442      peut s'affranchir de ce délai en maintenant
   443      un cache des descripteurs de fichiers
   444      ouverts pour ce qui concerne les fichiers souvent accédés. Apache propose
   445      actuellement deux implémentations différentes de mise en cache de la
   446      gestion de fichier.</p>
   447  
   448      <h3>Directive CacheFile</h3>
   449        
   450  
   451        <p>La forme la plus élémentaire de mise en cache que propose Apache est
   452        fournie par le module <code class="module"><a href="./mod/mod_file_cache.html">mod_file_cache</a></code>.
   453        Plutôt que de mettre en cache le contenu des fichiers, ce cache maintient
   454        une table des descripteurs de fichiers ouverts. Les fichiers à mettre en
   455        cache de cette manière sont spécifiés dans le fichier de configuration
   456        en utilisant la directive
   457        <code class="directive"><a href="./mod/mod_file_cache.html#cachefile">CacheFile</a></code>.</p>
   458  
   459        <p>La directive
   460        <code class="directive"><a href="./mod/mod_file_cache.html#cachefile">CacheFile</a></code> demande à Apache
   461        d'ouvrir le fichier lors de son démarrage et de réutiliser le descripteur
   462        de fichier élaboré à cette occasion pour tous les
   463        accès ultérieurs à ce fichier.</p>
   464  
   465        <div class="example"><pre>CacheFile /usr/local/apache2/htdocs/index.html</pre></div>
   466  
   467        <p>Si vous avez l'intention de mettre en cache un grand nombre de
   468        fichiers de cette manière, vous devez vous assurer que le nombre maximum
   469        de fichiers ouverts par votre système d'exploitation est correctement
   470        défini.</p>
   471  
   472        <p>Bien que l'utilisation de la directive
   473        <code class="directive"><a href="./mod/mod_file_cache.html#cachefile">CacheFile</a></code>
   474        n'entraîne pas la mise en cache du contenu du fichier, cela ne signifie
   475        pas qu'en cas de modification du fichier pendant l'exécution d'Apache,
   476        ces changements seront pris en compte. Le fichier sera toujours servi
   477        dans l'état où il était quand Apache a démarré.</p>
   478  
   479        <p>Si le fichier est supprimé pendant l'exécution d'Apache, ce dernier
   480        continuera à maintenir un descripteur de fichier ouvert et à servir le
   481        fichier dans l'état où il était quand Apache a démarré. Cela signifie
   482        aussi habituellement que malgré le fait que le fichier ait été supprimé,
   483        et ne soit
   484        plus accessible par le système de fichiers, l'espace libéré ne sera
   485        restitué qu'à l'arrêt d'Apache quand le
   486        descripteur de fichier sera fermé.</p>
   487      
   488  
   489      <h3>Directive CacheEnable</h3>
   490        
   491  
   492        <p>Le module <code class="module"><a href="./mod/mod_mem_cache.html">mod_mem_cache</a></code> propose aussi son propre
   493        schéma de mise en cache de la gestion de fichier, qui peut être activé
   494        à l'aide de la directive
   495        <code class="directive"><a href="./mod/mod_cache.html#cacheenable">CacheEnable</a></code>.</p>
   496  
   497        <div class="example"><pre>CacheEnable fd /</pre></div>
   498  
   499        <p>A l'instar de tout ce qui concerne le module
   500        <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code>, ce mode de mise en cache de la gestion de
   501        fichier est intelligent, et les descripteurs ne seront plus maintenus
   502        lorsque le contenu mis en cache sera arrivé à expiration.</p>
   503      
   504    </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
   505  <div class="section">
   506  <h2><a name="inmemory" id="inmemory">Mise en cache en mémoire</a></h2>
   507      
   508  
   509       <table class="related"><tr><th>Modules Apparentés</th><th>Directives Apparentées</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_mem_cache.html">mod_mem_cache</a></code></li><li><code class="module"><a href="./mod/mod_file_cache.html">mod_file_cache</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_cache.html#cacheenable">CacheEnable</a></code></li><li><code class="directive"><a href="./mod/mod_cache.html#cachedisable">CacheDisable</a></code></li><li><code class="directive"><a href="./mod/mod_file_cache.html#mmapfile">MMapFile</a></code></li></ul></td></tr></table>
   510  
   511      <p>Servir un contenu directement depuis la mémoire système est
   512      universellement reconnu comme la méthode la plus rapide. Lire des fichiers
   513      depuis un contrôleur de disque ou pire, depuis un réseau distant est plus
   514      lent de plusieurs ordres de grandeur. Les contrôleurs de disque réalisent
   515      en général des opérations mécaniques, et l'accès au réseau est limité par la
   516      bande passante dont vous disposez. Par contre, les temps d'accès à la
   517      mémoire sont de l'ordre de la nano-seconde.</p>
   518  
   519      <p>Cependant la mémoire système n'est pas bon marché; à capacité égale,
   520      c'est de loin le type de stockage le plus coûteux et il est important de
   521      s'assurer qu'elle est utilisée efficacement. Le fait de mettre en cache
   522      des fichiers en mémoire diminue d'autant la quantité de mémoire système
   523      disponible. Comme nous le verrons plus loin, ce n'est pas un problème en
   524      soi dans le cas de la mise en cache par l'intermédiaire du système
   525      d'exploitation, mais si l'on utilise la mise en cache en mémoire propre à
   526      Apache, il faut prendre garde à ne pas allouer trop de mémoire au cache.
   527      Sinon le système sera contraint d'utiliser le swap, ce qui dégradera
   528      sensiblement les performances.</p>
   529  
   530      <h3>Mise en cache par l'intermédiaire du système d'exploitation</h3>
   531        
   532  
   533        <p>Dans la plupart des systèmes d'exploitation modernes, c'est le noyau
   534        qui gère directement la mise en cache en mémoire des données relatives
   535        aux fichiers. C'est une fonctionnalité puissante, et les systèmes
   536        d'exploitation s'en acquittent fort bien pour la plus grande partie.
   537        Considérons par exemple, dans le cas de Linux, la différence entre le
   538        temps nécessaire à la première lecture d'un fichier et le temps
   539        nécessaire à sa deuxième lecture;</p>
   540  
   541        <div class="example"><pre>colm@coroebus:~$ time cat testfile &gt; /dev/null
   542  real    0m0.065s
   543  user    0m0.000s
   544  sys     0m0.001s
   545  colm@coroebus:~$ time cat testfile &gt; /dev/null
   546  real    0m0.003s
   547  user    0m0.003s
   548  sys     0m0.000s</pre></div>
   549  
   550        <p>Même pour ce petit fichier, il y a une grande différence entre les
   551        temps nécessaires pour lire le fichier. Ceci est du au fait que le
   552        noyau a mis en cache le contenu du fichier en mémoire.</p>
   553  
   554        <p>Du fait de toujours pouvoir disposer de mémoire système, vous pouvez
   555        être assuré qu'il y aura de plus en plus de contenus de fichiers stockés
   556        dans ce cache. Ceci peut s'avérer une méthode de mise en cache en mémoire
   557        très efficace, et ne nécessite aucune configuration supplémentaire
   558        d'Apache.</p>
   559  
   560        <p>De plus, comme le système d'exploitation sait si des fichiers
   561        ont été
   562        supprimés ou modifiés, il peut effacer automatiquement des contenus de
   563        fichiers du cache lorsque cela s'avère nécessaire. Ceci constitue un gros
   564        avantage par rapport à la mise en cache en mémoire d'Apache qui n'a
   565        aucune possibilité de savoir si un fichier a été modifié.</p>
   566      
   567  
   568      <p>En dépit des performances et des avantages de la mise en cache
   569      automatique par le système d'exploitation, la mise en cache en mémoire
   570      peut être effectuée plus efficacement par Apache dans certaines
   571      circonstances.</p>
   572  
   573      <p>En premier lieu, un système d'exploitation ne peut mettre en cache que
   574      les fichiers dont il a connaissance. Si vous exécutez Apache en tant que
   575      serveur mandataire, les fichiers que vous mettez en cache ne sont pas
   576      stockés en local mais sur un serveur distant. Si vous voulez tout de même
   577      bénéficier de la vitesse incomparable procurée par la mise en cache en
   578      mémoire, la mise en cache propre à Apache sera nécessaire.</p>
   579  
   580      <h3>Mise en cache à l'aide de la directive MMapFile</h3>
   581        
   582  
   583        <p>La directive <code class="directive"><a href="./mod/mod_file_cache.html#mmapfile">MMapFile</a></code>
   584        fournie par le module <code class="module"><a href="./mod/mod_file_cache.html">mod_file_cache</a></code> vous permet de
   585        demander à Apache de charger un contenu de fichier statique en mémoire
   586        lors de son démarrage (à l'aide de l'appel système mmap). Apache
   587        utilisera le contenu chargé en mémoire pour satisfaire ultérieurement
   588        toutes les demandes d'accès à ce fichier.</p>
   589  
   590        <div class="example"><pre>MMapFile /usr/local/apache2/htdocs/index.html</pre></div>
   591  
   592        <p>Comme dans le cas de la directive
   593        <code class="directive"><a href="./mod/mod_file_cache.html#cachefile">CacheFile</a></code>, toute
   594        modification du fichier ne sera plus prise en compte par Apache une fois
   595        ce dernier démarré.</p>
   596  
   597        <p> La directive
   598        <code class="directive"><a href="./mod/mod_file_cache.html#mmapfile">MMapFile</a></code> ne gardant
   599        pas la trace de la quantité de mémoire qu'elle alloue, vous devez prendre
   600        garde de ne pas en abuser. Chaque processus enfant d'Apache utilisant
   601        sa propre réplique de la mémoire allouée, il est donc d'une importance
   602        critique de s'assurer que les fichiers chargés ne sont pas d'une taille
   603        trop importante afin d'épargner au système l'utilisation du swap.</p>
   604      
   605  
   606      <h3>Mise en cache à l'aide du module mod_mem_cache</h3>
   607        
   608  
   609        <p>Le module <code class="module"><a href="./mod/mod_mem_cache.html">mod_mem_cache</a></code> propose une mise en cache en
   610        mémoire intelligente du point de vue du protocole HTTP. Il utilise aussi
   611        directement le "tas" de la mémoire, ce qui signifie que même si
   612        <var>MMap</var> n'est pas supporté par votre système,
   613        <code class="module"><a href="./mod/mod_mem_cache.html">mod_mem_cache</a></code> pourra quand-même effectuer
   614        la mise en cache.</p>
   615  
   616        <p>La mise en cache selon cette méthode est activée comme suit :</p>
   617  
   618        <div class="example"><pre># Activation de la mise en cache en mémoire
   619  CacheEnable mem /
   620  
   621  # Limite la taille du cache à 1 Mégaoctet
   622  MCacheSize 1024</pre></div>
   623      
   624    </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
   625  <div class="section">
   626  <h2><a name="disk" id="disk">Mise en cache sur disque</a></h2>
   627      
   628  
   629       <table class="related"><tr><th>Modules Apparentés</th><th>Directives Apparentées</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_disk_cache.html">mod_disk_cache</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_cache.html#cacheenable">CacheEnable</a></code></li><li><code class="directive"><a href="./mod/mod_cache.html#cachedisable">CacheDisable</a></code></li></ul></td></tr></table>
   630  
   631      <p>Le module <code class="module"><a href="./mod/mod_disk_cache.html">mod_disk_cache</a></code> fournit un mécanisme de mise
   632      en cache sur disque au module <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code>. Comme dans le cas
   633      du module <code class="module"><a href="./mod/mod_mem_cache.html">mod_mem_cache</a></code>, cette mise en cache est
   634      intelligente et le contenu ne sera servi qu'à partir du cache tant qu'il
   635      sera considéré comme valide.</p>
   636  
   637      <p>Typiquement, le module sera configuré comme suit :</p>
   638  
   639      <div class="example"><pre>CacheRoot   /var/cache/apache/
   640  CacheEnable disk /
   641  CacheDirLevels 2
   642  CacheDirLength 1</pre></div>
   643  
   644      <p>Il est important de savoir que, les fichiers mis en cache étant stockés
   645      localement, la mise en cache par l'intermédiaire du système d'exploitation
   646      sera en général aussi appliquée à leurs accès. Si bien que même si les
   647      fichiers sont stockés sur disque, s'il font l'objet d'accès fréquents,
   648      il est probable que le système d'exploitation s'appliquera à ce qu'ils
   649      soient servis à partir de la mémoire.</p>
   650  
   651      <h3>Comprendre le stockage dans le cache</h3>
   652        
   653  
   654        <p>Pour stocker des entités dans le cache,
   655        le module <code class="module"><a href="./mod/mod_disk_cache.html">mod_disk_cache</a></code> crée une empreinte (hash) de 22
   656        caractères de l'URL qui a fait l'objet d'une requête. Cette empreinte
   657        comprend le nom d'hôte, le protocole, le port, le chemin et tout argument
   658        de type CGI associé à l'URL, afin d'être sur que plusieurs URLs
   659        n'interfèrent pas entre elles.</p>
   660  
   661        <p>Chaque position de l'empreinte peut contenir un caractère
   662        choisi parmi 64 caractères différents, il y a donc
   663        64^22 possibilités pour une empreinte. Par exemple, une URL peut posséder
   664        l'empreinte <code>xyTGxSMO2b68mBCykqkp1w</code>. Cette empreinte est
   665        utilisée pour préfixer les noms de fichiers spécifiques à cette URL à
   666        l'intérieur du cache; cependant, elle est tout d'abord placée dans les
   667        répertoires du cache selon les directives
   668        <code class="directive"><a href="./mod/mod_disk_cache.html#cachedirlevels">CacheDirLevels</a></code> et
   669        <code class="directive"><a href="./mod/mod_disk_cache.html#cachedirlength">CacheDirLength</a></code>.</p>
   670  
   671        <p>La directive
   672        <code class="directive"><a href="./mod/mod_disk_cache.html#cachedirlevels">CacheDirLevels</a></code>
   673        définit le nombre de niveaux de sous-répertoires, et
   674        <code class="directive"><a href="./mod/mod_disk_cache.html#cachedirlength">CacheDirLength</a></code>
   675        le nombre de caractères composant le nom des sous-répertoires. Dans
   676        l'exemple donné plus haut, l'empreinte se trouvera à :
   677        <code>/var/cache/apache/x/y/TGxSMO2b68mBCykqkp1w</code>.</p>
   678  
   679        <p>Cette technique a pour but principal de réduire le nombre de
   680        sous-répertoires ou de fichiers contenus dans un répertoire particulier,
   681        car le fonctionnement de la plupart des systèmes de fichiers est ralenti
   682        quand ce nombre augmente. Avec la valeur "1" pour la directive
   683        <code class="directive"><a href="./mod/mod_disk_cache.html#cachedirlength">CacheDirLength</a></code>,
   684        il peut y avoir au plus 64 sous-répertoires à un niveau quelconque.
   685        Avec la valeur "2", il peut y en avoir 64 * 64, etc...
   686        A moins d'avoir une bonne raison pour ne pas le faire, l'utilisation de
   687        la valeur "1" pour la directive
   688        <code class="directive"><a href="./mod/mod_disk_cache.html#cachedirlength">CacheDirLength</a></code>
   689        est recommandée.</p>
   690  
   691        <p>Le paramétrage de la directive
   692        <code class="directive"><a href="./mod/mod_disk_cache.html#cachedirlevels">CacheDirLevels</a></code>
   693        dépend du nombre de fichiers que vous pensez stocker dans le cache.
   694        Avec une valeur de "2" comme dans l'exemple donné plus haut,
   695        4096 sous-répertoires peuvent être créés au total. Avec 1 million de
   696        fichiers dans le cache, cela équivaut à environ 245 URLs mises en cache
   697        dans chaque répertoire.</p>
   698  
   699        <p>Chaque URL nécessite au moins deux fichiers dans le cache. Ce sont en
   700        général un fichier ".header", qui contient des meta-informations à propos
   701        de l'URL, comme la date de son arrivée à expiration,
   702        et un fichier ".data" qui est la copie exacte du contenu à servir.</p>
   703  
   704        <p>Dans le cas d'un contenu négocié via l'en-tête "Vary", un répertoire
   705        ".vary" sera créé pour l'URL en question. Ce répertoire contiendra de
   706        multiples fichiers ".data" correspondant aux différents contenus
   707        négociés.</p>
   708      
   709  
   710      <h3>Maintenance du cache sur disque</h3>
   711        
   712  
   713        <p>Bien que le module <code class="module"><a href="./mod/mod_disk_cache.html">mod_disk_cache</a></code> supprime un contenu
   714        du cache lorsqu'il est arrivé à expiration, il ne maintient aucune
   715        information à propos de la taille totale du cache ou de l'espace restant
   716        disponible.</p>
   717  
   718        <p>Par contre l'utilitaire
   719        <a href="programs/htcacheclean.html">htcacheclean</a> fourni avec Apache
   720        vous permet, comme son nom l'indique, de nettoyer le cache périodiquement.
   721        Déterminer la fréquence à laquelle lancer <a href="programs/htcacheclean.html">htcacheclean</a> et la taille souhaitée
   722        pour le cache est une tâche relativement complexe et il vous faudra de
   723        nombreux essais et erreurs pour arriver à sélectionner des valeurs
   724        optimales.</p>
   725  
   726        <p><a href="programs/htcacheclean.html">htcacheclean</a> opère selon deux
   727        modes. Il peut s'exécuter comme démon résident, ou être lancé
   728        périodiquement par cron. <a href="programs/htcacheclean.html">htcacheclean</a> peut mettre une heure
   729        ou plus pour traiter de très grands caches (plusieurs dizaines de
   730        Gigaoctets) et si vous l'exécutez à partir de cron, il vous est
   731        conseillé de déterminer la durée typique d'un traitement, afin d'éviter
   732        d'exécuter plusieurs instances à la fois.</p>
   733  
   734        <p class="figure">
   735        <img src="images/caching_fig1.gif" alt="" width="600" height="406" /><br />
   736        <a id="figure1" name="figure1"><dfn>Figure 1</dfn></a>: Croissance
   737        typique du cache / séquence de nettoyage.</p>
   738  
   739        <p>Comme <code class="module"><a href="./mod/mod_disk_cache.html">mod_disk_cache</a></code> ne tient pas compte de l'espace
   740        utilisé dans le cache, vous devez vous assurer que
   741        <a href="programs/htcacheclean.html">htcacheclean</a> est configuré de
   742        façon à laisser suffisamment d'"espace de croissance"
   743        à la suite d'un nettoyage.</p>
   744      
   745  
   746    </div></div>
   747  <div class="bottomlang">
   748  <p><span>Langues Disponibles: </span><a href="./en/caching.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
   749  <a href="./fr/caching.html" title="Français">&nbsp;fr&nbsp;</a> |
   750  <a href="./tr/caching.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
   751  </div><div class="top"><a href="#page-header"><img src="./images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Commentaires</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
   752  <script type="text/javascript"><!--//--><![CDATA[//><!--
   753  var comments_shortname = 'httpd';
   754  var comments_identifier = 'http://httpd.apache.org/docs/2.2/caching.html';
   755  (function(w, d) {
   756      if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
   757          d.write('<div id="comments_thread"><\/div>');
   758          var s = d.createElement('script');
   759          s.type = 'text/javascript';
   760          s.async = true;
   761          s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
   762          (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
   763      }
   764      else { 
   765          d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
   766      }
   767  })(window, document);
   768  //--><!]]></script></div><div id="footer">
   769  <p class="apache">Copyright 2017 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
   770  <p class="menu"><a href="./mod/">Modules</a> | <a href="./mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="./glossary.html">Glossaire</a> | <a href="./sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
   771  if (typeof(prettyPrint) !== 'undefined') {
   772      prettyPrint();
   773  }
   774  //--><!]]></script>
   775  </body></html>