caching.xml.fr revision afa53da4a75bf26660c339e17c2abfd9fec0454b
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor<?xml version="1.0" encoding="ISO-8859-1" ?>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor<!DOCTYPE manualpage SYSTEM "style/manualpage.dtd">
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor<?xml-stylesheet type="text/xsl" href="style/manual.fr.xsl"?>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor<!-- French translation : Lucien GENTIS -->
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor<!-- Reviewed by : Vincent Deffontaines -->
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis<!-- English Revision : 1210725 -->
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor<!--
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor Licensed to the Apache Software Foundation (ASF) under one or more
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor contributor license agreements. See the NOTICE file distributed with
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor this work for additional information regarding copyright ownership.
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor The ASF licenses this file to You under the Apache License, Version 2.0
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor (the "License"); you may not use this file except in compliance with
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor the License. You may obtain a copy of the License at
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor http://www.apache.org/licenses/LICENSE-2.0
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor Unless required by applicable law or agreed to in writing, software
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor distributed under the License is distributed on an "AS IS" BASIS,
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor See the License for the specific language governing permissions and
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor limitations under the License.
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor-->
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor<manualpage metafile="caching.xml.meta">
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <title>Guide de la mise en cache</title>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <summary>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <p>Ce document compl&egrave;te la documentation de r&eacute;f&eacute;rence des modules
78f97ce162b66a0dbfd7af4dcd9984f162569b04minfrin <module>mod_cache</module>, <module>mod_cache_disk</module>,
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <module>mod_file_cache</module> et du programme <a
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor href="programs/htcacheclean.html">htcacheclean</a>.
a9db829bebc5339233a3242f6742816425751d15lgentis Il d&eacute;crit l'utilisation des fonctionnalit&eacute;s de mise en
a9db829bebc5339233a3242f6742816425751d15lgentis cache du serveur HTTP Apache
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor pour acc&eacute;l&eacute;rer les services web et proxy, tout en &eacute;vitant les probl&egrave;mes
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor courants et les erreurs de configuration.</p>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor </summary>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <section id="introduction">
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <title>Introduction</title>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Le serveur HTTP Apache offre tout un ensemble de fonctionnalit&eacute;s
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis de mise en cache qui ont &eacute;t&eacute; con&ccedil;ues pour am&eacute;liorer les performances
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis du serveur de diff&eacute;rentes mani&egrave;res.</p>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <dl>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <dt>Mise en cache HTTP &agrave; trois &eacute;tats RFC2616</dt>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <dd><module>mod_cache</module> et son module de fournisseur
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <module>mod_cache_disk</module> proposent une mise en cache
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis intelligente de niveau HTTP. Le contenu proprement dit est
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis stock&eacute; dans le cache, et mod_cache vise &agrave; respecter tous les
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis en-t&ecirc;tes HTTP, ainsi que les options qui contr&ocirc;lent la mise en
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis cache du contenu comme d&eacute;crit dans la <a
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html">Section
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis 13 de la RFC2616</a>. <module>mod_cache</module> peut g&eacute;rer des
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis configurations de mise en cache simples, mais aussi complexes
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis comme dans les cas o&ugrave; vous avez &agrave; faire &agrave; des contenus mandat&eacute;s,
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis &agrave; des contenus locaux dynamiques, ou lorsque vous avez besoin
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis d'acc&eacute;l&eacute;rer l'acc&egrave;s aux fichiers locaux situ&eacute;s sur disque
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis suppos&eacute; lent.
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis </dd>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <dt>Mise en cache d'objets partag&eacute;s de forme cl&eacute;/valeur &agrave; deux
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis &eacute;tats</dt>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <dd>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <module>mod_socache</module> et ses modules de fournisseurs
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis proposent une mise en cache d'objets partag&eacute;s &agrave; base de
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis couples cl&eacute;/valeur de niveau serveur. Ces modules sont
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis con&ccedil;us pour la mise en cache de donn&eacute;es de bas niveau comme
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis les sessions SSL et les donn&eacute;es d'authentification. les
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis serveurs d'arri&egrave;re-plan permettent le stockage des donn&eacute;es
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis au niveau serveur en m&eacute;moire partag&eacute;e, ou au niveau
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis datacenter dans un cache comme memcache ou distcache.
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis </dd>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <dt>Mise en cache de fichiers sp&eacute;cialis&eacute;e</dt>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <dd>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <module>mod_file_cache</module> offre la possibilit&eacute; de
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis pr&eacute;charger des fichiers en m&eacute;moire au d&eacute;marrage du serveur,
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis et peut am&eacute;liorer les temps d'acc&egrave;s et sauvegarder les
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis gestionnaires de fichiers pour les fichiers qui font l'objet
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis d'acc&egrave;s fr&eacute;quents, &eacute;vitant ainsi d'avoir &agrave; acc&eacute;der au disque
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis &agrave; chaque requ&ecirc;te.
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis </dd>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis </dl>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <p>Pour tirer parti efficacement de ce document, les bases de HTTP doivent
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor vous &ecirc;tre famili&egrave;res, et vous devez avoir lu les sections
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <a href="urlmapping.html">Mise en correspondance des
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor URLs avec le syst&egrave;me de fichiers</a> et
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <a href="content-negotiation.html">N&eacute;gociation sur le contenu</a>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor du guide de l'utilisateur.</p>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor </section>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <section id="http-caching">
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <title>Mise en cache HTTP &agrave; trois &eacute;tats RFC2616</title>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <related>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <modulelist>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <module>mod_cache</module>
78f97ce162b66a0dbfd7af4dcd9984f162569b04minfrin <module>mod_cache_disk</module>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor </modulelist>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <directivelist>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <directive module="mod_cache">CacheEnable</directive>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <directive module="mod_cache">CacheDisable</directive>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <directive module="core">UseCanonicalName</directive>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <directive module="mod_negotiation">CacheNegotiatedDocs</directive>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor </directivelist>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor </related>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Le module <module>mod_cache</module> permet de tirer avantage du
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis m&eacute;canisme de mise en cache en ligne faisant partie
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis int&eacute;grante du protocole HTTP, et d&eacute;crit dans la <a
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html">section
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis 13 de la RFC2616</a>.</p>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>A la diff&eacute;rence d'un cache simple cl&eacute;/valeur &agrave; deux &eacute;tats o&ugrave; le
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis contenu est supprim&eacute; lorsqu'il est p&eacute;rim&eacute;, un cache HTTP comporte un
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis m&eacute;canisme permettant de conserver temporairement un contenu p&eacute;rim&eacute;,
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis de demander au serveur original si ce contenu p&eacute;rim&eacute; a &eacute;t&eacute; modifi&eacute;,
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis et dans le cas contraire de le rendre &agrave; nouveau valide.</p>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Une entr&eacute;e d'un cache HTTP peut se pr&eacute;senter sous un de ces trois
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis &eacute;tats :</p>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <dl>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <dt>Frais</dt>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <dd>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis Si un contenu est suffisamment r&eacute;cent (plus jeune que sa
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <strong>dur&eacute;e de fra&icirc;cheur</strong>), il est consid&eacute;r&eacute; comme
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <strong>frais</strong>. Un cache HTTP peut servir un contenu
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis frais sans avoir &agrave; demander quoi que ce soit au serveur
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis d'origine.
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis </dd>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <dt>P&eacute;rim&eacute;</dt>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <dd>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Si le contenu est trop ancien (plus vieux que sa
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <strong>dur&eacute;e de fra&icirc;cheur</strong>), il est consid&eacute;r&eacute; comme
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <strong>p&eacute;rim&eacute;</strong>. Un cache HTTP doit contacter le serveur
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis original pour v&eacute;rifier si le contenu, m&ecirc;me s'il est p&eacute;rim&eacute;, est
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis encore &agrave; jour avant de le servir au client. Soit le serveur
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis original va r&eacute;pondre en envoyant un contenu de remplacement si
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis le contenu p&eacute;rim&eacute; n'est plus &agrave; jour, soit dans le cas id&eacute;al il
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis renverra un code pour signaler au cache que le contenu est
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis encore &agrave; jour, et qu'il est inutile de le g&eacute;n&eacute;rer ou de
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis l'envoyer &agrave; nouveau. Le contenu repasse &agrave; l'&eacute;tat "frais" et le
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis cycle continue.</p>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Le protocole HTTP permet au cache de servir des donn&eacute;es
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis p&eacute;rim&eacute;es dans certaines circonstances, comme lorsqu'une
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis tentative de rafra&icirc;chir une entr&eacute;e depuis un serveur original
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis se solde par un &eacute;chec avec un code d'erreur 5xx, ou lorsqu'une
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis autre requ&ecirc;te est d&eacute;j&agrave; en train d'essayer de rafra&icirc;chir la m&ecirc;me
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis entr&eacute;e. Dans ces cas, un en-t&ecirc;te <code>Warning</code> est ajout&eacute;
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis &agrave; la r&eacute;ponse.</p>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis </dd>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <dt>Non Existent</dt>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <dd>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis Si le cache est plein, il se r&eacute;serve la possibilit&eacute; de supprimer
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis des entr&eacute;es pour faire de la place. Une entr&eacute;e peut &ecirc;tre
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis supprim&eacute;e &agrave; tout moment, qu'elle soit fra&icirc;che ou p&eacute;rim&eacute;e.
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis L'outil <a href="programs/htcacheclean.html">htcacheclean</a>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis peut &ecirc;tre utilis&eacute; &agrave; la demande, ou lanc&eacute; en tant que d&eacute;mon afin
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis de conserver la taille du cache ou le nombre d'inodes en de&ccedil;&agrave; de
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis valeurs sp&eacute;cifi&eacute;es. Cet outil essaie cependant de
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis supprimer les entr&eacute;es p&eacute;rim&eacute;es avant les entr&eacute;es fra&icirc;ches.
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis </dd>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis </dl>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Le fonctionnement d&eacute;taill&eacute; d'un cache HTTP est d&eacute;crit dans la <a
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html">Section
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis 13 de la RFC2616</a>.</p>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <section>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <title>Interaction avec le serveur</title>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Le module <module>mod_cache</module> interagit avec le serveur
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis &agrave; deux niveaux possibles en fonction de la directive <directive
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis module="mod_cache">CacheQuickHandler</directive> :
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis </p>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <dl>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <dt>Phase du gestionnaire rapide</dt>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <dd>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Cette phase se d&eacute;roule tr&egrave;s t&ocirc;t au cours du traitement de
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis la requ&ecirc;te, juste apr&egrave;s l'interpr&eacute;tation de cette derni&egrave;re. Si
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis le contenu se trouve dans le cache, il est servi imm&eacute;diatement
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis et pratiquement tout le reste du traitement de la requ&ecirc;te est
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis court-circuit&eacute;.</p>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Dans ce sc&eacute;nario, le cache se comporte comme s'il avait
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis &eacute;t&eacute; "boulonn&eacute;" &agrave; l'entr&eacute;e du serveur.</p>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Ce mode poss&egrave;de les meilleures performances car la
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis majorit&eacute; des traitements au niveau du serveur sont
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis court-circuit&eacute;s. Cependant, il court-circuite aussi les
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis phases d'authentification et d'autorisation du traitement
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis au niveau du serveur, et il doit donc &ecirc;tre utilis&eacute; avec
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis prudence lorsque que ces phases sont importantes.</p>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis </dd>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <dt>Phase du gestionnaire normal</dt>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <dd>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Cette phase se d&eacute;roule tr&egrave;s tard au cours du traitement
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis de la requ&ecirc;te, en fait apr&egrave;s toutes les phases de ce
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis traitement.</p>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Dans ce sc&eacute;nario, le cache se comporte comme s'il avait
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis &eacute;t&eacute; "boulonn&eacute;" &agrave; la sortie du serveur.</p>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Ce mode offre la plus grande souplesse, car il permet
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis de faire intervenir la mise en cache en un point
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis pr&eacute;cis&eacute;ment sp&eacute;cifi&eacute; de la cha&icirc;ne de filtrage, et le
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis contenu issu du cache peut &ecirc;tre filtr&eacute; ou personnalis&eacute;
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis avant d'&ecirc;tre servi au client.</p>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis </dd>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis </dl>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Si l'URL ne se trouve pas dans le cache,
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <module>mod_cache</module> ajoutera un <a
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis href="filter.html">filtre</a> &agrave; la cha&icirc;ne de filtrage afin
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis d'enregistrer la r&eacute;ponse dans le cache, puis passera la main
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis pour permettre le d&eacute;roulement normal de la suite du traitement
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis de la requ&ecirc;te. Si la mise en cache du contenu est autoris&eacute;e, il
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis sera enregistr&eacute; dans le cache pour pouvoir &ecirc;tre servi &agrave; nouveau
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis ; dans le cas contraire, le contenu sera ignor&eacute;.</p>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Si le contenu trouv&eacute; dans le cache est p&eacute;rim&eacute;, le module
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <module>mod_cache</module> convertit la requ&ecirc;te en
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <strong>requ&ecirc;te conditionnelle</strong>. Si le serveur original
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis renvoie une r&eacute;ponse normale, elle est enregistr&eacute;e dans le cache
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis en lieu et place du contenu p&eacute;rim&eacute;. Si le serveur original
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis renvoie une r&eacute;ponse "304 Not Modified", le contenu repasse &agrave;
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis l'&eacute;tat "frais" et est servi par le filtre au lieu d'&ecirc;tre
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis sauvegard&eacute;.</p>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis </section>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <section>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <title>Am&eacute;lioration du taux de pr&eacute;sence dans le cache</title>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Lorsqu'un serveur virtuel est connu sous la forme d'un des
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis nombreux alias du serveur, la d&eacute;finition de la directive
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <directive module="core">UseCanonicalName</directive> &agrave;
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <code>On</code> peut augmenter de mani&egrave;re significative le nombre
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis de correspondances positives dans le cache. Ceci est du au fait
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis que la cl&eacute; du cache contient le nom d'h&ocirc;te du serveur virtuel.
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor Avec <directive module="core">UseCanonicalName</directive> positionn&eacute;e
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor &agrave; <code>On</code>,
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor les h&ocirc;tes virtuels poss&eacute;dant plusieurs noms de serveur ou alias ne
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor g&eacute;n&eacute;reront pas d'entit&eacute;s de cache diff&eacute;rentes, et le contenu sera mis en
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor cache en faisant r&eacute;f&eacute;rence au nom d'h&ocirc;te canonique.</p>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor </section>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <section>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <title>Dur&eacute;e de fra&icirc;cheur</title>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Un contenu bien form&eacute; destin&eacute; &agrave; &ecirc;tre mis en cache doit d&eacute;clarer
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis explicitement une dur&eacute;e de fra&icirc;cheur via les champs
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <code>max-age</code> ou <code>s-maxage</code> de l'en-t&ecirc;te
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <code>Cache-Control</code>, ou en incluant un en-t&ecirc;te
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <code>Expires</code>.</p>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>De plus, un client peut passer outre la dur&eacute;e de fra&icirc;cheur
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis d&eacute;finie pour le serveur original en ajoutant son propre en-t&ecirc;te
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <code>Cache-Control</code> &agrave; la requ&ecirc;te. Dans ce cas, c'est la
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis dur&eacute;e de fra&icirc;cheur la plus basse entre la requ&ecirc;te et la r&eacute;ponse
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis qui l'emporte.</p>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Lorsque cette dur&eacute;e de fra&icirc;cheur est absente de la requ&ecirc;te ou
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis de la r&eacute;ponse, une dur&eacute;e de fra&icirc;cheur par d&eacute;faut s'applique. La
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis dur&eacute;e de fra&icirc;cheur par d&eacute;faut des entr&eacute;es du cache est d'une heure
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis ; elle peut cependant &ecirc;tre facilement modifi&eacute;e &agrave; l'aide de
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor la directive <directive
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis module="mod_cache">CacheDefaultExpire</directive>.</p>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <p>Si une r&eacute;ponse ne contient pas d'en-t&ecirc;te <code>Expires</code> mais
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor inclut un en-t&ecirc;te <code>Last-Modified</code>, <module>mod_cache</module>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis peut d&eacute;duire une dur&eacute;e de fra&icirc;cheur en se basant sur une
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis heuristique, qui peut &ecirc;tre contr&ocirc;l&eacute;e via la directive <directive
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor module="mod_cache">CacheLastModifiedFactor</directive>.</p>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Pour les contenus locaux, ou les contenus distants qui ne
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis sp&eacute;cifient pas leur propre en-t&ecirc;te <code>Expires</code>,
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <module>mod_expires</module> permet de r&eacute;gler finement la dur&eacute;e de
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis fra&icirc;cheur via les param&egrave;tres <code>max-age</code> et
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <code>Expires</code>.</p>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>On peut aussi contr&ocirc;ler la dur&eacute;e de fra&icirc;cheur maximale en utilisant
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor la directive <directive module="mod_cache">CacheMaxExpire</directive>.</p>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor </section>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <section>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <title>Guide succinct des requ&ecirc;tes conditionnelles</title>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Lorsqu'un contenu du cache est p&eacute;rim&eacute;, httpd modifie la requ&ecirc;te
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis pour en faire une requ&ecirc;te conditionnelle</p>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Lorsque la r&eacute;ponse originale du cache contient un en-t&ecirc;te
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <code>ETag</code>, <module>mod_cache</module> ajoute un en-t&ecirc;te
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <code>If-None-Match</code> &agrave; la requ&ecirc;te envoy&eacute;e au serveur
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis d'origine. Lorsque la r&eacute;ponse originale du cache contient un en-t&ecirc;te
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <code>Last-Modified</code>, <module>mod_cache</module> ajoute un en-t&ecirc;te
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <code>If-Modified-Since</code> &agrave; la requ&ecirc;te envoy&eacute;e au serveur
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis d'origine. Dans ces deux cas, la requ&ecirc;te devient une requ&ecirc;te
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <strong>conditionnelle</strong>.</p>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Lorsqu'un serveur d'origine re&ccedil;oit une requ&ecirc;te conditionnelle,
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis il v&eacute;rifie si le param&egrave;tre Etag ou Last-Modified a &eacute;t&eacute; modifi&eacute; en
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis fonction des param&egrave;tres de la requ&ecirc;te. Si ce n'est pas le cas, il
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis r&eacute;pondra avec le message lapidaire "304 Not Modified". Ceci
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis informe le cache que le contenu est p&eacute;rim&eacute; mais encore &agrave; jour, et
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis peut &ecirc;tre utilis&eacute; tel quel pour les prochaines requ&ecirc;tes jusqu'&agrave; ce
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis qu'il atteigne &agrave; nouveau sa date de p&eacute;remption.</p>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Si le contenu a &eacute;t&eacute; modifi&eacute;, il est servi comme s'il s'agissait
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis d'une requ&ecirc;te normale et non conditionnelle.</p>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Les requ&ecirc;tes conditionnelles offrent deux avantages. D'une
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis part, il est facile de d&eacute;terminer si le contenu du serveur
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis d'origine correspond &agrave; celui situ&eacute;
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis dans le cache, et ainsi d'&eacute;conomiser la consommation de ressources
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis n&eacute;cessaire au transfert du contenu dans son ensemble.</p>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>D'autre part, un serveur d'origine bien con&ccedil;u sera configur&eacute; de
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis telle mani&egrave;re que les requ&ecirc;tes conditionnelles n&eacute;cessitent pour
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis leur production bien moins de ressources qu'une r&eacute;ponse compl&egrave;te.
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis Dans le cas des fichiers statiques, il suffit en g&eacute;n&eacute;ral d'un
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis appel syst&egrave;me de type <code>stat()</code> ou similaire pour
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis d&eacute;terminer si la taille ou la date de modification du fichier a
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis &eacute;t&eacute; modifi&eacute;e. Ainsi, m&ecirc;me un contenu local pourra &ecirc;tre servi plus
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis rapidement depuis le cache s'il n'a pas &eacute;t&eacute; modifi&eacute;.</p>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Il serait souhaitable que tous les serveurs d'origine
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis supportent les requ&ecirc;tes conditionnelles, car dans le cas
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis contraire, ils r&eacute;pondent comme s'il s'agissait d'une requ&ecirc;te
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis normale, et le cache r&eacute;pond comme si le contenu avait &eacute;t&eacute;
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis modifi&eacute; et enregistre ce dernier. Le cache se comporte alors
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis comme un simple cache &agrave; deux &eacute;tat, o&ugrave; le contenu est servi s'il
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis est &agrave; jour, ou supprim&eacute; dans le cas contraire.</p>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor </section>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <section>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <title>Que peut-on mettre en cache ?</title>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>La liste compl&egrave;te des conditions n&eacute;cessaires pour qu'une
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis r&eacute;ponse puisse &ecirc;tre enregistr&eacute;e dans un cache HTTP est fournie
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis dans la <a
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html#sec13.4">section
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis 13.4 Response Cacheability de la RFC2616</a>, et peut se r&eacute;sumer
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis ainsi :</p>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <ol>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <li>La mise en cache doit &ecirc;tre activ&eacute;e pour cette URL. Voir les
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor directives <directive
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor module="mod_cache">CacheEnable</directive> et <directive
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor module="mod_cache">CacheDisable</directive>.</li>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <li>La reponse doit avoir un code de statut HTTP de 200, 203, 300, 301
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor ou 410.</li>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <li>La requ&ecirc;te doit &ecirc;tre de type HTTP GET.</li>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <li>Si la r&eacute;ponse contient un en-t&ecirc;te "Authorization:", elle doit aussi
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor contenir une option "s-maxage", "must-revalidate" ou "public"
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor dans l'en-t&ecirc;te "Cache-Control:".</li>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
ea08352ef148842f2db8c00add52444487c0f638lgentis <li>Si l'URL contient une cha&icirc;ne de requ&ecirc;te
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor (provenant par exemple d'une m&eacute;thode GET de formulaire HTML), elle ne
ea08352ef148842f2db8c00add52444487c0f638lgentis sera pas mise en cache, &agrave; moins que la r&eacute;ponse ne
ea08352ef148842f2db8c00add52444487c0f638lgentis sp&eacute;cifie explicitement un d&eacute;lai d'expiration via un
ea08352ef148842f2db8c00add52444487c0f638lgentis en-t&ecirc;te "Expires:" ou une directive max-age ou s-maxage de
ea08352ef148842f2db8c00add52444487c0f638lgentis l'en-t&ecirc;te "Cache-Control:" comme indiqu&eacute; dans les
ea08352ef148842f2db8c00add52444487c0f638lgentis sections 13.2.1. et 13.9 de la RFC2616.</li>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <li>Si la r&eacute;ponse a un statut de 200 (OK), elle doit aussi contenir
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor au moins un des en-t&ecirc;tes "Etag", "Last-Modified" ou
ea08352ef148842f2db8c00add52444487c0f638lgentis "Expires", ou une directive max-age ou s-maxage de
ea08352ef148842f2db8c00add52444487c0f638lgentis l'en-t&ecirc;te "Cache-Control:", &agrave; moins que la directive
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <directive module="mod_cache">CacheIgnoreNoLastMod</directive>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor ne pr&eacute;cise d'autres contraintes.</li>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <li>Si la r&eacute;ponse contient l'option "private" dans un en-t&ecirc;te
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor "Cache-Control:", elle ne sera pas mise en cache &agrave; moins que la
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor directive
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <directive module="mod_cache">CacheStorePrivate</directive>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor ne pr&eacute;cise d'autres contraintes.</li>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <li>De m&ecirc;me, si la r&eacute;ponse contient l'option "no-store" dans un en-t&ecirc;te
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor "Cache-Control:", elle ne sera pas mise en cache &agrave; moins que la
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor directive
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <directive module="mod_cache">CacheStoreNoStore</directive>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor n'ait &eacute;t&eacute; utilis&eacute;e.</li>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <li>Une r&eacute;ponse ne sera pas mise en cache si elle comporte un en-t&ecirc;te
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor "Vary:" contenant le caract&egrave;re "*" qui correspond &agrave; toute
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor cha&icirc;ne de caract&egrave;res.</li>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor </ol>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor </section>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <section>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <title>Qu'est ce qui ne doit pas &ecirc;tre mis en cache ?</title>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Le client qui cr&eacute;e la requ&ecirc;te ou le serveur d'origine qui
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis g&eacute;n&egrave;re la r&eacute;ponse doit &ecirc;tre &agrave; m&ecirc;me de d&eacute;terminer si le contenu
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis doit pouvoir &ecirc;tre mis en cache ou non en d&eacute;finissant correctement
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis l'en-t&ecirc;te <code>Cache-Control</code>, et
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <module>mod_cache</module> sera alors en mesure de satisfaire les
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis souhaits du client ou du serveur de mani&egrave;re appropri&eacute;e.
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis </p>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Les contenus qui varient au cours du temps, ou en fonction de
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis particularit&eacute;s de la requ&ecirc;te non prises en compte par la
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis n&eacute;gociation HTTP ne doivent pas &ecirc;tre mis en cache. Ce type de
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis contenu doit se d&eacute;clarer lui-m&ecirc;me "&agrave; ne pas mettre en cache" via
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis l'en-t&ecirc;te <code>Cache-Control</code>.</p>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Si le contenu change souvent, suite par exemple &agrave; une dur&eacute;e de
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis fra&icirc;cheur de l'ordre de la minute ou de la seconde, il peut tout
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis de m&ecirc;me &ecirc;tre mis en cache, mais il est alors fortement souhaitable
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis que le serveur d'origine supporte correctement les
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <strong>requ&ecirc;tes conditionnelles</strong> afin que des r&eacute;ponses
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis compl&egrave;tes ne soient pas syst&eacute;matiquement g&eacute;n&eacute;r&eacute;es.</p>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Un contenu qui varie en fonction d'en-t&ecirc;tes de requ&ecirc;te fournis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis par le client peut &ecirc;tre mis en cache, sous r&eacute;serve d'une
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis utilisation appropri&eacute;e de l'en-t&ecirc;te de r&eacute;ponse <code>Vary</code>.</p>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor </section>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <section>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <title>Contenu variable et/ou n&eacute;goci&eacute;</title>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Lorsque le serveur d'origine est configur&eacute; pour servir des
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis contenus diff&eacute;rents en fonction de la valeur de certains en-t&ecirc;tes
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis de la requ&ecirc;te, par exemple pour servir une ressource en plusieurs
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis langages &agrave; partir d'une seule URL, le m&eacute;canisme de mise en cache
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis d'HTTP permet de mettre en cache plusieurs variantes de la m&ecirc;me
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis page &agrave; partir d'une seule URL.</p>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Pour y parvenir, le serveur d'origine ajoute un en-t&ecirc;te
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <code>Vary</code> pour indiquer quels en-t&ecirc;tes doivent &ecirc;tre pris
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis en compte par un cache pour d&eacute;terminer si deux variantes sont
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis diff&eacute;rentes l'une de l'autre.</p>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <p>Si par exemple, une r&eacute;ponse est re&ccedil;ue avec l'en-t&ecirc;te Vary suivant,</p>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <example>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzorVary: negotiate,accept-language,accept-charset
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor </example>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <p><module>mod_cache</module> ne servira aux demandeurs que le contenu
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor mis en cache qui correspond au contenu des en-t&ecirc;tes accept-language et
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor accept-charset de la requ&ecirc;te originale.</p>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Plusieurs variantes d'un contenu peuvent &ecirc;tre mises en cache
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis simultan&eacute;ment ; <module>mod_cache</module> utilise l'en-t&ecirc;te
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <code>Vary</code> et les valeurs correspondantes des en-t&ecirc;tes de
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis la requ&ecirc;te sp&eacute;cifi&eacute;s dans ce dernier pour
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis d&eacute;terminer quelle variante doit &ecirc;tre servie au client.</p>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor </section>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <section id="disk">
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <title>Mise en cache sur disque</title>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Le module <module>mod_cache</module> s'appuie sur des
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis impl&eacute;mentations de stockage en arri&egrave;re-plan sp&eacute;cifiques pour g&eacute;rer
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis le cache ; &agrave; ce titre, <module>mod_cache_disk</module> fournit le
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis support de la mise en cache sur disque.</p>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>En g&eacute;n&eacute;ral, le module se configure comme suit :</p>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <example>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentisCacheRoot /var/cache/apache/<br />
afa53da4a75bf26660c339e17c2abfd9fec0454blgentisCacheEnable disk /<br />
afa53da4a75bf26660c339e17c2abfd9fec0454blgentisCacheDirLevels 2<br />
afa53da4a75bf26660c339e17c2abfd9fec0454blgentisCacheDirLength 1
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis </example>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Il est important de savoir que, les fichiers mis en cache &eacute;tant stock&eacute;s
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis localement, la mise en cache par l'interm&eacute;diaire du syst&egrave;me d'exploitation
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis sera en g&eacute;n&eacute;ral aussi appliqu&eacute;e &agrave; leurs acc&egrave;s. Si bien que m&ecirc;me si les
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis fichiers sont stock&eacute;s sur disque, s'il font l'objet d'acc&egrave;s fr&eacute;quents,
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis il est probable que le syst&egrave;me d'exploitation s'appliquera &agrave; ce qu'ils
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis soient servis &agrave; partir de la m&eacute;moire.</p>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor </section>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <section>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <title>Comprendre le stockage dans le cache</title>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Pour stocker des entit&eacute;s dans le cache,
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis le module <module>mod_cache_disk</module> cr&eacute;e une empreinte (hash) de 22
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis caract&egrave;res de l'URL qui a fait l'objet d'une requ&ecirc;te. Cette empreinte
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis comprend le nom d'h&ocirc;te, le protocole, le port, le chemin et tout argument
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis de type CGI associ&eacute; &agrave; l'URL, ainsi que les &eacute;l&eacute;ments
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis sp&eacute;cifi&eacute;s dans l'en-t&ecirc;te Vary afin d'&ecirc;tre sur que plusieurs URLs
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis n'interf&egrave;rent pas entre elles.</p>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Chaque position de l'empreinte peut contenir un caract&egrave;re
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis choisi parmi 64 caract&egrave;res diff&eacute;rents, il y a donc
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis 64^22 possibilit&eacute;s pour une empreinte. Par exemple, une URL peut poss&eacute;der
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis l'empreinte <code>xyTGxSMO2b68mBCykqkp1w</code>. Cette empreinte est
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis utilis&eacute;e pour pr&eacute;fixer les noms de fichiers sp&eacute;cifiques &agrave; cette URL &agrave;
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis l'int&eacute;rieur du cache; cependant, elle est tout d'abord plac&eacute;e dans les
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis r&eacute;pertoires du cache selon les directives
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <directive module="mod_cache_disk">CacheDirLevels</directive> et
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <directive module="mod_cache_disk">CacheDirLength</directive>.</p>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>La directive
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <directive module="mod_cache_disk">CacheDirLevels</directive>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis d&eacute;finit le nombre de niveaux de sous-r&eacute;pertoires, et
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <directive module="mod_cache_disk">CacheDirLength</directive>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis le nombre de caract&egrave;res composant le nom des sous-r&eacute;pertoires. Dans
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis l'exemple donn&eacute; plus haut, l'empreinte se trouvera &agrave; :
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <code>/var/cache/apache/x/y/TGxSMO2b68mBCykqkp1w</code>.</p>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Cette technique a pour but principal de r&eacute;duire le nombre de
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis sous-r&eacute;pertoires ou de fichiers contenus dans un r&eacute;pertoire particulier,
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis car le fonctionnement de la plupart des syst&egrave;mes de fichiers est ralenti
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis quand ce nombre augmente. Avec la valeur "1" pour la directive
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <directive module="mod_cache_disk">CacheDirLength</directive>,
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis il peut y avoir au plus 64 sous-r&eacute;pertoires &agrave; un niveau quelconque.
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis Avec la valeur "2", il peut y en avoir 64 * 64, etc...
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis A moins d'avoir une bonne raison pour ne pas le faire, l'utilisation de
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis la valeur "1" pour la directive
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <directive module="mod_cache_disk">CacheDirLength</directive>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis est recommand&eacute;e.</p>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Le param&eacute;trage de la directive
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <directive module="mod_cache_disk">CacheDirLevels</directive>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis d&eacute;pend du nombre de fichiers que vous pensez stocker dans le cache.
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis Avec une valeur de "2" comme dans l'exemple donn&eacute; plus haut,
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis 4096 sous-r&eacute;pertoires peuvent &ecirc;tre cr&eacute;&eacute;s au total. Avec 1 million de
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis fichiers dans le cache, cela &eacute;quivaut &agrave; environ 245 URLs mises en cache
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis dans chaque r&eacute;pertoire.</p>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Chaque URL n&eacute;cessite au moins deux fichiers dans le cache. Ce sont en
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis g&eacute;n&eacute;ral un fichier ".header", qui contient des meta-informations &agrave; propos
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis de l'URL, comme la date de son arriv&eacute;e &agrave; expiration,
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis et un fichier ".data" qui est la copie exacte du contenu &agrave; servir.</p>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Dans le cas d'un contenu n&eacute;goci&eacute; via l'en-t&ecirc;te "Vary", un r&eacute;pertoire
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis ".vary" sera cr&eacute;&eacute; pour l'URL en question. Ce r&eacute;pertoire contiendra de
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis multiples fichiers ".data" correspondant aux diff&eacute;rents contenus
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis n&eacute;goci&eacute;s.</p>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor </section>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <section>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <title>Maintenance du cache sur disque</title>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Le module <module>mod_cache_disk</module> n'effectue aucune
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis r&eacute;gulation de l'espace disque utilis&eacute; par le cache, mais s'il
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis s'arr&ecirc;te en douceur en cas d'erreur disque et se comporte alors
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis comme si le cache n'avait jamais exist&eacute;.</p>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Par contre l'utilitaire
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <a href="programs/htcacheclean.html">htcacheclean</a> fourni avec
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis httpd
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis vous permet de nettoyer le cache p&eacute;riodiquement.
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis D&eacute;terminer la fr&eacute;quence &agrave; laquelle lancer <a
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis href="programs/htcacheclean.html">htcacheclean</a> et la taille souhait&eacute;e
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis pour le cache est une t&acirc;che relativement complexe et il vous faudra de
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis nombreux essais et erreurs pour arriver &agrave; s&eacute;lectionner des valeurs
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis optimales.</p>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p><a href="programs/htcacheclean.html">htcacheclean</a> op&egrave;re selon deux
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis modes. Il peut s'ex&eacute;cuter comme d&eacute;mon r&eacute;sident, ou &ecirc;tre lanc&eacute;
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis p&eacute;riodiquement par cron. <a
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis href="programs/htcacheclean.html">htcacheclean</a> peut mettre une heure
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis ou plus pour traiter de tr&egrave;s grands caches (plusieurs dizaines de
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis Gigaoctets) et si vous l'ex&eacute;cutez &agrave; partir de cron, il vous est
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis conseill&eacute; de d&eacute;terminer la dur&eacute;e typique d'un traitement, afin d'&eacute;viter
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis d'ex&eacute;cuter plusieurs instances &agrave; la fois.</p>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Il est aussi conseill&eacute; d'attribuer un niveau de priorit&eacute; "nice"
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis appropri&eacute; &agrave; htcacheclean de fa&ccedil;on &agrave; ce qu'il n'effectue pas trop
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis d'acc&egrave;s disque pendant le fonctionnement du serveur.</p>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p class="figure">
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <img src="images/caching_fig1.gif" alt="" width="600"
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis height="406" /><br />
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <a id="figure1" name="figure1"><dfn>Figure 1</dfn></a>: Croissance
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis typique du cache / s&eacute;quence de nettoyage.</p>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Comme <module>mod_cache_disk</module> ne tient pas compte de l'espace
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis utilis&eacute; dans le cache, vous devez vous assurer que
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <a href="programs/htcacheclean.html">htcacheclean</a> est configur&eacute; de
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis fa&ccedil;on &agrave; laisser suffisamment d'"espace de croissance"
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis &agrave; la suite d'un nettoyage.</p>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor </section>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor </section>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <section id="socache-caching">
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <title>Mise en cache d'objets partag&eacute;s &agrave; deux &eacute;tats de forme
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis cl&eacute;/valeur</title>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <related>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <modulelist>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <module>mod_authn_socache</module>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <module>mod_socache_dbm</module>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <module>mod_socache_dc</module>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <module>mod_socache_memcache</module>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <module>mod_socache_shmcb</module>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <module>mod_ssl</module>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor </modulelist>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <directivelist>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <directive module="mod_authn_socache">AuthnCacheSOCache</directive>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <directive module="mod_ssl">SSLSessionCache</directive>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <directive module="mod_ssl">SSLStaplingCache</directive>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis </directivelist>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor </related>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Le serveur HTTP Apache fournit un cache d'objets partag&eacute;s de bas
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis niveau pour la mise en cache d'informations comme les sessions SSL
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis ou les donn&eacute;es d'authentification dans l'interface <a
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis href="socache.html">socache</a>.</p>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Pour chaque impl&eacute;mentation un module suppl&eacute;mentaire est fourni
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis qui offre les services d'arri&egrave;re-plan suivants :</p>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <dl>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <dt><module>mod_socache_dbm</module></dt>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <dd>Cache d'objets partag&eacute;s bas&eacute; sur DBM.</dd>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <dt><module>mod_socache_dc</module></dt>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <dd>Cache d'objets partag&eacute;s bas&eacute; sur Distcache.</dd>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <dt><module>mod_socache_memcache</module></dt>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <dd>Cache d'objets partag&eacute;s bas&eacute; sur Memcache.</dd>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <dt><module>mod_socache_shmcb</module></dt>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <dd>Cache d'objets partag&eacute;s bas&eacute; sur la m&eacute;moire partag&eacute;e.</dd>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis </dl>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <section id="mod_authn_socache-caching">
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <title>Mise en cache des donn&eacute;es d'authentification</title>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <related>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <modulelist>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <module>mod_authn_socache</module>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis </modulelist>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <directivelist>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <directive module="mod_authn_socache">AuthnCacheSOCache</directive>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis </directivelist>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis </related>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Le module <module>mod_authn_socache</module> permet la mise en
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis cache des donn&eacute;es issues d'une authentification, diminuant ainsi
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis la charge des serveurs d'authentification en arri&egrave;re-plan.</p>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis </section>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <section id="mod_ssl-caching">
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <title>Mise en cache des sessions SSL</title>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <related>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <modulelist>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <module>mod_ssl</module>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis </modulelist>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <directivelist>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <directive module="mod_ssl">SSLSessionCache</directive>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <directive module="mod_ssl">SSLStaplingCache</directive>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis </directivelist>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis </related>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Le module <module>mod_ssl</module> utilise l'interface
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <code>socache</code> pour fournir un cache de session et un cache
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis de base.</p>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor </section>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor </section>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <section id="file-caching">
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <title>Mise en cache &agrave; base de fichiers sp&eacute;cialis&eacute;s</title>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <related>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <modulelist>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <module>mod_file_cache</module>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor </modulelist>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <directivelist>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <directive module="mod_file_cache">CacheFile</directive>
a1066e2786436743f6791963fb266282c25e1e99lgentis <directive module="mod_file_cache">MMapFile</directive>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor </directivelist>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor </related>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Sur les plateformes o&ugrave; le syst&egrave;me de fichiers peut &ecirc;tre lent, ou
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis lorsque les descripteurs de fichiers sont gourmands en ressources,
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis il est possible de pr&eacute;charger des fichiers en m&eacute;moire au d&eacute;marrage
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis du serveur.</p>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Sur les syst&egrave;mes o&ugrave; l'ouverture des fichiers est lente, il est
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis possible d'ouvrir le fichier au d&eacute;marrage du serveur et de mettre en
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis cache le descripteur de fichier. Ces options peuvent vous aider sur
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis les syst&egrave;mes o&ugrave; l'acc&egrave;s aux fichiers statiques est lent.</p>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <section id="filehandle">
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <title>Mise en cache des descripteurs de fichier</title>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Le processus d'ouverture d'un fichier peut &ecirc;tre en soi une
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis source de ralentissement, en particulier sur les syst&egrave;mes de
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis fichiers sur le r&eacute;seau. httpd permet d'&eacute;viter ce ralentissement en
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis maintenant un cache des descripteurs de fichiers ouverts pour les
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis fichiers souvent servis. Actuellement, httpd fournit une seule
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis impl&eacute;mentation de mise en cache des descripteurs de fichiers.</p>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <section>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <title>CacheFile</title>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>La forme la plus basique de mise en cache que propose httpd
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis est la mise en cache des descripteurs de fichiers fournie par le
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis module <module>mod_file_cache</module>. Plut&ocirc;t que de mettre en
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis cache le contenu des fichiers, ce cache maintient une table des
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis descripteurs de fichiers ouverts. Les fichiers devant faire
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis l'objet d'une mise en cache de ce type sont sp&eacute;cifi&eacute;s dans le
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis fichier de configuration via la directive <directive
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis module="mod_file_cache">CacheFile</directive>.</p>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>La directive <directive
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis module="mod_file_cache">CacheFile</directive> informe httpd
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis qu'il doit ouvrir le fichier lors de son d&eacute;marrage et qu'il doit
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis r&eacute;utiliser le descripteur de fichier mis en cache pour tous les
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis acc&egrave;s futurs &agrave; ce fichier.</p>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <example>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis CacheFile /usr/local/apache2/htdocs/index.html
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis </example>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Si vous d&eacute;sirez mettre en cache un grand nombre de fichiers
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis de cette mani&egrave;re, vous devez vous assurer que le nombre maximal
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis de fichiers ouverts pour votre syst&egrave;me d'exploitation est d&eacute;fini
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis &agrave; une valeur suffisante.</p>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Bien que l'utilisation de la directive <directive
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis module="mod_file_cache">CacheFile</directive> n'entra&icirc;ne pas de
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis mise en cache du contenu du fichier proprement dit, elle
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis implique que si le fichier est modifi&eacute; pendant l'ex&eacute;cution du
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis serveur, ces modifications ne seront pas prises en compte. Le
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis fichier sera toujours servi dans l'&eacute;tat o&ugrave; il se trouvait au
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis moment du d&eacute;marrage du serveur.</p>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Si le fichier est supprim&eacute; pendant l'ex&eacute;cution du serveur, ce
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis dernier conservera le descripteur de fichier ouvert associ&eacute; et
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis servira le fichier dans l'&eacute;tat o&ugrave; il se trouvait au
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis moment du d&eacute;marrage du serveur. Cela signifie aussi que m&ecirc;me si
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis le fichier a &eacute;t&eacute; supprim&eacute;, et n'appara&icirc;t donc plus dans le
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis syst&egrave;me de fichiers, l'espace disque lib&eacute;r&eacute; ne sera disponible
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis qu'une fois le serveur httpd arr&ecirc;t&eacute; et donc le descripteur de
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis fichier ferm&eacute;.</p>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis </section>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis </section>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <section id="inmemory">
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <title>In-Memory Caching</title>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <p>Servir un contenu directement depuis la m&eacute;moire syst&egrave;me est
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor universellement reconnu comme la m&eacute;thode la plus rapide. Lire des fichiers
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor depuis un contr&ocirc;leur de disque ou pire, depuis un r&eacute;seau distant est plus
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor lent de plusieurs ordres de grandeur. Les contr&ocirc;leurs de disque r&eacute;alisent
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor en g&eacute;n&eacute;ral des op&eacute;rations m&eacute;caniques, et l'acc&egrave;s au r&eacute;seau est limit&eacute; par la
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor bande passante dont vous disposez. Par contre, les temps d'acc&egrave;s &agrave; la
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor m&eacute;moire sont de l'ordre de la nano-seconde.</p>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <p>Cependant la m&eacute;moire syst&egrave;me n'est pas bon march&eacute;; &agrave; capacit&eacute; &eacute;gale,
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor c'est de loin le type de stockage le plus co&ucirc;teux et il est important de
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor s'assurer qu'elle est utilis&eacute;e efficacement. Le fait de mettre en cache
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor des fichiers en m&eacute;moire diminue d'autant la quantit&eacute; de m&eacute;moire syst&egrave;me
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor disponible. Comme nous le verrons plus loin, ce n'est pas un probl&egrave;me en
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor soi dans le cas de la mise en cache par l'interm&eacute;diaire du syst&egrave;me
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor d'exploitation, mais si l'on utilise la mise en cache en m&eacute;moire propre &agrave;
a9db829bebc5339233a3242f6742816425751d15lgentis httpd, il faut prendre garde &agrave; ne pas allouer trop de m&eacute;moire au cache.
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor Sinon le syst&egrave;me sera contraint d'utiliser le swap, ce qui d&eacute;gradera
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor sensiblement les performances.</p>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <section>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <title>Mise en cache par l'interm&eacute;diaire du syst&egrave;me d'exploitation</title>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <p>Dans la plupart des syst&egrave;mes d'exploitation modernes, c'est le noyau
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor qui g&egrave;re directement la mise en cache en m&eacute;moire des donn&eacute;es relatives
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor aux fichiers. C'est une fonctionnalit&eacute; puissante, et les syst&egrave;mes
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor d'exploitation s'en acquittent fort bien pour la plus grande partie.
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor Consid&eacute;rons par exemple, dans le cas de Linux, la diff&eacute;rence entre le
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor temps n&eacute;cessaire &agrave; la premi&egrave;re lecture d'un fichier et le temps
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor n&eacute;cessaire &agrave; sa deuxi&egrave;me lecture;</p>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <example><pre>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzorcolm@coroebus:~$ time cat testfile &gt; /dev/null
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzorreal 0m0.065s
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzoruser 0m0.000s
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzorsys 0m0.001s
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzorcolm@coroebus:~$ time cat testfile &gt; /dev/null
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzorreal 0m0.003s
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzoruser 0m0.003s
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzorsys 0m0.000s</pre>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis </example>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <p>M&ecirc;me pour ce petit fichier, il y a une grande diff&eacute;rence entre les
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor temps n&eacute;cessaires pour lire le fichier. Ceci est du au fait que le
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor noyau a mis en cache le contenu du fichier en m&eacute;moire.</p>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <p>Du fait de toujours pouvoir disposer de m&eacute;moire syst&egrave;me, vous pouvez
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor &ecirc;tre assur&eacute; qu'il y aura de plus en plus de contenus de fichiers stock&eacute;s
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor dans ce cache. Ceci peut s'av&eacute;rer une m&eacute;thode de mise en cache en m&eacute;moire
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor tr&egrave;s efficace, et ne n&eacute;cessite aucune configuration suppl&eacute;mentaire
a9db829bebc5339233a3242f6742816425751d15lgentis de httpd.</p>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <p>De plus, comme le syst&egrave;me d'exploitation sait si des fichiers
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor ont &eacute;t&eacute;
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor supprim&eacute;s ou modifi&eacute;s, il peut effacer automatiquement des contenus de
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor fichiers du cache lorsque cela s'av&egrave;re n&eacute;cessaire. Ceci constitue un gros
a9db829bebc5339233a3242f6742816425751d15lgentis avantage par rapport &agrave; la mise en cache en m&eacute;moire
a9db829bebc5339233a3242f6742816425751d15lgentis de httpd qui n'a
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor aucune possibilit&eacute; de savoir si un fichier a &eacute;t&eacute; modifi&eacute;.</p>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis </section>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <p>En d&eacute;pit des performances et des avantages de la mise en cache
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor automatique par le syst&egrave;me d'exploitation, la mise en cache en m&eacute;moire
a9db829bebc5339233a3242f6742816425751d15lgentis peut &ecirc;tre effectu&eacute;e plus efficacement par httpd dans certaines
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor circonstances.</p>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <section>
a1066e2786436743f6791963fb266282c25e1e99lgentis <title>Mise en cache &agrave; l'aide de la directive MMapFile</title>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
a1066e2786436743f6791963fb266282c25e1e99lgentis <p>La directive <directive module="mod_file_cache">MMapFile</directive>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor fournie par le module <module>mod_file_cache</module> vous permet de
a9db829bebc5339233a3242f6742816425751d15lgentis demander &agrave; httpd de charger un contenu de fichier statique en m&eacute;moire
a9db829bebc5339233a3242f6742816425751d15lgentis lors de son d&eacute;marrage (&agrave; l'aide de l'appel
a9db829bebc5339233a3242f6742816425751d15lgentis syst&egrave;me mmap). httpd
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor utilisera le contenu charg&eacute; en m&eacute;moire pour satisfaire ult&eacute;rieurement
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor toutes les demandes d'acc&egrave;s &agrave; ce fichier.</p>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <example>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis MMapFile /usr/local/apache2/htdocs/index.html
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis </example>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <p>Comme dans le cas de la directive
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <directive module="mod_file_cache">CacheFile</directive>, toute
a9db829bebc5339233a3242f6742816425751d15lgentis modification du fichier ne sera plus prise en compte par httpd une fois
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor ce dernier d&eacute;marr&eacute;.</p>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <p> La directive
a1066e2786436743f6791963fb266282c25e1e99lgentis <directive module="mod_file_cache">MMapFile</directive> ne gardant
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor pas la trace de la quantit&eacute; de m&eacute;moire qu'elle alloue, vous devez prendre
a9db829bebc5339233a3242f6742816425751d15lgentis garde de ne pas en abuser. Chaque processus enfant de httpd utilisant
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor sa propre r&eacute;plique de la m&eacute;moire allou&eacute;e, il est donc d'une importance
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor critique de s'assurer que les fichiers charg&eacute;s ne sont pas d'une taille
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor trop importante afin d'&eacute;pargner au syst&egrave;me l'utilisation du swap.</p>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis </section>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor </section>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor </section>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <section id="security">
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <title>Consid&eacute;rations sur la s&eacute;curit&eacute;</title>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <section>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <title>Autorisation et contr&ocirc;le d'acc&egrave;s</title>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Utiliser <module>mod_cache</module> revient sensiblement &agrave; la m&ecirc;me
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis chose qu'avoir un mandataire inverse int&eacute;gr&eacute; (reverse-proxy). Les requ&ecirc;tes
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis seront servies par le module de mise en cache sauf si ce dernier
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis d&eacute;termine qu'un processus d'arri&egrave;re-plan doit &ecirc;tre appel&eacute;. La mise en
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis cache de ressources locales modifie consid&eacute;rablement le mod&egrave;le de
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis s&eacute;curit&eacute; de httpd.</p>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Comme le parcours de la hi&eacute;rarchie d'un syst&egrave;me de fichiers pour
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis examiner le contenu d'&eacute;ventuels fichiers
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <code>.htaccess</code> serait une op&eacute;ration tr&egrave;s co&ucirc;teuse en ressources,
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis annulant partiellement de ce fait l'int&eacute;r&ecirc;t de la mise en cache
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis (acc&eacute;l&eacute;rer le traitement des requ&ecirc;tes),
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <module>mod_cache</module> ne se pr&eacute;occupe pas de savoir s'il a
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis l'autorisation de servir une entit&eacute; mise en cache. En d'autres termes,
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis si <module>mod_cache</module> a mis en cache un certain contenu, ce
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis dernier sera servi &agrave; partir du cache tant qu'il ne sera pas arriv&eacute; &agrave;
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis expiration.</p>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Si par exemple, votre configuration autorise l'acc&egrave;s &agrave; une ressource
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis en fonction de l'adresse IP, vous devez vous assurer que ce contenu n'est
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis pas mis en cache. Ceci est possible en utilisant la directive
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <directive module="mod_cache">CacheDisable</directive>, ou le module
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <module>mod_expires</module>. Livr&eacute; &agrave; lui-m&ecirc;me,
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <module>mod_cache</module> - pratiquement comme un mandataire inverse -
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis mettrait en cache le contenu lors de son service, et le servirait ensuite
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis &agrave; tout client, vers n'importe quelle adresse IP.</p>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Lorsque la directive <directive
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis module="mod_cache">CacheQuickHandler</directive> est d&eacute;finie &agrave;
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <code>Off</code>, toutes les phases du traitement de la requ&ecirc;te
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis sont ex&eacute;cut&eacute;es et le mod&egrave;le de s&eacute;curit&eacute; reste le m&ecirc;me.</p>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis </section>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <section>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <title>Piratages locaux</title>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Etant donn&eacute; que les requ&ecirc;tes des utilisateurs finaux peuvent &ecirc;tre
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis servies depuis le cache, ce dernier est une cible potentielle pour ceux
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis qui veulent d&eacute;figurer un contenu ou interf&eacute;rer avec lui. Il est important
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis de garder &agrave; l'esprit que l'utilisateur sous lequel tourne
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis httpd doit
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis toujours avoir l'acc&egrave;s en &eacute;criture dans le cache. Ceci est en contraste
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis total avec la recommandation usuelle d'interdire &agrave; l'utilisateur sous
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis lequel tourne Apache
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis l'acc&egrave;s en &eacute;criture &agrave; tout contenu.</p>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Si l'utilisateur sous lequel tourne Apache est compromis,
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis par exemple &agrave; cause d'une
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis faille de s&eacute;curit&eacute; dans un processus CGI, il est possible que le cache
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis fasse l'objet d'une attaque. Il est relativement ais&eacute; d'ins&eacute;rer ou de
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis modifier une entit&eacute; dans le cache en utilisant le module
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <module>mod_cache_disk</module>.</p>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Cela repr&eacute;sente un risque relativement &eacute;l&eacute;v&eacute; par rapport aux autres
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis types d'attaques qu'il est possible de mener sous l'utilisateur apache.
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis Si vous utilisez <module>mod_cache_disk</module>, vous devez garder ceci
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis &agrave; l'esprit : effectuez toujours les mises &agrave; jour de
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis httpdquand des
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis correctifs de s&eacute;curit&eacute; sont annonc&eacute;s et ex&eacute;cutez les processus CGI sous
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis un utilisateur autre qu'apache en utilisant
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <a href="suexec.html">suEXEC</a> dans la mesure du possible.</p>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor </section>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor <section>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <title>Empoisonnement du cache (Cache Poisoning)</title>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Si vous utilisez httpd comme serveur mandataire avec mise en cache,
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis vous vous exposez aussi &agrave; un &eacute;ventuel "Empoisonnement du
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis cache" (Cache poisoning). L'empoisonnement du cache est un terme g&eacute;n&eacute;ral
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis pour d&eacute;signer les attaques au cours desquelles l'attaquant fait en sorte
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis que le serveur mandataire renvoie &agrave; un contenu incorrect (et souvent
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis ind&eacute;sirable) suite &agrave; en provenance du serveur d'arri&egrave;re-plan.
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis </p>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Par exemple, si les serveur DNS qu'utilise votre syst&egrave;me o&ugrave; tourne
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis httpd sont vuln&eacute;rables &agrave; l'empoisonnement du cache des DNS, un attaquant
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis pourra contr&ocirc;ler vers o&ugrave; httpd se connecte lorsqu'il demande un contenu
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis depuis le serveur d'origine.
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis Un autre exemple est constitu&eacute; par les attaques ainsi nomm&eacute;es
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis "Dissimulation de requ&ecirc;tes HTTP" (HTTP request-smuggling).</p>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Ce document n'est pas le bon endroit pour une discussion approfondie
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis &agrave; propos de la Dissimulation de requ&ecirc;tes HTTP (utilisez plut&ocirc;t votre
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis moteur de recherche favori); il est cependant important de savoir qu'il
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis est possible d'&eacute;laborer une s&eacute;rie de requ&ecirc;tes, et d'exploiter une
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis vuln&eacute;rabilit&eacute; d'un serveur web d'origine de telle fa&ccedil;on que l'attaquant
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis puisse contr&ocirc;ler enti&egrave;rement le contenu renvoy&eacute; par le mandataire.</p>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor </section>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <section>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <title>D&eacute;ni de Service / Cachebusting</title>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Le m&eacute;canisme utilis&eacute; via l'en-t&ecirc;te Vary permet de mettre en
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis cache simultan&eacute;ment plusieurs variantes d'une ressource avec la
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis m&ecirc;me URL. Le cache s&eacute;lectionne la variante correcte &agrave; envoyer au
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis client en fonction des valeurs d'en-t&ecirc;te fournies par ce dernier.
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis Ce m&eacute;canisme peut devenir un probl&egrave;me lorsqu'on tente d'appliquer
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis le m&eacute;canisme des variantes &agrave; un en-t&ecirc;te connu pour pouvoir
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis poss&eacute;der un grand nombre de valeurs
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis possibles en utilisation normal, comme par exemple l'en-t&ecirc;te
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <code>User-Agent</code>. En fonction de la popularit&eacute; du site web,
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis des milliers ou m&ecirc;me des millions d'entr&eacute;es de cache dupliqu&eacute;es
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis peuvent &ecirc;tre cr&eacute;&eacute;es pour la m&ecirc;me URL, submergeant les autres
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis entr&eacute;es du cache.</p>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis <p>Dans d'autres cas, il peut &ecirc;tre n&eacute;cessaire de modifier l'URL
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis d'une ressource particuli&egrave;re &agrave; chaque requ&ecirc;te, en g&eacute;n&eacute;ral en lui
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis ajoutant une cha&icirc;ne "cachebuster". Si ce contenu est d&eacute;clar&eacute; comme
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis pouvant &ecirc;tre mis en cache par un serveur avec une dur&eacute;e de
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis fra&icirc;cheur significative, ces entr&eacute;es peuvent submerger les entr&eacute;es
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis l&eacute;gitimes du cache. Alors que <module>mod_cache</module> fournit
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis une directive <directive
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis module="mod_cache">CacheIgnoreURLSessionIdentifiers</directive>,
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis cette derni&egrave;re doit &ecirc;tre utilis&eacute;e avec prudence pour s'assurer que
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis les caches du navigateur ou du mandataire le plus proche
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis (downstream proxy) ne sont pas victimes du m&ecirc;me probl&egrave;me de D&eacute;ni de
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis service.</p>
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis </section>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor </section>
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor
afa53da4a75bf26660c339e17c2abfd9fec0454blgentis
ed56b00fec68f682f4acf26536dbe0b2f26f7449gryzor</manualpage>