mod_cache.xml.fr revision 63edd358d6b6fda4f9dfa96effa972bf996b77f8
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<?xml version="1.0"?>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<!DOCTYPE modulesynopsis SYSTEM "/style/modulesynopsis.dtd">
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<?xml-stylesheet type="text/xsl" href="/style/manual.fr.xsl"?>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<!-- English Revision : 1543907 -->
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<!-- French translation : Lucien GENTIS -->
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<!-- Reviewed by : Vincent Deffontaines -->
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<!--
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk Licensed to the Apache Software Foundation (ASF) under one or more
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk contributor license agreements. See the NOTICE file distributed with
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk this work for additional information regarding copyright ownership.
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk The ASF licenses this file to You under the Apache License, Version 2.0
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk (the "License"); you may not use this file except in compliance with
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk the License. You may obtain a copy of the License at
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk http://www.apache.org/licenses/LICENSE-2.0
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
dff2cc5646d4437ab9e0cb1dcb59da65462a5938jeff.schenk Unless required by applicable law or agreed to in writing, software
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk distributed under the License is distributed on an "AS IS" BASIS,
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
dff2cc5646d4437ab9e0cb1dcb59da65462a5938jeff.schenk See the License for the specific language governing permissions and
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk limitations under the License.
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk-->
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<modulesynopsis metafile="mod_cache.xml.meta">
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<name>mod_cache</name>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<description>Filtre de mise en cache HTTP conforme &agrave; la RFC 2616</description>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<status>Extension</status>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<sourcefile>mod_cache.c</sourcefile>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<identifier>cache_module</identifier>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<summary>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <note type="warning">Ce module doit &ecirc;tre utilis&eacute; avec pr&eacute;cautions
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk car lorsque la directive <directive
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk module="mod_cache">CacheQuickHandler</directive> est d&eacute;finie &agrave; sa
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk valeur par d&eacute;faut <strong>on</strong>, les directives <directive
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk module="mod_access_compat">Allow</directive> and <directive
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk module="mod_access_compat">Deny</directive> sont court-circuit&eacute;es. Vous
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk ne devez donc pas activer la gestion rapide de la mise en cache pour
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk un contenu auquel vous souhaitez limiter l'acc&egrave;s en fonction du nom
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk d'h&ocirc;te du client, de l'adresse IP ou d'une variable
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk d'environnement.</note>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <p><module>mod_cache</module> impl&eacute;mente un <strong>filtre de mise
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk en cache de contenu HTTP</strong> conforme &agrave; la <a
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk href="http://www.ietf.org/rfc/rfc2616.txt">RFC 2616</a>, avec
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk support de la mise en cache des r&eacute;ponses dont le contenu a &eacute;t&eacute;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk n&eacute;goci&eacute; et comportant l'en-t&ecirc;te Vary.</p>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <p>La mise en cache conforme &agrave; la RFC 2616 fournit un m&eacute;canisme
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk permettant de v&eacute;rifier si un contenu expir&eacute; ou d&eacute;pass&eacute; est encore &agrave;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk jour, et peut apporter un gain de performances significatif si le
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk serveur original supporte les <strong>requ&ecirc;tes
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk conditionnelles</strong> en prenant en compte l'en-t&ecirc;te de requ&ecirc;te
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk HTTP <a
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.26">If-None-Match</a>.
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk Le contenu n'est ainsi r&eacute;g&eacute;n&eacute;r&eacute; que lorsqu'il a &eacute;t&eacute; modifi&eacute;, et non
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk lorsqu'il a expir&eacute;.</p>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <p>En tant que filtre, <module>mod_cache</module> peut &ecirc;tre plac&eacute;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk en face d'un contenu issu de tout gestionnaire, y compris
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <strong>des fichiers &agrave; acc&egrave;s s&eacute;quentiel</strong> (servis depuis un
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk disque lent mis en
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk cache sur un gros disque), la sortie d'un <strong>script
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk CGI</strong> ou d'un <strong>g&eacute;n&eacute;rateur de contenu
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk dynamique</strong>, ou du contenu <strong>mandat&eacute; depuis un autre
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk serveur</strong>.</p>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <p>Dans la configuration par d&eacute;faut, <module>mod_cache</module>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk place le filtre de mise en cache aussi loin que possible dans la
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk pile de filtres, utilisant le <strong>gestionnaire rapide</strong>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk pour court-circuiter tout traitement par requ&ecirc;te lors de l'envoi du
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk contenu au client. Dans ce mode op&eacute;ratoire,
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <module>mod_cache</module> peut &ecirc;tre consid&eacute;r&eacute; comme un serveur
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk mandataire avec cache fix&eacute; en t&ecirc;te du serveur web, alors qu'il
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk s'ex&eacute;cute dans ce m&ecirc;me serveur web.</p>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <p>Lorsque le gestionnaire rapide est d&eacute;sactiv&eacute; via la directive
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <directive module="mod_cache">CacheQuickHandler</directive>, il
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk devient possible d'ins&eacute;rer le filtre <strong>CACHE</strong> &agrave; un
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk point de la pile de filtres choisi par l'administrateur. Ceci permet
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk de mettre en cache un contenu avant que celui-ci ne soit
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk personnalis&eacute; par le filtre <module>mod_include</module>, ou
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk &eacute;ventuellement compress&eacute; par le filtre <module>mod_deflate</module>.</p>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <p>Dans le mode de fonctionnement normal, <module>mod_cache</module>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk peut &ecirc;tre contr&ocirc;l&eacute; par les en-t&ecirc;tes <a
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9">Cache-Control</a>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk et <a
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.32">Pragma</a>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk envoy&eacute;s par un client dans une requ&ecirc;te, ou par un serveur dans une
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk r&eacute;ponse. Dans des circonstances exceptionnelles,
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <module>mod_cache</module> peut cependant &ecirc;tre configur&eacute; pour
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk outrepasser ces en-t&ecirc;tes et forcer un comportement sp&eacute;cifique au
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk site, bien qu'un tel comportement sera limit&eacute; &agrave; ce cache seulement,
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk et n'affectera pas les op&eacute;rations des autres caches qui peuvent
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk s'ins&eacute;rer entre le client et le serveur, et ce type de configuration
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk ne doit donc &ecirc;tre utiliser qu'en cas de n&eacute;cessit&eacute; absolue.</p>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <p>La RFC 2616 permet au cache de renvoyer des donn&eacute;es p&eacute;rim&eacute;es
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk pendant que l'entr&eacute;e p&eacute;rim&eacute;e correspondante est mise &agrave; jour depuis
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk le serveur original, et <module>mod_cache</module> supporte cette
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk fonctionnalit&eacute; lorsque la directive <directive
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk module="mod_cache">CacheLock</directive> est configur&eacute;e en
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk cons&eacute;quence. De telles r&eacute;ponses comportent un en-t&ecirc;te HTTP <a
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.46">Warning</a>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk contenant un code de r&eacute;ponse 110. La RFC 2616 permet aussi au cache
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk de renvoyer des donn&eacute;es p&eacute;rim&eacute;es lorsque la tentative de mise &agrave; jour
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk des donn&eacute;es p&eacute;rim&eacute;es renvoie une erreur 500 ou sup&eacute;rieure, et cette
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk fonctionnalit&eacute; est support&eacute;e par d&eacute;faut par
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <module>mod_cache</module>. De telles r&eacute;ponses comportent un en-t&ecirc;te HTTP <a
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.46">Warning</a>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk contenant un code de r&eacute;ponse 111.</p>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <p><module>mod_cache</module> requiert les services d'un ou
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk plusieurs modules de gestion de stockage. La distribution Apache de base
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk inclut un module de gestion de stockage :</p>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <dl>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <dt><module>mod_cache_disk</module></dt>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <dd>impl&eacute;mente un gestionnaire de stockage sur disque. Les en-t&ecirc;tes
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk et corps sont stock&eacute;s s&eacute;par&eacute;ment sur le disque dans une structure de
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk r&eacute;pertoires bas&eacute;e sur le condens&eacute; md5 de l'URL mise en cache.
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk Plusieurs r&eacute;ponses &agrave; contenu n&eacute;goci&eacute; peuvent &ecirc;tre stock&eacute;es en m&ecirc;me
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk temps, mais la mise en cache de contenus partiels n'est pas
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk support&eacute;e par ce module. L'utilitaire
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <program>htcacheclean</program> permet de lister et de supprimer les
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk URLs mises en cache, et de maintenir le cache en de&ccedil;&agrave; de
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk certaines limites de taille et de nombre d'inodes.</dd>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <dt><module>mod_cache_socache</module></dt>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <dd>Impl&eacute;mente un gestionnaire de stockage bas&eacute; sur un cache d'objets
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk partag&eacute;s. Les en-t&ecirc;tes et corps sont stock&eacute;s ensemble sous une seule
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk cl&eacute; bas&eacute;e sur l'URL de la r&eacute;ponse mise en cache. Des r&eacute;ponses &agrave;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk contenus multiples n&eacute;goci&eacute;s peuvent &ecirc;tre stock&eacute;es simultan&eacute;ment, mais
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk ce module ne supporte pas la mise en cache de contenus partiels.</dd>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk </dl>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <p>Pour de plus amples d&eacute;tails, une description, et des exemples,
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk reportez-vous au <a href="/caching.html">Guide de la mise en
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk cache</a>.</p>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk</summary>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<seealso><a href="/caching.html">Guide de la mise en
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenkcache</a></seealso>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<section id="related"><title>Modules apparent&eacute;s et directives</title>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <related>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <modulelist>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <module>mod_cache_socache</module>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk </modulelist>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <directivelist>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <directive module="mod_cache_disk">CacheRoot</directive>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <directive module="mod_cache_disk">CacheDirLevels</directive>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <directive module="mod_cache_disk">CacheDirLength</directive>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <directive module="mod_cache_disk">CacheMinFileSize</directive>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <directive module="mod_cache_disk">CacheMaxFileSize</directive>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <directive module="mod_cache_socache">CacheSocache</directive>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <directive module="mod_cache_socache">CacheSocacheMaxTime</directive>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <directive module="mod_cache_socache">CacheSocacheMinTime</directive>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <directive module="mod_cache_socache">CacheSocacheMaxSize</directive>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <directive module="mod_cache_socache">CacheSocacheReadSize</directive>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <directive module="mod_cache_socache">CacheSocacheReadTime</directive>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk </directivelist>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk </related>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk</section>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<section id="sampleconf"><title>Exemple de configuration</title>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <example><title>Extrait de httpd.conf</title>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <highlight language="config">
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk#
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk# Exemple de configuration du cache
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk#
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenkLoadModule cache_module modules/mod_cache.so
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk&lt;IfModule mod_cache.c&gt;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk LoadModule cache_disk_module modules/mod_cache_disk.so
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk &lt;IfModule mod_cache_disk.c&gt;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk CacheRoot c:/cacheroot
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk CacheEnable disk /
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk CacheDirLevels 5
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk CacheDirLength 3
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk &lt;/IfModule&gt;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk # Lorsqu'on sert de mandataire, on ne met pas en cache la liste
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk# des mises &agrave; jour de s&eacute;curit&eacute;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk CacheDisable http://security.update.server/update-list/
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk&lt;/IfModule&gt;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk </highlight>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk </example>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk</section>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<section id="thunderingherd"><title>Eviter une temp&ecirc;te de requ&ecirc;te</title>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <p>Lorsqu'une entr&eacute;e du cache est p&eacute;rim&eacute;e, <module>mod_cache</module>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk soumet une requ&ecirc;te conditionnelle au processus d'arri&egrave;re-plan, qui est
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk cens&eacute; confirmer la validit&eacute; de l'entr&eacute;e du cache, ou dans la n&eacute;gative
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk envoyer une entr&eacute;e mise &agrave; jour.</p>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <p>Un court mais non n&eacute;gligeable laps de temps existe entre le moment
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk o&ugrave; l'entr&eacute;e du cache est p&eacute;rim&eacute;e, et le moment o&ugrave; elle est mise &agrave;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk jour. Sur un serveur fortement charg&eacute;, un certain nombre de requ&ecirc;tes
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk peut arriver pendant ce laps de temps, et provoquer une
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <strong>temp&ecirc;te</strong> de requ&ecirc;tes susceptibles de saturer le
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk processus d'arri&egrave;re-plan de mani&egrave;re soudaine et impr&eacute;dictible.</p>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <p>Pour contenir cette temp&ecirc;te, on peut utiliser la directive
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <directive>CacheLock</directive> afin de d&eacute;finir un r&eacute;pertoire o&ugrave;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk seront cr&eacute;&eacute;s <strong>&agrave; la vol&eacute;e</strong> des verrous pour les URLs.
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk Ces verrous sont utilis&eacute;s comme autant d'<strong>indications</strong>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk par les autres requ&ecirc;tes, soit pour emp&ecirc;cher une tentative de mise en
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk cache (un autre processus est en train de r&eacute;cup&eacute;rer l'entit&eacute;), soit
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk pour indiquer qu'une entr&eacute;e p&eacute;rim&eacute;e est en cours de mise &agrave; jour
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk (pendant ce temps, c'est le contenu p&eacute;rim&eacute; qui sera renvoy&eacute;).
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk </p>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <section>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <title>Mise en cache initiale d'une entr&eacute;e</title>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <p>Lorsqu'une entit&eacute; est mise en cache pour la premi&egrave;re fois, un
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk verrou est cr&eacute;&eacute; pour cette entit&eacute; jusqu'&agrave; ce que la r&eacute;ponse ait &eacute;t&eacute;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk enti&egrave;rement mise en cache. Pendant la dur&eacute;e de vie du verrou, le
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk cache va emp&ecirc;cher une seconde tentative de mise en cache de la m&ecirc;me
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk entit&eacute;. Bien que cela ne suffise pas &agrave; contenir la temp&ecirc;te de
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk requ&ecirc;tes, toute tentative de mettre en cache la m&ecirc;me entit&eacute;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk plusieurs fois simultan&eacute;ment est stopp&eacute;e.
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk </p>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk </section>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <section>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <title>Mise &agrave; jour d'une entr&eacute;e p&eacute;rim&eacute;e</title>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <p>Lorsqu'une entr&eacute;e atteint la limite de sa dur&eacute;e de vie, et
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk devient par cons&eacute;quent p&eacute;rim&eacute;e, un verrou est cr&eacute;&eacute; pour cette entit&eacute;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk jusqu'&agrave; ce que la r&eacute;ponse ait &eacute;t&eacute; soit confirm&eacute;e comme encore
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk valide, soit remplac&eacute;e par le processus d'arri&egrave;re-plan. Pendant la
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk dur&eacute;e de vie du verrou, une seconde requ&ecirc;te entrante va provoquer le
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk renvoi de la donn&eacute;e p&eacute;rim&eacute;e, et la temp&ecirc;te de requ&ecirc;tes sera
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk contenue.</p>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk </section>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <section>
dff2cc5646d4437ab9e0cb1dcb59da65462a5938jeff.schenk <title>Verrous et en-t&ecirc;te Cache-Control: no-cache</title>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <p>Les verrous ne sont utilis&eacute;s <strong>qu'&agrave; titre
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk indicatif</strong> pour enjoindre le cache &agrave; &ecirc;tre plus coop&eacute;ratif
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk avec les serveurs d'arri&egrave;re-plan, et il est possible de passer outre
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk si n&eacute;cessaire. Si le client envoie une requ&ecirc;te contenant un en-t&ecirc;te
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk Cache-Control imposant un nouveau t&eacute;l&eacute;chargement de l'entit&eacute;, tout
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk verrou &eacute;ventuel sera ignor&eacute;, la requ&ecirc;te du client sera honor&eacute;e
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk imm&eacute;diatement, et l'entr&eacute;e du cache mise &agrave; jour.</p>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <p>Comme m&eacute;canisme de s&eacute;curit&eacute; suppl&eacute;mentaire, la dur&eacute;e de vie
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk maximale des verrous est configurable. Lorsque cette limite est
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk atteinte, le verrou est supprim&eacute; et une autre requ&ecirc;te peut alors en
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk cr&eacute;er un nouveau. Cette dur&eacute;e de vie peut &ecirc;tre d&eacute;finie via la
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk directive <directive>CacheLockMaxAge</directive>, et sa valeur par
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk d&eacute;faut est de 5 secondes.
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk </p>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk </section>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <section>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <title>Exemple de configuration</title>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <example><title>Activation du verrouillage du cache</title>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <highlight language="config">
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk#
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk# Active le verrouillage du cache
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk#
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk&lt;IfModule mod_cache.c&gt;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk CacheLock on
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk CacheLockPath /tmp/mod_cache-lock
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk CacheLockMaxAge 5
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk&lt;/IfModule&gt;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk </highlight>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk </example>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk </section>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk</section>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<section id="finecontrol"><title>Contr&ocirc;le fin via le filtre CACHE</title>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <p>Dans son mode de fonctionnement par d&eacute;faut, le cache s'ex&eacute;cute sous
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk la forme d'un gestionnaire rapide, court-circuitant la majorit&eacute; des
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk traitements du serveur et fournissant ainsi une mise en cache
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk poss&eacute;dant les plus hautes performances disponibles.</p>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <p>Dans ce mode, le cache <strong>s'incruste</strong> devant le
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk serveur, comme si un mandataire de mise en cache ind&eacute;pendant RFC 2616
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk &eacute;tait plac&eacute; devant ce dernier.</p>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <p>Bien que que ce mode offre les meilleures performances, les
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk administrateurs peuvent souhaiter, dans certaines circonstances,
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk effectuer des traitements sur la requ&ecirc;te apr&egrave;s que cette derni&egrave;re ait
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk &eacute;t&eacute; mise en cache, comme ajouter du contenu personnalis&eacute; &agrave; la page
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk mise en cache, ou appliquer des restrictions d'autorisations au
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk contenu. Pour y parvenir, l'administrateur sera alors souvent forc&eacute; de
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk placer des serveurs mandataires inverses ind&eacute;pendants soit derri&egrave;re,
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk soit devant le serveur de mise en cache.</p>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <p>Pour r&eacute;soudre ce probl&egrave;me, la directive <directive
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk module="mod_cache">CacheQuickHandler</directive> peut &ecirc;tre d&eacute;finie &agrave;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <strong>off</strong>, afin que le serveur traite toutes les phases
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk normalement ex&eacute;cut&eacute;es par une requ&ecirc;te non mise en cache, y compris les
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk phases <strong>d'authentification et d'autorisation</strong>.</p>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <p>En outre, l'administrateur peut &eacute;ventuellement sp&eacute;cifier le
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <strong>point pr&eacute;cis dans la cha&icirc;ne de filtrage</strong> o&ugrave; devra
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk intervenir la mise en cache en ajoutant le filtre
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <strong>CACHE</strong> &agrave; la cha&icirc;ne de filtrage en sortie.</p>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <p>Par exemple, pour mettre en cache le contenu avant d'appliquer une
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk compression &agrave; la r&eacute;ponse, placez le filtre <strong>CACHE</strong>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk avant le filtre <strong>DEFLATE</strong> comme dans l'exemple suivant
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk :</p>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <highlight language="config">
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk# Mise en cache du contenu avant la compression optionnelle
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenkCacheQuickHandler off
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenkAddOutputFilterByType CACHE;DEFLATE text/plain
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk </highlight>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <p>Une autre possibilit&eacute; consiste &agrave; mettre en cache le contenu avant
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk l'ajout de contenu personnalis&eacute; via <module>mod_include</module> (ou
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk tout autre filtre de traitement de contenu). Dans l'exemple suivant,
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk les mod&egrave;les contenant des balises comprises par
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <module>mod_include</module> sont mis en cache avant d'&ecirc;tre
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk interpr&eacute;t&eacute;s :</p>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <highlight language="config">
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk# Mise en cache du contenu avant l'intervention de mod_include et
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk # mod_deflate
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenkCacheQuickHandler off
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenkAddOutputFilterByType CACHE;INCLUDES;DEFLATE text/html
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk </highlight>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <p>Vous pouvez ins&eacute;rer le filtre <strong>CACHE</strong> en tout point
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk de la cha&icirc;ne de filtrage. Dans l'exemple suivant, le contenu est mis
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk en cache apr&egrave;s avoir &eacute;t&eacute; interpr&eacute;t&eacute; par <module>mod_include</module>,
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk mais avant d'&ecirc;tre trait&eacute; par <module>mod_deflate</module> :</p>
dff2cc5646d4437ab9e0cb1dcb59da65462a5938jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <highlight language="config">
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk# Mise en cache du contenu entre les interventions de mod_include et
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk # mod_deflate
dff2cc5646d4437ab9e0cb1dcb59da65462a5938jeff.schenkCacheQuickHandler off
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenkAddOutputFilterByType INCLUDES;CACHE;DEFLATE text/html
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk </highlight>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <note type="warning"><title>Avertissement :</title>Si pour une raison
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk ou pour une autre, le point d'insertion du filtre
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <strong>CACHE</strong> dans la cha&icirc;ne de filtrage est modifi&eacute;, vous
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk devez <strong>vider votre cache</strong> pour &ecirc;tre s&ucirc;r que les donn&eacute;es
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk servies soient &agrave; jour. En effet, <module>mod_cache</module> n'est pas
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk en mesure d'effectuer cette op&eacute;ration &agrave; votre place.</note>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk</section>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<section id="status"><title>Etat du cache et journalisation</title>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <p>Lorsque <module>mod_cache</module> a d&eacute;cid&eacute; s'il devait ou non
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk servir une entit&eacute; depuis le cache, les raisons pr&eacute;cises de cette
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk d&eacute;cision sont enregistr&eacute;es dans l'environnement du sous-processus
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk interne &agrave; la requ&ecirc;te sous la cl&eacute; <strong>cache-status</strong>.
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk Cette information peut &ecirc;tre journalis&eacute;e via la directive <directive
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk module="mod_log_config">LogFormat</directive> comme suit :</p>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <highlight language="config">
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk LogFormat "%{cache-status}e ..."
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk </highlight>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <p>En fonction de la d&eacute;cision prise, l'information est aussi &eacute;crite
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk dans l'environnement du sous-processus sous une des quatre cl&eacute;s
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk suivantes :</p>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <dl>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <dt>cache-hit</dt><dd>Le contenu a &eacute;t&eacute; servi depuis le cache.</dd>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <dt>cache-revalidate</dt><dd>Le contenu du cache &eacute;tait p&eacute;rim&eacute;, a &eacute;t&eacute;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk mis &agrave; jour avec succ&egrave;s, puis servi depuis le cache.</dd>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <dt>cache-miss</dt><dd>Le contenu n'&eacute;tait pas dans le cache et a &eacute;t&eacute;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk servi directement depuis le serveur demand&eacute;.</dd>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <dt>cache-invalidate</dt><dd>L'entit&eacute; du cache est devenue invalide
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk suite &agrave; une requ&ecirc;te d'un type autre que GET ou HEAD.</dd>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk </dl>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <p>Il est alors possible d'envisager une journalisation conditionnelle
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk du traitement des requ&ecirc;tes par rapport au cache comme dans l'exemple
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk suivant :</p>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <highlight language="config">
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenkCustomLog cached-requests.log common env=cache-hit
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenkCustomLog uncached-requests.log common env=cache-miss
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenkCustomLog revalidated-requests.log common env=cache-revalidate
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenkCustomLog invalidated-requests.log common env=cache-invalidate
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk </highlight>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <p>Pour les concepteurs de modules, une accroche (hook) nomm&eacute;e
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <var>cache_status</var> est disponible et permet aux modules de
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk r&eacute;pondre aux r&eacute;sultats de la v&eacute;rification du cache ci-dessus de mani&egrave;re
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk personnalis&eacute;e.</p>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk</section>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<directivesynopsis>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<name>CacheEnable</name>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<description>Active la mise en cache des URLs sp&eacute;cifi&eacute;es en utilisant le
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenkgestionnaire de stockage pr&eacute;cis&eacute;</description>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<syntax>CacheEnable <var>type de cache</var> [<var>cha&icirc;ne
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenkURL</var>]</syntax>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<contextlist><context>server config</context><context>virtual host</context>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<context>directory</context>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk</contextlist>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<compatibility>Une cha&icirc;ne URL telle que '/' s'appliquait &agrave; tout contenu
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenken mandat direct dans les versions 2.2 et ant&eacute;rieures.</compatibility>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<usage>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <p>La directive <directive>CacheEnable</directive> enjoint
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <module>mod_cache</module> de mettre en cache l'URL pr&eacute;cis&eacute;e par
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <var>cha&icirc;ne URL</var>, ainsi que les URLs de niveaux inf&eacute;rieurs. Le
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk gestionnaire de stockage du cache est sp&eacute;cifi&eacute; &agrave; l'aide de
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk l'argument <var>type de cache</var>. La directive
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <directive>CacheEnable</directive> peut &ecirc;tre plac&eacute;e &agrave; l'int&eacute;rieur d'une
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk section <directive type="section">Location</directive> ou <directive
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk type="section">LocationMatch</directive> pour indiquer que le
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk contenu consid&eacute;r&eacute; peut &ecirc;tre mis en cache. Si <var>type de cache</var>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk a pour valeur <code>disk</code>, <module>mod_cache</module>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk utilisera le gestionnaire de stockage sur disque impl&eacute;ment&eacute; par
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <module>mod_cache_disk</module>. Pour que <module>mod_cache</module>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk utilise le gestionnaire de stockage bas&eacute; sur le cache d'objets
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk partag&eacute;s impl&eacute;ment&eacute; par <module>mod_cache_socache</module>,
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk sp&eacute;cifiez <code>socache</code> comme valeur du param&egrave;tre <var>type
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk de cache</var>.</p>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <p>Si les diff&eacute;rentes directives <directive>CacheEnable</directive>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk sp&eacute;cifient des URLs qui se recoupent (comme dans l'exemple
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk ci-dessous), tous les gestionnaires de stockage possibles seront
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk lanc&eacute;s, jusqu'au premier d'entre eux qui traitera effectivement la
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk requ&ecirc;te.
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk L'ordre dans lequel les gestionnaires de stockage sont lanc&eacute;s est
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk d&eacute;termin&eacute; par l'ordre dans lequel apparaissent les directives
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <directive>CacheEnable</directive> dans le fichier de
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk configuration. Les directives <directive>CacheEnable</directive>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk situ&eacute;es &agrave; l'int&eacute;rieur de sections <directive
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk type="section">Location</directive> ou <directive
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk type="section">LocationMatch</directive> sont trait&eacute;es avant les
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk directives <directive>CacheEnable</directive> d&eacute;finies au niveau
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk global.</p>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <p>En fonctionnement du type serveur mandataire direct, <var>cha&icirc;ne
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk URL</var> doit au moins d&eacute;buter par un protocole pour lequel la mise
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk en cache doit &ecirc;tre activ&eacute;e.</p>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <highlight language="config">
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk# Mise en cache de contenu (gestionnaire normal seulement)
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenkCacheQuickHandler off
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk&lt;Location /foo&gt;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk CacheEnable disk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk&lt;/Location&gt;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk# Mise en cache via une expression rationnelle (gestionnaire normal seulement)
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenkCacheQuickHandler off
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk&lt;LocationMatch foo$&gt;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk CacheEnable disk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk&lt;/LocationMatch&gt;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk# Mise en cache de tous les contenus, &agrave; l'exception des URLs
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk# mandat&eacute;es en direct (gestionnaire normal ou rapide)
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenkCacheEnable disk /
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk# Mise en cache des URLs FTP mandat&eacute;es (gestionnaire normal ou rapide)
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenkCacheEnable disk ftp://
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk# Mise en cache des contenus mandat&eacute;s en direct depuis www.example.org (gestionnaire normal ou rapide)
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenkCacheEnable disk http://www.example.org/
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk </highlight>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <p>Un nom d'h&ocirc;te commen&ccedil;ant par un caract&egrave;re <strong>"*"</strong>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk correspondra &agrave; tout nom d'h&ocirc;te se terminant par le suffixe
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk consid&eacute;r&eacute;. Un nom d'h&ocirc;te commen&ccedil;ant par un caract&egrave;re
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <strong>"."</strong> correspondra &agrave; tout nom d'h&ocirc;te contenant le
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk composant de nom de domaine qui suit ce caract&egrave;re.</p>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <highlight language="config">
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk# Correspond &agrave; www.example.org et fooexample.org
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenkCacheEnable disk http://*example.org/
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk# Correspond &agrave; www.example.org, mais pas &agrave; fooexample.org
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenkCacheEnable disk http://.example.org/
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk </highlight>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <p>Depuis la version 2.2.12, on peut d&eacute;finir la variable
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk d'environnement <code>no-cache</code> pour une d&eacute;finition plus fine
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk des ressources &agrave; mettre en cache.</p>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk</usage>
dff2cc5646d4437ab9e0cb1dcb59da65462a5938jeff.schenk<seealso><a href="/env.html">Les variables d'environnement dans
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenkApache</a></seealso>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk</directivesynopsis>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<directivesynopsis>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<name>CacheDisable</name>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<description>D&eacute;sactive la mise en cache des URLs
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenksp&eacute;cifi&eacute;es</description>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<syntax>CacheDisable <var>cha&icirc;ne-url</var> | <var>on</var></syntax>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<contextlist><context>server config</context><context>virtual host</context>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<context>directory</context><context>.htaccess</context>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk</contextlist>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<usage>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <p>La directive <directive>CacheDisable</directive> enjoint
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <module>mod_cache</module> de <em>ne pas</em> mettre en cache l'URL
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk sp&eacute;cifi&eacute;e par <var>cha&icirc;ne URL</var>, ainsi que les URLs de niveaux
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk inf&eacute;rieurs.</p>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <example><title>Exemple</title>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <highlight language="config">
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk CacheDisable /fichiers_locaux
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk </highlight>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk </example>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <p>Si la directive se trouve &agrave; l'int&eacute;rieur d'une section <directive
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk type="section">Location</directive>, le chemin doit &ecirc;tre sp&eacute;cifi&eacute; en
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk dessous de la Location, et si le mot "on" est utilis&eacute;, la mise en
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk cache sera d&eacute;sactiv&eacute;e pour l'ensemble de l'arborescence concern&eacute;e
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk par la section Location.</p>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <example><title>Exemple</title>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <highlight language="config">
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk&lt;Location /foo&gt;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk CacheDisable on
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk&lt;/Location&gt;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk </highlight>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk </example>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <p>Avec les versions 2.2.12 et ult&eacute;rieures, on peut d&eacute;finir la
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk variable d'environnement <code>no-cache</code> pour une d&eacute;finition
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk plus fine des ressources &agrave; mettre en cache.</p>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk</usage>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<seealso><a href="/env.html">Les variables d'environnement dans
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenkApache</a></seealso>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk</directivesynopsis>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<directivesynopsis>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<name>CacheMaxExpire</name>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<description>La dur&eacute;e maximale en secondes de mise en cache d'un
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenkdocument</description>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<syntax>CacheMaxExpire <var>secondes</var></syntax>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<default>CacheMaxExpire 86400 (une journ&eacute;e)</default>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<contextlist><context>server config</context><context>virtual host</context>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<context>directory</context><context>.htaccess</context>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk</contextlist>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<usage>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <p>La directive <directive>CacheMaxExpire</directive> permet de
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk sp&eacute;cifier le nombre maximum de secondes pendant lequel les documents
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk HTTP suceptibles d'&ecirc;tre mis en cache seront conserv&eacute;s sans v&eacute;rifier
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk leur contenu sur le serveur d'origine. Ce nombre de secondes
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk correspond donc &agrave; la dur&eacute;e maximale pendant laquelle un document ne
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk sera pas &agrave; jour. L'utilisation de cette valeur maximale est forc&eacute;e,
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk m&ecirc;me si le document poss&egrave;de une date d'expiration.</p>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <highlight language="config">
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk CacheMaxExpire 604800
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk </highlight>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk</usage>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk</directivesynopsis>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<directivesynopsis>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<name>CacheMinExpire</name>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<description>La dur&eacute;e minimale en secondes de mise en cache d'un
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenkdocument</description>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<syntax>CacheMinExpire <var>secondes</var></syntax>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<default>CacheMinExpire 0</default>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<contextlist><context>server config</context><context>virtual host</context>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<context>directory</context><context>.htaccess</context>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk</contextlist>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<usage>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <p>La directive <directive>CacheMaxExpire</directive> permet de
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk sp&eacute;cifier le nombre maximum de secondes pendant lequel les documents
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk HTTP suceptibles d'&ecirc;tre mis en cache seront conserv&eacute;s sans v&eacute;rifier
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk leur contenu sur le serveur d'origine. Elle n'est prise en compte
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk que dans le cas o&ugrave; le document ne poss&egrave;de aucune date d'expiration
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk valide.</p>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <highlight language="config">
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk CacheMinExpire 3600
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk </highlight>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk</usage>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk</directivesynopsis>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<directivesynopsis>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<name>CacheDefaultExpire</name>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<description>La dur&eacute;e par d&eacute;faut de mise en cache d'un document
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenklorsqu'aucune date d'expiration n'a &eacute;t&eacute; sp&eacute;cifi&eacute;e.</description>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<syntax>CacheDefaultExpire <var>secondes</var></syntax>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<default>CacheDefaultExpire 3600 (une heure)</default>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<contextlist><context>server config</context><context>virtual host</context>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<context>directory</context><context>.htaccess</context>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk</contextlist>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<usage>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <p>La directive <directive>CacheDefaultExpire</directive> permet de
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk sp&eacute;cifier un temps par d&eacute;faut, en secondes, pendant lequel sera
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk conserv&eacute; dans le cache un document qui ne poss&egrave;de ni date
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk d'expiration, ni date de derni&egrave;re modification. La valeur de cette
dff2cc5646d4437ab9e0cb1dcb59da65462a5938jeff.schenk directive est &eacute;cras&eacute;e par la valeur de la directive
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <directive>CacheMaxExpire</directive> si cette derni&egrave;re est
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk utilis&eacute;e.</p>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <highlight language="config">
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk CacheDefaultExpire 86400
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk </highlight>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk</usage>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk</directivesynopsis>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<directivesynopsis>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<name>CacheIgnoreNoLastMod</name>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<description>Ignore le fait qu'une r&eacute;ponse ne poss&egrave;de pas d'en-t&ecirc;te Last
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenkModified.</description>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<syntax>CacheIgnoreNoLastMod On|Off</syntax>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<default>CacheIgnoreNoLastMod Off</default>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<contextlist><context>server config</context><context>virtual host</context>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<context>directory</context><context>.htaccess</context>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk</contextlist>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<usage>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <p>Normalement, les documents qui ne poss&egrave;dent pas de date de
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk derni&egrave;re modification ne sont pas mis en cache. Dans certaines
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk circonstances, la date de derni&egrave;re modification est supprim&eacute;e (au
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk cours des traitements li&eacute;s &agrave; <module>mod_include</module> par
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk exemple), ou n'existe tout simplement pas. La directive
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <directive>CacheIgnoreNoLastMod</directive> permet de sp&eacute;cifier si
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk les documents ne poss&egrave;dant pas de date de derni&egrave;re modification
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk doivent &ecirc;tre mis en cache, m&ecirc;me sans date de derni&egrave;re modification.
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk Si le document ne poss&egrave;de ni date d'expiration, ni date de derni&egrave;re
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk modification, la valeur sp&eacute;cifi&eacute;e par la directive
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <directive>CacheDefaultExpire</directive> servira &agrave; g&eacute;n&eacute;rer une date
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk d'expiration.
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk </p>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <highlight language="config">
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk CacheIgnoreNoLastMod On
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk </highlight>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk</usage>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk</directivesynopsis>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<directivesynopsis>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<name>CacheIgnoreCacheControl</name>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<description>Ignore les en-t&ecirc;tes de requ&ecirc;te enjoignant de ne pas servir
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenkle contenu au client depuis le cache</description>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<syntax>CacheIgnoreCacheControl On|Off</syntax>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<default>CacheIgnoreCacheControl Off</default>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<contextlist><context>server config</context><context>virtual host</context>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk</contextlist>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<usage>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <p>Normalement, les requ&ecirc;tes contenant des en-t&ecirc;tes tels que
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk Cache-Control: no-cache ou Pragma: no-cache ne sont pas servies
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk depuis le cache. La directive
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <directive>CacheIgnoreCacheControl</directive> permet de modifier ce
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk comportement. Avec <directive>CacheIgnoreCacheControl
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk On</directive>, le serveur tentera de servir la ressource depuis le
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk cache, m&ecirc;me si la requ&ecirc;te contient un en-t&ecirc;te
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk no-cache.</p>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
dff2cc5646d4437ab9e0cb1dcb59da65462a5938jeff.schenk <highlight language="config">
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk CacheIgnoreCacheControl On
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk </highlight>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <note type="warning"><title>Avertissement :</title>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk Cette directive permet de servir des ressources depuis le cache,
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk m&ecirc;me si le client a demand&eacute; &agrave; ce qu'il n'en soit pas ainsi. Le
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk contenu servi est ainsi susceptible d'&ecirc;tre p&eacute;rim&eacute;.
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk </note>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk</usage>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<seealso><directive module="mod_cache">CacheStorePrivate</directive></seealso>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<seealso><directive module="mod_cache">CacheStoreNoStore</directive></seealso>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk</directivesynopsis>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<directivesynopsis>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<name>CacheIgnoreQueryString</name>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<description>Ignore la cha&icirc;ne de param&egrave;tres lors de la mise en
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenkcache</description>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<syntax>CacheIgnoreQueryString On|Off</syntax>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<default>CacheIgnoreQueryString Off</default>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<contextlist><context>server config</context><context>virtual host</context>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk</contextlist>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<usage>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <p>Normalement, les requ&ecirc;tes comportant une cha&icirc;ne de param&egrave;tres
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk sont mises en cache s&eacute;par&eacute;ment si leurs cha&icirc;nes de param&egrave;tres
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk diff&egrave;rent.
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk En accord avec la RFC 2616/13.9, cette mise en cache n'est effectu&eacute;e
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk s&eacute;par&eacute;ment que si une date d'expiration est sp&eacute;cifi&eacute;e. La directive
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <directive>CacheIgnoreQueryString</directive> permet la mise en
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk cache de requ&ecirc;tes m&ecirc;me si aucune date d'expiration est sp&eacute;cifi&eacute;e, et
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk de renvoyer une r&eacute;ponse depuis la cache m&ecirc;me si les cha&icirc;nes de
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk param&egrave;tres diff&egrave;rent. Du point de vue du cache, la requ&ecirc;te est
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk trait&eacute;e comme si elle ne poss&egrave;dait pas de cha&icirc;ne de param&egrave;tres
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk lorsque cette directive est activ&eacute;e.</p>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <highlight language="config">
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk CacheIgnoreQueryString On
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk </highlight>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk</usage>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk</directivesynopsis>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<directivesynopsis>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<name>CacheLastModifiedFactor</name>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<description>Le facteur utilis&eacute; pour g&eacute;n&eacute;rer une date d'expiration en
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenkfonction de la date de derni&egrave;re modification.</description>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<syntax>CacheLastModifiedFactor <var>flottant</var></syntax>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<default>CacheLastModifiedFactor 0.1</default>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<contextlist><context>server config</context><context>virtual host</context>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<context>directory</context><context>.htaccess</context>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk</contextlist>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<usage>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <p>Si un document ne poss&egrave;de pas de date d'expiration, elle peut
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk &ecirc;tre calcul&eacute;e en fonction de la date de derni&egrave;re modification, si
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk elle existe. La directive
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <directive>CacheLastModifiedFactor</directive> permet de sp&eacute;cifier
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk un <var>facteur</var> &agrave; utiliser pour la g&eacute;n&eacute;ration de cette date
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk d'expiration au sein de la formule suivante :
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <code>d&eacute;lai-expiration = dur&eacute;e-depuis-date-derni&egrave;re-modification *
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <var>facteur</var>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk date-expiration = date-courante + d&eacute;lai-expiration</code>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk Par exemple, si la derni&egrave;re modification du document date de 10
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk heures, et si <var>facteur</var> a pour valeur 0.1, le d&eacute;lai
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk d'expiration sera de 10*0.1 = 1 heure. Si l'heure courante est
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk 3:00pm, la date d'expiration calcul&eacute;e sera 3:00pm + 1 heure =
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk 4:00pm.
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk Si le d&eacute;lai d'expiration est sup&eacute;rieur &agrave; celui sp&eacute;cifi&eacute; par la
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk directive <directive>CacheMaxExpire</directive>, c'est ce dernier
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk qui l'emporte.</p>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <highlight language="config">
dff2cc5646d4437ab9e0cb1dcb59da65462a5938jeff.schenk CacheLastModifiedFactor 0.5
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk </highlight>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk</usage>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk</directivesynopsis>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<directivesynopsis>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<name>CacheIgnoreHeaders</name>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<description>Ne pas stocker le(s) en-t&ecirc;te(s) sp&eacute;cifi&eacute;(s) dans le cache.
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk</description>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<syntax>CacheIgnoreHeaders <var>en-t&ecirc;te</var> [<var>en-t&ecirc;te</var>] ...</syntax>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<default>CacheIgnoreHeaders None</default>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<contextlist><context>server config</context><context>virtual host</context>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk</contextlist>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<usage>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <p>En accord avec la RFC 2616, les en-t&ecirc;tes HTTP hop-by-hop ne sont
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk pas stock&eacute;s dans le cache. Les en-t&ecirc;tes HTTP suivant sont des
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk en-t&ecirc;tes hop-by-hop, et en tant que tels, ne sont en <em>aucun</em>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk cas stock&eacute;s dans le cache, quelle que soit la d&eacute;finition de la
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk directive <directive>CacheIgnoreHeaders</directive> :</p>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <ul>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <li><code>Connection</code></li>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <li><code>Keep-Alive</code></li>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <li><code>Proxy-Authenticate</code></li>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <li><code>Proxy-Authorization</code></li>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <li><code>TE</code></li>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <li><code>Trailers</code></li>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <li><code>Transfer-Encoding</code></li>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <li><code>Upgrade</code></li>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk </ul>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <p>La directive <directive>CacheIgnoreHeaders</directive> permet de
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk sp&eacute;cifier quels en-t&ecirc;tes HTTP ne doivent pas &ecirc;tre stock&eacute;s dans le
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk cache. Par exemple, il peut s'av&eacute;rer pertinent dans certains cas de
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk ne pas stocker les cookies dans le cache.</p>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <p>La directive <directive>CacheIgnoreHeaders</directive> accepte
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk une liste d'en-t&ecirc;tes HTTP s&eacute;par&eacute;s par des espaces, qui ne doivent
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk pas &ecirc;tre stock&eacute;s dans le cache. Si les en-t&ecirc;tes hop-by-hop sont les
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk seuls &agrave; ne pas devoir &ecirc;tre stock&eacute;s dans le cache (le comportement
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk compatible RFC 2616), la directive
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <directive>CacheIgnoreHeaders</directive> peut &ecirc;tre d&eacute;finie &agrave;
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <code>None</code>.</p>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <example><title>Exemple 1</title>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <highlight language="config">
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk CacheIgnoreHeaders Set-Cookie
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk </highlight>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk </example>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <example><title>Exemple 2</title>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <highlight language="config">
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk CacheIgnoreHeaders None
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk </highlight>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk </example>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <note type="warning"><title>Avertissement :</title>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk Si des en-t&ecirc;tes n&eacute;cessaires &agrave; la bonne gestion du cache, comme
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <code>Expires</code>, ne sont pas stock&eacute;s suite &agrave; la d&eacute;finition
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk d'une directive <directive>CacheIgnoreHeaders</directive>, le
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk comportement de mod_cache sera impr&eacute;visible.
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk </note>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk</usage>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk</directivesynopsis>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<directivesynopsis>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<name>CacheIgnoreURLSessionIdentifiers</name>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<description>Ignore les identifiants de session d&eacute;finis encod&eacute;s dans
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenkl'URL lors de la mise en cache
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk</description>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<syntax>CacheIgnoreURLSessionIdentifiers <var>identifiant</var>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk[<var>identifiant</var>] ...</syntax>
dff2cc5646d4437ab9e0cb1dcb59da65462a5938jeff.schenk<default>CacheIgnoreURLSessionIdentifiers None</default>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<contextlist><context>server config</context><context>virtual host</context>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk</contextlist>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk<usage>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <p>Certaines applications encodent l'identifiant de session dans
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk l'URL comme dans l'exemple suivant :
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk </p>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <ul>
5b64d5d44892834ba97f003080f3467299b7c5c5jeff.schenk <li><code>/une-application/image.gif;jsessionid=123456789</code></li>
<li><code>/une-application/image.gif?PHPSESSIONID=12345678</code></li>
</ul>
<p>Ceci implique la mise en cache des ressources s&eacute;par&eacute;ment pour
chaque session, ce qui n'est en g&eacute;n&eacute;ral pas souhait&eacute;. La directive
<directive>CacheIgnoreURLSessionIdentifiers</directive> permet de
d&eacute;finir une liste d'identifiants qui seront supprim&eacute;s de la cl&eacute;
utilis&eacute;e pour identifier une entit&eacute; dans le cache, de fa&ccedil;on &agrave; ce que
les ressources ne soient pas stock&eacute;es s&eacute;par&eacute;ment pour chaque
session.
</p>
<p><code>CacheIgnoreURLSessionIdentifiers None</code> vide la liste
des identifiants ignor&eacute;s. Autrement, chaque identifiant sp&eacute;cifi&eacute; est
ajout&eacute; &agrave; la liste.</p>
<example><title>Exemple 1</title>
<highlight language="config">
CacheIgnoreURLSessionIdentifiers jsessionid
</highlight>
</example>
<example><title>Exemple 2</title>
<highlight language="config">
CacheIgnoreURLSessionIdentifiers None
</highlight>
</example>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>CacheStoreExpired</name>
<description>Tente de mettre en cache les r&eacute;ponses que le serveur
consid&egrave;re comme arriv&eacute;es &agrave; expiration</description>
<syntax>CacheStoreExpired On|Off</syntax>
<default>CacheStoreExpired Off</default>
<contextlist><context>server config</context><context>virtual host</context>
<context>directory</context><context>.htaccess</context>
</contextlist>
<usage>
<p>Depuis la version 2.2.4, les r&eacute;ponses qui sont arriv&eacute;es &agrave;
expiration ne sont pas stock&eacute;es dans le cache. La directive
<directive>CacheStoreExpired</directive> permet de modifier ce
comportement. Avec <directive>CacheStoreExpired</directive> On, le
serveur tente de mettre en cache la ressource si elle est p&eacute;rim&eacute;e.
Les requ&ecirc;tes suivantes vont d&eacute;clencher une requ&ecirc;te si-modifi&eacute;-depuis
de la part du serveur d'origine, et la r&eacute;ponse sera renvoy&eacute;e &agrave;
partir du cache si la ressource d'arri&egrave;re-plan n'a pas &eacute;t&eacute; modifi&eacute;e.</p>
<highlight language="config">
CacheStoreExpired On
</highlight>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>CacheStorePrivate</name>
<description>Tente de mettre en cache des r&eacute;ponses que le serveur a
marqu&eacute;es comme priv&eacute;es</description>
<syntax>CacheStorePrivate On|Off</syntax>
<default>CacheStorePrivate Off</default>
<contextlist><context>server config</context><context>virtual host</context>
<context>directory</context><context>.htaccess</context>
</contextlist>
<usage>
<p>Normalement, les r&eacute;ponse comportant un en-t&ecirc;te Cache-Control:
dont la valeur est private ne seront pas stock&eacute;es dans le cache. La
directive <directive>CacheStorePrivate</directive> permet de
modifier ce comportement. Si
<directive>CacheStorePrivate</directive> est d&eacute;finie &agrave; On, le
serveur tentera de mettre la ressource en cache, m&ecirc;me si elle
contient un en-t&ecirc;te private.</p>
<highlight language="config">
CacheStorePrivate On
</highlight>
<note type="warning"><title>Avertissement :</title>
Cette directive autorise la mise en cache m&ecirc;me si le serveur
indique que la ressource ne doit pas &ecirc;tre mise en cache. Elle
n'est de ce fait appropri&eacute;e que dans le cas d'un cache
'priv&eacute;'.
</note>
</usage>
<seealso><directive module="mod_cache">CacheIgnoreCacheControl</directive></seealso>
<seealso><directive module="mod_cache">CacheStoreNoStore</directive></seealso>
</directivesynopsis>
<directivesynopsis>
<name>CacheStoreNoStore</name>
<description>Tente de mettre en cache les requ&ecirc;tes ou r&eacute;ponses dont
l'ent&ecirc;te Cache-Control: a pour valeur no-store.</description>
<syntax>CacheStoreNoStore On|Off</syntax>
<default>CacheStoreNoStore Off</default>
<contextlist><context>server config</context><context>virtual host</context>
<context>directory</context><context>.htaccess</context>
</contextlist>
<usage>
<p>Normalement, les requ&ecirc;tes ou r&eacute;ponses dont l'en-t&ecirc;te
Cache-Control: a pour valeur no-store ne sont pas stock&eacute;es dans le
cache. La directive <directive>CacheStoreNoStore</directive> permet
de modifier ce comportement. Si
<directive>CacheStoreNoStore</directive> est d&eacute;finie &agrave; On, le
serveur tente de mettre la ressource en cache m&ecirc;me si elle contient
un en-t&ecirc;te no-store.</p>
<highlight language="config">
CacheStoreNoStore On
</highlight>
<note type="warning"><title>Avertissement :</title>
Selon la RFC 2616, la valeur d'en-t&ecirc;te no-store est cens&eacute;e
"pr&eacute;venir la suppression ou la r&eacute;tention par inadvertance
d'informations sensibles (par exemple, sur des bandes de
sauvegarde)". Autrement dit, l'activation de la directive
<directive>CacheStoreNoCache</directive> pourrait provoquer le
stockage d'informations sensibles dans le cache. Vous avez donc
&eacute;t&eacute; pr&eacute;venus.
</note>
</usage>
<seealso><directive module="mod_cache">CacheIgnoreCacheControl</directive></seealso>
<seealso><directive module="mod_cache">CacheStorePrivate</directive></seealso>
</directivesynopsis>
<directivesynopsis>
<name>CacheLock</name>
<description>Active la protection contre les temp&ecirc;tes de requ&ecirc;tes.</description>
<syntax>CacheLock <var>on|off</var></syntax>
<default>CacheLock off</default>
<contextlist><context>server config</context><context>virtual host</context>
</contextlist>
<usage>
<p>La directive <directive>CacheLock</directive> active la protection
contre les temp&ecirc;tes de requ&ecirc;tes pour l'espace d'adressage donn&eacute;.</p>
<p>La configuration minimale pour activer le verrouillage contre les
temp&ecirc;tes de requ&ecirc;tes dans le r&eacute;pertoire par
d&eacute;faut des fichiers run-time est
la suivante :</p>
<highlight language="config">
# Active le verrouillage du cache
CacheLock on
</highlight>
<p>Les verrous sont des fichiers vides qui n'existent que pour les
URLs pr&eacute;sentes dont le contenu est p&eacute;rim&eacute; ; ils consomment dont bien
moins de ressources que le cache disque traditionnel.</p>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>CacheLockPath</name>
<description>D&eacute;finit le r&eacute;pertoire des verrous.</description>
<syntax>CacheLockPath <var>r&eacute;pertoire</var></syntax>
<default>CacheLockPath mod_cache-lock</default>
<contextlist><context>server config</context><context>virtual host</context>
</contextlist>
<usage>
<p>La directive <directive>CacheLockPath</directive> permet de
sp&eacute;cifier le r&eacute;pertoire dans lequel les verrous sont
cr&eacute;&eacute;s. Si <var>r&eacute;pertoire</var> n'est pas un
chemin absolu, il sera relatif au r&eacute;pertoire d&eacute;fini par la directive
<directive module="core">DefaultRuntimeDir</directive>.</p>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>CacheLockMaxAge</name>
<description>D&eacute;finit la dur&eacute;e de vie maximale d'un verrou de cache.</description>
<syntax>CacheLockMaxAge <var>entier</var></syntax>
<default>CacheLockMaxAge 5</default>
<contextlist><context>server config</context><context>virtual host</context>
</contextlist>
<usage>
<p>La directive <directive>CacheLockMaxAge</directive> permet de
sp&eacute;cifier la dur&eacute;e de vie maximale d'un verrou de cache.</p>
<p>Un verrou plus ancien que cette valeur exprim&eacute;e en secondes sera
ignor&eacute;, et la prochaine requ&ecirc;te entrante sera alors en mesure de
recr&eacute;er le verrou. Ce m&eacute;canisme permet d'&eacute;viter les mises &agrave; jour trop
longues initi&eacute;es par des clients lents.</p>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>CacheQuickHandler</name>
<description>Ex&eacute;cute le cache &agrave; partir d'un gestionnaire rapide.</description>
<syntax>CacheQuickHandler <var>on|off</var></syntax>
<default>CacheQuickHandler on</default>
<contextlist><context>server config</context><context>virtual host</context>
</contextlist>
<compatibility>Disponible &agrave; partir de la version 2.3.3 du serveur HTTP
Apache</compatibility>
<usage>
<p>La directive <directive
module="mod_cache">CacheQuickHandler</directive> permet de contr&ocirc;ler
la phase au cours de laquelle la mise en cache est effectu&eacute;e.</p>
<p>Avec la configuration par d&eacute;faut, le cache agit au cours de la
phase du gestionnaire rapide. Cette phase court-circuite la majorit&eacute;
des traitements du serveur, et constitue le mode d'op&eacute;ration le plus
performant pour un serveur typique. Le cache
<strong>s'incruste</strong> devant le serveur, et la majorit&eacute; des
traitements du serveur est court-circuit&eacute;e.</p>
<p>Lorsque cette directive est d&eacute;finie &agrave; off, le cache agit comme un
gestionnaire normal, et est concern&eacute; par toutes les phases de
traitement d'une requ&ecirc;te. Bien que ce mode soit moins performant que
le mode par d&eacute;faut, il permet d'utiliser le cache dans les cas o&ugrave; un
traitement complet de la requ&ecirc;te est n&eacute;cessaire, comme par exemple
lorsque le contenu est soumis &agrave; autorisation.</p>
<highlight language="config">
# Ex&eacute;cute le cache comme un gestionnaire normal
CacheQuickHandler off
</highlight>
<p>Lorsque le gestionnaire rapide est d&eacute;sactiv&eacute;, l'administrateur a
aussi la possibilit&eacute; de choisir avec pr&eacute;cision le point de la cha&icirc;ne
de filtrage o&ugrave; la mise en cache sera effectu&eacute;e, en utilisant le
filtre <strong>CACHE</strong>.</p>
<highlight language="config">
# Mise en cache du contenu avant l'intervention de mod_include et
# mod_deflate
CacheQuickHandler off
AddOutputFilterByType CACHE;INCLUDES;DEFLATE text/html
</highlight>
<p>Si le filtre CACHE est sp&eacute;cifi&eacute; plusieurs fois, c'est la derni&egrave;re
instance qui sera prise en compte.</p>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>CacheHeader</name>
<description>Ajoute un en-t&ecirc;te X-Cache &agrave; la r&eacute;ponse.</description>
<syntax>CacheHeader <var>on|off</var></syntax>
<default>CacheHeader off</default>
<contextlist><context>server config</context>
<context>virtual host</context>
<context>directory</context>
<context>.htaccess</context>
</contextlist>
<compatibility>Disponible depuis la version 2.3.9 d'Apache</compatibility>
<usage>
<p>Lorsque la directive <directive
module="mod_cache">CacheHeader</directive> est d&eacute;finie &agrave; on, un
en-t&ecirc;te <strong>X-Cache</strong> est ajout&eacute; &agrave; la r&eacute;ponse et contient
l'&eacute;tat du cache pour cette derni&egrave;re. Si le gestionnaire normal est
utilis&eacute;, cette directive peut se situer dans une section <directive
module="core">&lt;Directory&gt;</directive> ou <directive
module="core">&lt;Location&gt;</directive>. Si c'est le
gestionnaire rapide qui est utilis&eacute;, elle doit se situer dans un
contexte de serveur principal ou de serveur virtuel, sinon elle sera
ignor&eacute;e.</p>
<dl>
<dt><strong>HIT</strong></dt><dd>Le contenu &eacute;tait &agrave; jour et a &eacute;t&eacute;
servi depuis le cache.</dd>
<dt><strong>REVALIDATE</strong></dt><dd>Le contenu &eacute;tait p&eacute;rim&eacute;, a
&eacute;t&eacute; mis &agrave; jour, puis a &eacute;t&eacute; servi depuis le cache.</dd>
<dt><strong>MISS</strong></dt><dd>Le contenu n'a pas &eacute;t&eacute; servi
depuis le cache, mais directement depuis le serveur demand&eacute;.</dd>
</dl>
<highlight language="config">
# Active l'en-t&ecirc;te X-Cache
CacheHeader on
</highlight>
<highlight language="config">
X-Cache: HIT from localhost
</highlight>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>CacheDetailHeader</name>
<description>Ajoute un en-t&ecirc;te X-Cache-Detail &agrave; la r&eacute;ponse.</description>
<syntax>CacheDetailHeader <var>on|off</var></syntax>
<default>CacheDetailHeader off</default>
<contextlist><context>server config</context>
<context>virtual host</context>
<context>directory</context>
<context>.htaccess</context>
</contextlist>
<compatibility>Disponible depuis la version 2.3.9 d'Apache</compatibility>
<usage>
<p>Lorsque la directive <directive
module="mod_cache">CacheDetailHeader</directive> est d&eacute;finie &agrave; on, un
en-t&ecirc;te <strong>X-Cache-Detail</strong> est ajout&eacute; &agrave; la r&eacute;ponse et
contient les raisons pr&eacute;cises d'une d&eacute;cision d'utilisation du cache
vis &agrave; vis de cette derni&egrave;re.</p>
<p>Ceci peut s'av&eacute;rer utile au cours du d&eacute;veloppement de services
RESTful mis en cache pour obtenir des informations suppl&eacute;mentaires &agrave;
propos des d&eacute;cisions vis &agrave; vis du cache &eacute;crites dans les en-t&ecirc;tes de
la r&eacute;ponse. Il est ainsi possible de v&eacute;rifier si
<code>Cache-Control</code> et d'autres en-t&ecirc;tes ont &eacute;t&eacute; correctement
utilis&eacute;s par le service et le client.</p>
<p>Si le gestionnaire normal est utilis&eacute;, cette directive peut se
situer dans une section <directive
module="core">&lt;Directory&gt;</directive> ou <directive
module="core">&lt;Location&gt;</directive>. Si c'est le gestionnaire
rapide qui est utilis&eacute;, elle doit se situer dans un contexte de
serveur principal ou de serveur virtuel, sinon elle sera ignor&eacute;e.</p>
<highlight language="config">
# Active l'en-t&ecirc;te X-Cache-Detail
CacheDetailHeader on
</highlight>
<example>
X-Cache-Detail: "conditional cache hit: entity refreshed" from localhost<br />
</example>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>CacheKeyBaseURL</name>
<description>Remplace l'URL de base des cl&eacute;s du cache mandat&eacute;es en
inverse</description>
<syntax>CacheKeyBaseURL <var>URL</var></syntax>
<default>CacheKeyBaseURL http://example.com</default>
<contextlist><context>server config</context>
<context>virtual host</context>
</contextlist>
<compatibility>Disponible depuis la version 2.3.9 d'Apache</compatibility>
<usage>
<p>Lorsque la directive <directive
module="mod_cache">CacheKeyBaseURL</directive> est utilis&eacute;e, l'URL
sp&eacute;cifi&eacute;e sera utilis&eacute;e comme URL de base pour calculer l'URL des cl&eacute;s
du cache dans la configuration du mandataire inverse. Par d&eacute;faut,
c'est le protocole/nom d'h&ocirc;te/port du serveur virtuel courant qui sera
utilis&eacute; pour construire la cl&eacute; de cache. Dans le cas d'un cluster de
machines, si toutes les entr&eacute;es du cache doivent poss&eacute;der la m&ecirc;me cl&eacute;,
cette directive permet de sp&eacute;cifier une nouvelle URL de base.</p>
<highlight language="config">
# Remplace l'URL de base de la cl&eacute; de cache.
CacheKeyBaseURL http://www.example.com/
</highlight>
<note type="warning">Prenez garde en d&eacute;finissant cette directive. Si
deux serveurs virtuels distincts poss&egrave;dent accidentellement la m&ecirc;me
URL de base, les entr&eacute;es en provenance d'un serveur virtuel seront
servies par l'autre.</note>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>CacheStaleOnError</name>
<description>Sert du contenu non &agrave; jour &agrave; la place de r&eacute;ponses 5xx.</description>
<syntax>CacheStaleOnError <var>on|off</var></syntax>
<default>CacheStaleOnError on</default>
<contextlist><context>server config</context>
<context>virtual host</context>
<context>directory</context>
<context>.htaccess</context>
</contextlist>
<compatibility>Disponible depuis la version 2.3.9 d'Apache</compatibility>
<usage>
<p>Lorsque la directive <directive
module="mod_cache">CacheStaleOnError</directive> est d&eacute;finie &agrave; on, et
si des donn&eacute;es non mises &agrave; jour sont disponibles dans le cache, ce
dernier renverra ces donn&eacute;es, plut&ocirc;t qu'une &eacute;ventuelle r&eacute;ponse 5xx en
provenance du serveur d'arri&egrave;re-plan. Alors que l'en-t&ecirc;te
Cache-Control envoy&eacute; par les clients sera respect&eacute;, et que les clients
recevront donc dans ce cas la r&eacute;ponse 5xx brute &agrave; leur requ&ecirc;te, cette
r&eacute;ponse 5xx renvoy&eacute;e au client n'invalidera pas le contenu dans le
cache. </p>
<highlight language="config">
# Sert des donn&eacute;es non mises &agrave; jour en cas d'erreur.
CacheStaleOnError on
</highlight>
</usage>
</directivesynopsis>
</modulesynopsis>