]> granicus.if.org Git - apache/commitdiff
[trunk][doc] Introducing .fr translation for compliance.xml
authorVincent Deffontaines <gryzor@apache.org>
Sat, 16 Nov 2013 14:44:17 +0000 (14:44 +0000)
committerVincent Deffontaines <gryzor@apache.org>
Sat, 16 Nov 2013 14:44:17 +0000 (14:44 +0000)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1542515 13f79535-47bb-0310-9956-ffa450edef68

docs/manual/compliance.html
docs/manual/compliance.html.fr [new file with mode: 0644]
docs/manual/compliance.xml.fr [new file with mode: 0644]
docs/manual/compliance.xml.meta

index 7d2dcccbf182d97e083979edab5782a8cffc8b1d..879a03cb0bd78901a3cd2f7b499562555ac7a636 100644 (file)
@@ -3,3 +3,7 @@
 URI: compliance.html.en
 Content-Language: en
 Content-type: text/html; charset=ISO-8859-1
+
+URI: compliance.html.fr
+Content-Language: fr
+Content-type: text/html; charset=ISO-8859-1
diff --git a/docs/manual/compliance.html.fr b/docs/manual/compliance.html.fr
new file mode 100644 (file)
index 0000000..df6581b
--- /dev/null
@@ -0,0 +1,518 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head><!--
+        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+              This file is generated from xml source: DO NOT EDIT
+        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+      -->
+<title>Conformité au protocole HTTP - Serveur Apache HTTP</title>
+<link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
+<link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
+<link href="./style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="./style/css/prettify.css" />
+<script src="./style/scripts/prettify.js" type="text/javascript">
+</script>
+
+<link href="./images/favicon.ico" rel="shortcut icon" /></head>
+<body id="manual-page"><div id="page-header">
+<p class="menu"><a href="./mod/">Modules</a> | <a href="./mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="./glossary.html">Glossaire</a> | <a href="./sitemap.html">Plan du site</a></p>
+<p class="apache">Serveur Apache HTTP Version 2.5</p>
+<img alt="" src="./images/feather.gif" /></div>
+<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="./images/left.gif" /></a></div>
+<div id="path">
+<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="./">Version 2.5</a></div><div id="page-content"><div id="preamble"><h1>Conformité au protocole HTTP</h1>
+<div class="toplang">
+<p><span>Langues Disponibles: </span><a href="./en/compliance.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
+<a href="./fr/compliance.html" title="Français">&nbsp;fr&nbsp;</a></p>
+</div>
+
+    <p>Ce document décrit le mécanisme utilisé pour définir une
+    politique de conformité au protocole HTTP pour un espace d'URL au
+    niveau des serveurs d'origine ou des application sous-jacentes à cet
+    espace d'URL.</p>
+
+    <p>Chaque politique de conformité est décrite ci-dessous à
+    destination de tous ceux qui ont reçu un message d'erreur suite à un
+    rejet en provenance d'une politique, et ont donc besoin de savoir à
+    quoi est du ce rejet et ce qu'ils doivent faire pour corriger
+    l'erreur.</p>
+  </div>
+<div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#intro">Imposer la conformité au protocole HTTP dans Apache 2</a></li>
+<li><img alt="" src="./images/down.gif" /> <a href="#policyconditional">Politique des requêtes conditionnelles</a></li>
+<li><img alt="" src="./images/down.gif" /> <a href="#policylength">Politique de gestion de l'en-tête Content-Length</a></li>
+<li><img alt="" src="./images/down.gif" /> <a href="#policytype">Politique de filtrage de l'en-tête Content-Type</a></li>
+<li><img alt="" src="./images/down.gif" /> <a href="#policykeepalive">Politique de gestion des connexions persistantes (Keepalive)</a></li>
+<li><img alt="" src="./images/down.gif" /> <a href="#policymaxage">Durée de fraîcheur / Politique de gestion de l'âge maximum</a></li>
+<li><img alt="" src="./images/down.gif" /> <a href="#policynocache">Politique de gestion des contenus qui ne peuvent pas être mis
+    en cache</a></li>
+<li><img alt="" src="./images/down.gif" /> <a href="#policyvalidation">Politique de validation</a></li>
+<li><img alt="" src="./images/down.gif" /> <a href="#policyvary">Politique de gestion de l'en-tête Vary</a></li>
+<li><img alt="" src="./images/down.gif" /> <a href="#policyversion">Politique de gestion des versions de protocole</a></li>
+</ul><h3>Voir aussi</h3><ul class="seealso"><li><a href="filter.html">Filtres</a></li></ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
+<div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="intro" id="intro">Imposer la conformité au protocole HTTP dans Apache 2</a></h2>
+    
+    <table class="related"><tr><th>Modules Apparentés</th><th>Directives Apparentées</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_policy.html">mod_policy</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_policy.html#policyconditional">PolicyConditional</a></code></li><li><code class="directive"><a href="./mod/mod_policy.html#policylength">PolicyLength</a></code></li><li><code class="directive"><a href="./mod/mod_policy.html#policykeepalive">PolicyKeepalive</a></code></li><li><code class="directive"><a href="./mod/mod_policy.html#policytype">PolicyType</a></code></li><li><code class="directive"><a href="./mod/mod_policy.html#policyvary">PolicyVary</a></code></li><li><code class="directive"><a href="./mod/mod_policy.html#policyvalidation">PolicyValidation</a></code></li><li><code class="directive"><a href="./mod/mod_policy.html#policynocache">PolicyNocache</a></code></li><li><code class="directive"><a href="./mod/mod_policy.html#policymaxage">PolicyMaxage</a></code></li><li><code class="directive"><a href="./mod/mod_policy.html#policyversion">PolicyVersion</a></code></li></ul></td></tr></table>
+
+    <p>Le protocole HTTP applique le <strong>principe de
+    robustesse</strong> décrit dans la <a href="http://tools.ietf.org/html/rfc1122">RFC1122</a>, et stipulant
+    <strong>"Soyez libéral pour ce que vous acceptez, conservateur pour
+    ce que vous envoyez"</strong>. Selon ce principe, les clients HTTP
+    vont compenser en corrigeant les réponses incorrectes ou mal
+    configurées, ou ne pouvant pas être mises en cache.</p>
+
+    <p>Comme un site web est configuré pour faire face à un trafic
+    toujours grandissant, des applications mal configurées ou non
+    optimisées ou certaines configurations de serveur peuvent menacer la stabilité
+    et l'évolutivité du site web, ainsi que les coûts d'hébergement qui
+    y sont associés. L'évolution d'un site web pour faire face à une
+    complexité croissante de sa configuration accroît les
+    difficultés rencontrées pour détecter et enregistrer les espaces
+    d'URL mal configurés pour un serveur donné.</p>
+
+    <p>De ce fait, un point peut être atteint où le principe
+    "conservateur pour ce que vous envoyez" doit être imposé par
+    l'administrateur du serveur.</p>
+
+    <p>Le module <code class="module"><a href="./mod/mod_policy.html">mod_policy</a></code> fournit un jeu de filtres
+    qui peuvent être appliqués à un serveur, permettant de tester
+    explicitement les points clé du protocle HTTP, et de journaliser en
+    tant qu'avertissements les réponses non conformes, ou même de
+    simplement les rejeter avec un code d'erreur. Chaque filtre peut
+    être appliqué séparément, permettant à l'administrateur de choisir
+    quelles politiques de conformité doivent être imposées en fonction
+    de l'environnement.
+    </p>
+
+    <p>Les filtres peuvent être mis en place dans des environnements de
+    test ou de simulation à destination des développeurs d'applications
+    et de sites web, ou s'appliquer à des serveurs en production pour
+    protéger l'infrastructure de systèmes en dehors du contrôle direct
+    de l'administrateur.</p>
+
+    <p class="figure">
+    <img src="images/compliance-reverse-proxy.png" width="666" height="239" alt="Imposer la conformité au protocole HTTP pour un serveur     d'applications" />
+    </p>
+
+    <p>Dans l'exemple ci-dessus, un serveur Apache httpd a été intercalé
+    entre le serveur d'applications et l'internet au sens large, et
+    configuré pour mettre en cache les réponses en provenance du serveur
+    d'applications. Les filtres de <code class="module"><a href="./mod/mod_policy.html">mod_policy</a></code> ont été
+    ajoutés pour imposer le support de la mise en cache de contenu et
+    des requêtes conditionnelles, assurant ainsi que
+    <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> et les caches publics de l'internet
+    seront pleinement capables de mettre en cache le contenu créé avec
+    efficacité par le serveur d'applications.</p>
+
+    <p class="figure">
+    <img src="images/compliance-static.png" width="469" height="239" alt="Imposer la conformité au protocole HTTP pour un serveur statique" />
+    </p>
+
+    <p>Dans l'exemple plus simple ci-dessus, un serveur statique qui
+    sert du contenu ayant une forte probabilité d'être mis en cache,
+    se voit appliqué un jeu de règles afin de
+    s'assurer que sa configuration respecte un niveau minimum de
+    conformité au protocole HTTP.</p>
+
+  </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="policyconditional" id="policyconditional">Politique des requêtes conditionnelles</a></h2>
+    
+    <table class="related"><tr><th>Modules Apparentés</th><th>Directives Apparentées</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_policy.html">mod_policy</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_policy.html#policyconditional">PolicyConditional</a></code></li></ul></td></tr></table>
+
+    <p>Cette politique sera rejetée si le serveur ne répond pas à une
+    requête conditionnelle avec le code d'état approprié. </p>
+
+    <p>C'est grâce aux requêtes conditionnelles qu'un cache HTTP peut
+    rafraîchir un contenu périmé, et en particulier dans le cas des
+    contenus à durée de validité courte, l'absence de support des
+    requêtes conditionnelles peut augmenter la charge du serveur.</p>
+
+    <p>Plus particulièrement, la présence d'une des en-têtes suivantes
+    dans la requête rend cette dernière conditionnelle :</p>
+
+    <dl>
+    <dt><code>If-Match</code></dt>
+    <dd>Si l'ETag fourni dans l'en-tête <code>If-Match</code> ne
+    correspond pas à l'ETag de la réponse, le serveur doit renvoyer un
+    code d'erreur <code>412 Precondition Failed</code>. Vous trouverez
+    tous les détails du traitement d'un en-tête <code>If-Match</code>
+    dans la <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.24">RFC2616
+    section 14.24</a>.</dd>
+
+    <dt><code>If-None-Match</code></dt>
+    <dd>Si l'ETag fourni dans l'en-tête <code>If-None-Match</code>
+    correspond à l'ETag de la réponse, le serveur doit renvoyer soit
+    <code>304 Not Modified</code> pour les requêtes GET/HEAD, soit
+    <code>412 Precondition Failed</code> pour les autres méthodes. Vous trouverez
+    tous les détails du traitement d'un en-tête
+    <code>If-None-Match</code> dans la <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.26">RFC2616
+    section 14.26</a>.</dd>
+
+    <dt><code>If-Modified-Since</code></dt>
+    <dd>Si la date fournie dans l'en-tête <code>If-Modified-Since</code>
+    est plus ancienne que celle de l'en-tête <code>Last-Modified</code>
+    de la réponse, le serveur doit renvoyer <code>304 Not Modified</code>. Vous trouverez
+    tous les détails du traitement d'un en-tête
+    <code>If-Modified-Since</code> dans la <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.25">RFC2616
+    section 14.25</a>.</dd>
+
+    <dt><code>If-Unmodified-Since</code></dt>
+    <dd>Si la date fournie dans l'en-tête
+    <code>If-Unmodified-Since</code> est plus récente que celle de
+    l'en-tête <code>Last-Modified</code> de la réponse, le serveur doit
+    renvoyer <code>412 Precondition Failed</code>. Vous trouverez
+    tous les détails du traitement d'un en-tête
+    <code>If-Unmodified-Since</code> dans la <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.28">RFC2616
+    section 14.28</a>.</dd>
+
+    <dt><code>If-Range</code></dt>
+    <dd>Si l'ETag fourni dans l'en-tête <code>If-Range</code> correspond
+    à l'ETag ou à l'en-tête Last-Modified de la réponse, et si un
+    en-tête <code>Range</code> valide est présent, le serveur doit
+    renvoyer <code>206 Partial Response</code>. Vous trouverez
+    tous les détails du traitement d'un en-tête <code>If-Range</code>
+    dans la <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.27">RFC2616
+    section 14.27</a>.</dd>
+
+    </dl>
+
+    <p>Si la réponse est considérée comme ayant réussi (une réponse
+    2xx), alors qu'elle était conditionnelle et qu'une des réponses
+    ci-dessus était attendue à la place, cette politique sera rejetée.
+    Les réponses qui indiquent une redirection ou une erreur de toute
+    sorte (3xx, 4xx, 5xx) seront ignorées de cette politique.</p>
+
+    <p>Cette politique est implémentée par le filtre
+    <strong>POLICY_CONDITIONAL</strong>.</p>
+
+  </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="policylength" id="policylength">Politique de gestion de l'en-tête Content-Length</a></h2>
+    
+    <table class="related"><tr><th>Modules Apparentés</th><th>Directives Apparentées</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_policy.html">mod_policy</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_policy.html#policylength">PolicyLength</a></code></li></ul></td></tr></table>
+
+    <p>Cette politique sera rejetée si la réponse du serveur ne contient pas d'en-tête
+    <code>Content-Length</code> explicite.</p>
+
+    <p>De nombreuses méthodes pour déterminer la taille d'un
+    corps de réponse sont décrites dans la <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec4.4">RFC2616
+    section 4.4 Message Length</a>.</p>
+
+    <p>Lorsque l'en-tête <code>Content-Length</code> est présente, la
+    taille du corps est déclarée au début de la réponse. Si cette
+    information est manquante, un cache HTTP pourrait choisir d'ignorer
+    la réponse, car il ne pourrait pas déterminer a priori si la réponse
+    reste dans les limites définies du cache.</p>
+
+    <p>Pour indiquer la fin de la réponse au client sans que ce dernier
+    ait à en connaître la taille au préalable, HTTP/1.1 propose
+    l'en-tête <code>Transfer-Encoding</code> comme une alternative à
+    <code>Content-Length</code>. Cependant, lors du traitement de
+    requêtes HTTP/1.0, et si l'en-tête <code>Content-Length</code> est
+    absente, le seul mécanisme dont dispose le serveur pour indiquer la
+    fin de la requête consiste à couper la connexion. Dans un
+    environnement contenant des répartiteurs de charge, cela peut
+    court-circuiter le mécanisme des connexions persistantes
+    (keepalive).
+    </p>
+
+    <p>Si la réponse est considérée comme réussie (une réponse 2xx) et
+    possède un corps (ce qui exclut les réponses <code>204 No
+    Content</code>), et si l'en-tête <code>Content-Length</code> est
+    absente, la réponse sera rejetée. Aucune réponse indiquant une
+    redirection ou une erreur de toute nature (3xx, 4xx, 5xx) n'est
+    prise en compte par cette politique.</p>
+
+    <div class="warning">Notez que certains modules comme
+    <code class="module"><a href="./mod/mod_proxy.html">mod_proxy</a></code> ajoutent leur propre en-tête
+    <code>Content-Length</code> sous réserve que la réponse où cette
+    en-tête est absente soit suffisamment courte pour que le module ait
+    pu la lire en une seule passe. De ce fait, des réponses courtes pourront
+    être acceptées par la politique, alors que d'autres plus longues
+    seront rejetées pour la même URL.</div>
+
+    <p>Cette politique est implémentée par le filtre
+    <strong>POLICY_LENGTH</strong>.</p>
+
+  </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="policytype" id="policytype">Politique de filtrage de l'en-tête Content-Type</a></h2>
+    
+    <table class="related"><tr><th>Modules Apparentés</th><th>Directives Apparentées</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_policy.html">mod_policy</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_policy.html#policytype">PolicyType</a></code></li></ul></td></tr></table>
+
+    <p>Cette politique sera rejetée si la réponse du serveur ne contient pas d'en-tête
+    <code>Content-Type</code> explicite et valide du point de vue de la
+    syntaxe, correspondant au modèle défini par le serveur.</p>
+
+    <p>Le type de media du corps est placé dans une en-tête
+    <code>Content-Type</code> dont le format est décrit en détail dans
+    la <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec3.7">
+    RFC2616 section 3.7 Media Types</a>.</p>
+
+    <p>Une en-tête <code>Content-Type</code> dont la syntaxe est valide
+    sera du style :</p>
+
+    <div class="example"><p><code>
+      Content-Type: text/html; charset=iso-8859-1
+    </code></p></div>
+
+    <p>Exemples d'en-têtes <code>Content-Type</code> non valides :</p>
+
+    <div class="example"><p><code>
+      # invalide<br />
+      Content-Type: foo<br />
+      # vide<br />
+      Content-Type:
+    </code></p></div>
+
+    <p>L'administrateur peut restreindre la politique à un ou plusieurs
+    types spécifiques, ou utiliser des caractères génériques comme
+    <code>*/*</code>.</p>
+
+    <p>Cette politique est mise en oeuvre par le filtre
+    <strong>POLICY_TYPE</strong>.</p>
+
+  </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="policykeepalive" id="policykeepalive">Politique de gestion des connexions persistantes (Keepalive)</a></h2>
+    
+    <table class="related"><tr><th>Modules Apparentés</th><th>Directives Apparentées</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_policy.html">mod_policy</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_policy.html#policykeepalive">PolicyKeepalive</a></code></li></ul></td></tr></table>
+
+    <p>Cette politique era rejetée si la réponse du serveur ne contient pas d'en-tête
+    <code>Content-Length</code> explicite, ou d'en-tête
+    <code>Transfer-Encoding</code> défini à chunked.</p>
+
+    <p>De nombreuses manières pour déterminer la taille d'un
+    corps de réponse sont décrites dans la <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec4.4">RFC2616
+    section 4.4 Message Length</a>.</p>
+
+    <p>Pour indiquer la fin de la réponse au client sans que ce dernier
+    ait à en connaître la taille au préalable, HTTP/1.1 propose
+    l'en-tête <code>Transfer-Encoding</code> comme une alternative à
+    <code>Content-Length</code>. Cependant, lors du traitement de
+    requêtes HTTP/1.0, et si l'en-tête <code>Content-Length</code> est
+    absent, le seul mécanisme dont dispose le serveur pour indiquer la
+    fin de la requête consiste à couper la connexion. Dans un
+    environnement contenant des répartiteurs de charge, cela peut
+    court-circuiter le mécanisme des connexions persistantes
+    (keepalive).
+    </p>
+
+    <p>En particulier, les règles suivantes sont appliquées : </p>
+
+    <dl>
+    <dt>Si</dt>
+    <dd>cette connexion n'est pas marquée en erreur ;</dd>
+
+    <dt>et</dt>
+    <dd>le client n'attend pas 100-continue ;</dd>
+
+    <dt>et</dt>
+    <dd>le code de statut de la réponse ne nécessite pas de fermeture de connexion ;</dd>
+
+    <dt>et</dt>
+    <dd>le corps de la réponse a une taille définie suite au code de
+    statut 304 ou 204, la méthode de requête est HEAD, un en-tête
+    Content-Length ou Transfer-Encoding: chunked a déjà été défini, ou
+    la requête est de type HTTP/1.1 et peut donc être définie à chunked.</dd>
+
+    <dt>alors</dt>
+    <dd>keepalive est supporté.</dd>
+    </dl>
+
+    <div class="warning">Le serveur peut décider de désactiver les
+    connexions persistantes pour de nombreuses raisons, comme un arrêt
+    imminent, un Connection: close en provenance du client, ou une
+    requête client de type HTTP/1.0 dont la réponse ne comporte pas
+    d'en-tête <code>Content-Length</code>, mais pour ce qui nous
+    concerne, nous ne vérifions que la possibilité des connexions
+    persistantes depuis l'application, et non si les connexions
+    persistantes sont activées.</div>
+
+    <p>Notez aussi que le serveur HTTP Apache propose un filtre qui
+    ajoute un codage chunked aux réponses qui ne contiennent pas
+    d'en-tête <code>Content-Length</code> explicite. Cette politique
+    prend en compte les cas où le filtre est court-circuité ou
+    désactivé.</p>
+
+    <p>Cette politique est implémentée par le filtre
+    <strong>POLICY_KEEPALIVE</strong>.</p>
+
+  </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="policymaxage" id="policymaxage">Durée de fraîcheur / Politique de gestion de l'âge maximum</a></h2>
+    
+    <table class="related"><tr><th>Modules Apparentés</th><th>Directives Apparentées</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_policy.html">mod_policy</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_policy.html#policymaxage">PolicyMaxage</a></code></li></ul></td></tr></table>
+
+    <p>Cette politique se verra rejetée si la réponse du serveur ne
+    contient pas de <strong>durée de fraîcheur</strong> explicite au
+    moins grande que la limite définie par le serveur, ou si la
+    durée de fraîcheur est calculée à partir d'une heuristique.</p>
+
+    <p>Vous trouverez tous les détails à propos du calcul d'une durée de
+    fraîcheur dans la <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec13.2">RFC2616
+    section 13.2 Expiration Model</a>.</p>
+
+    <p>Pendant la durée de fraîcheur, un cache n'a pas besoin de
+    contacter le serveur original, et il peut renvoyer le contenu situé
+    dans le cache tel quel au client.</p>
+
+    <p>Lorsque la date de péremption est atteinte, le cache doit
+    contacter le serveur original dans le but de vérifier si le contenu
+    situé dans le cache est encore à jour, et si ce n'est pas le cas, de
+    le remplacer par le contenu correspondant sur le serveur original.</p>
+
+    <p>Lorsque la durée de fraîcheur est trop courte, il peut en
+    résulter un excès de charge pour le serveur. De plus, si une
+    interruption de service survient, et si cette dernière est longue,
+    ou plus longue que la durée de fraîcheur, tout le contenu du cache
+    s'en trouvera périmé, ce qui causera un trafic très important
+    lorsque le serveur ou le réseau sera rétabli.</p>
+
+    <p>Cette politique est implémentée par le filtre
+    <strong>POLICY_MAXAGE</strong>.</p>
+
+  </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="policynocache" id="policynocache">Politique de gestion des contenus qui ne peuvent pas être mis
+    en cache</a></h2>
+    
+    <table class="related"><tr><th>Modules Apparentés</th><th>Directives Apparentées</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_policy.html">mod_policy</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_policy.html#policynocache">PolicyNocache</a></code></li></ul></td></tr></table>
+
+    <p>Cette politique sera rejetée si la réponse du serveur
+    déclare elle-même qu'elle ne doit pas être mise en cache à l'aide
+    d'un en-tête <code>Cache-Control</code> ou <code>Pragma</code>.</p>
+
+    <p>Vous trouverez tous les détails à propos de la manière dont un
+    contenu peut être déclaré comme non cachable dans la <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.1">RFC2616
+    section 14.9.1 What is Cacheable</a>, et au sein de la définition de
+    l'en-tête <code>Pragma</code> dans la <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.32">RFC2616
+    section 14.32 Pragma</a>.</p>
+
+    <p>Plus précisément, si une combinaison des en-têtes suivants existe
+    dans la réponse, cette dernière sera rejetée :</p>
+
+    <ul>
+    <li><code>Cache-Control: no-cache</code></li>
+    <li><code>Cache-Control: no-store</code></li>
+    <li><code>Cache-Control: private</code></li>
+    <li><code>Pragma: no-cache</code></li>
+    </ul>
+
+    <p>D'une manière générale, lorsque cette politique est activée, et
+    si d'une manière inattendue un contenu non cachable peut induire un
+    niveau de charge du serveur inacceptable, tout contenu défini comme
+    non cachable par le serveur sera rejeté.</p>
+
+    <p>Cette politique est implémentée par le filtre
+    <strong>POLICY_NOCACHE</strong>.</p>
+
+  </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="policyvalidation" id="policyvalidation">Politique de validation</a></h2>
+    
+    <table class="related"><tr><th>Modules Apparentés</th><th>Directives Apparentées</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_policy.html">mod_policy</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_policy.html#policyvalidation">PolicyValidation</a></code></li></ul></td></tr></table>
+
+    <p>Cette politique sera rejetée si la réponse du serveur
+    ne contient aucune en-tête syntaxiquement correct <code>ETag</code>
+    ou <code>Last-Modified</code>.</p>
+
+    <p>Vous trouverez une description complète de l'en-tête
+    <code>ETag</code> dans la <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.19">RFC2616
+    section 14.19 Etag</a>, et de l'en-tête <code>Last-Modified</code>
+    dans la <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.29">RFC2616
+    section 14.29 Last-Modified</a>.</p>
+
+    <p>La vérification est effectuée non seulement en ce qui concerne la
+    présence des en-têtes, mais aussi du point de vue de leur syntaxe.</p>
+
+    <p>Si une en-tête <code>ETag</code> n'est pas entourée de guillemets,
+    ou n'est pas déclarée "weak" en le préfixant avec un "W/", la politique
+    sera rejetée. De même, si l'interprétation d'une en-tête
+    <code>Last-Modified</code> ne fournit pas de date valide, la réponse
+    sera rejetée.</p>
+
+    <p>Cette politique est implémentée par le filtre
+    <strong>POLICY_VALIDATION</strong>.</p>
+
+  </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="policyvary" id="policyvary">Politique de gestion de l'en-tête Vary</a></h2>
+    
+    <table class="related"><tr><th>Modules Apparentés</th><th>Directives Apparentées</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_policy.html">mod_policy</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_policy.html#policyvary">PolicyVary</a></code></li></ul></td></tr></table>
+
+    <p>Cette politique se verra rejetée si la réponse du serveur
+    contient une en-tête <code>Vary</code>, et si cette en-tête
+    contient à son tour une en-tête mise en liste noire par
+    l'administrateur.</p>
+
+    <p>L'en-tête <code>Vary</code> est décrite en détails dans la <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.44">RFC2616
+    section 14.44 Vary</a>.</p>
+
+    <p>Certaines en-têtes définies par les clients, comme
+    <code>User-Agent</code>, peuvent contenir des milliers ou même des
+    millions de combinaisons de valeurs au cours du temps, et si la
+    réponse est considérée comme pouvant être mise en cache, le cache
+    peut tenter d'enregistrer toutes ces réponses, ce qui peut l'amener
+    à saturation et à noyer les autres entrées qu'il contient. Avec ce
+    scénario, cette politique sera rejetée.</p>
+
+    <p>Cette politique est implémentée par le filtre
+    <strong>POLICY_VARY</strong>.</p>
+
+  </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="policyversion" id="policyversion">Politique de gestion des versions de protocole</a></h2>
+    
+    <table class="related"><tr><th>Modules Apparentés</th><th>Directives Apparentées</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_policy.html">mod_policy</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_policy.html#policyversion">PolicyVersion</a></code></li></ul></td></tr></table>
+
+    <p>Cette politique sera rejetée si la réponse du serveur
+    a été générée avec un numéro de version inférieur à la version
+    de HTTP spécifiée.</p>
+
+    <p>Cette politique s'utilise en général avec les applications qui
+    nécessitent un contrôle du type du client. Elle peut être utilisée en
+    concomitance avec le filtre <code>POLICY_KEEPALIVE</code> afin de
+    s'assurer que les clients HTTP/1.0 n'engendrent pas la fermeture des
+    connexions persistantes.</p>
+
+    <p>Les versions minimales pouvant être spécifiées sont :</p>
+
+    <ul><li><code>HTTP/1.1</code></li>
+    <li><code>HTTP/1.0</code></li>
+    <li><code>HTTP/0.9</code></li>
+    </ul>
+
+    <p>Cette politique est implémentée par le filtre
+    <strong>POLICY_VERSON</strong>.</p>
+
+  </div></div>
+<div class="bottomlang">
+<p><span>Langues Disponibles: </span><a href="./en/compliance.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
+<a href="./fr/compliance.html" title="Français">&nbsp;fr&nbsp;</a></p>
+</div><div class="top"><a href="#page-header"><img src="./images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Commentaires</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
+<script type="text/javascript"><!--//--><![CDATA[//><!--
+var comments_shortname = 'httpd';
+var comments_identifier = 'http://httpd.apache.org/docs/trunk/compliance.html';
+(function(w, d) {
+    if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
+        d.write('<div id="comments_thread"><\/div>');
+        var s = d.createElement('script');
+        s.type = 'text/javascript';
+        s.async = true;
+        s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
+        (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
+    }
+    else {
+        d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
+    }
+})(window, document);
+//--><!]]></script></div><div id="footer">
+<p class="apache">Copyright 2013 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
+<p class="menu"><a href="./mod/">Modules</a> | <a href="./mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="./glossary.html">Glossaire</a> | <a href="./sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
+if (typeof(prettyPrint) !== 'undefined') {
+    prettyPrint();
+}
+//--><!]]></script>
+</body></html>
\ No newline at end of file
diff --git a/docs/manual/compliance.xml.fr b/docs/manual/compliance.xml.fr
new file mode 100644 (file)
index 0000000..6a34274
--- /dev/null
@@ -0,0 +1,576 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
+<?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
+<!-- English Revision : 1242907 -->
+<!-- French translation : Lucien GENTIS -->
+<!-- Reviewed by : Vincent Deffontaines -->
+
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements.  See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<manualpage metafile="compliance.xml.meta">
+
+  <title>Conformité au protocole HTTP</title>
+
+  <summary>
+    <p>Ce document décrit le mécanisme utilisé pour définir une
+    politique de conformité au protocole HTTP pour un espace d'URL au
+    niveau des serveurs d'origine ou des application sous-jacentes à cet
+    espace d'URL.</p>
+
+    <p>Chaque politique de conformité est décrite ci-dessous à
+    destination de tous ceux qui ont reçu un message d'erreur suite à un
+    rejet en provenance d'une politique, et ont donc besoin de savoir à
+    quoi est du ce rejet et ce qu'ils doivent faire pour corriger
+    l'erreur.</p>
+  </summary>
+  <seealso><a href="filter.html">Filtres</a></seealso>
+
+  <section id="intro">
+    <title>Imposer la conformité au protocole HTTP dans Apache 2</title>
+    <related>
+      <modulelist>
+        <module>mod_policy</module>
+      </modulelist>
+      <directivelist>
+        <directive module="mod_policy">PolicyConditional</directive>
+        <directive module="mod_policy">PolicyLength</directive>
+        <directive module="mod_policy">PolicyKeepalive</directive>
+        <directive module="mod_policy">PolicyType</directive>
+        <directive module="mod_policy">PolicyVary</directive>
+        <directive module="mod_policy">PolicyValidation</directive>
+        <directive module="mod_policy">PolicyNocache</directive>
+        <directive module="mod_policy">PolicyMaxage</directive>
+        <directive module="mod_policy">PolicyVersion</directive>
+      </directivelist>
+    </related>
+
+    <p>Le protocole HTTP applique le <strong>principe de
+    robustesse</strong> décrit dans la <a
+    href="http://tools.ietf.org/html/rfc1122">RFC1122</a>, et stipulant
+    <strong>"Soyez libéral pour ce que vous acceptez, conservateur pour
+    ce que vous envoyez"</strong>. Selon ce principe, les clients HTTP
+    vont compenser en corrigeant les réponses incorrectes ou mal
+    configurées, ou ne pouvant pas être mises en cache.</p>
+
+    <p>Comme un site web est configuré pour faire face à un trafic
+    toujours grandissant, des applications mal configurées ou non
+    optimisées ou certaines configurations de serveur peuvent menacer la stabilité
+    et l'évolutivité du site web, ainsi que les coûts d'hébergement qui
+    y sont associés. L'évolution d'un site web pour faire face à une
+    complexité croissante de sa configuration accroît les
+    difficultés rencontrées pour détecter et enregistrer les espaces
+    d'URL mal configurés pour un serveur donné.</p>
+
+    <p>De ce fait, un point peut être atteint où le principe
+    "conservateur pour ce que vous envoyez" doit être imposé par
+    l'administrateur du serveur.</p>
+
+    <p>Le module <module>mod_policy</module> fournit un jeu de filtres
+    qui peuvent être appliqués à un serveur, permettant de tester
+    explicitement les points clé du protocle HTTP, et de journaliser en
+    tant qu'avertissements les réponses non conformes, ou même de
+    simplement les rejeter avec un code d'erreur. Chaque filtre peut
+    être appliqué séparément, permettant à l'administrateur de choisir
+    quelles politiques de conformité doivent être imposées en fonction
+    de l'environnement.
+    </p>
+
+    <p>Les filtres peuvent être mis en place dans des environnements de
+    test ou de simulation à destination des développeurs d'applications
+    et de sites web, ou s'appliquer à des serveurs en production pour
+    protéger l'infrastructure de systèmes en dehors du contrôle direct
+    de l'administrateur.</p>
+
+    <p class="figure">
+    <img src="images/compliance-reverse-proxy.png" width="666" height="239" alt=
+    "Imposer la conformité au protocole HTTP pour un serveur
+    d'applications"/>
+    </p>
+
+    <p>Dans l'exemple ci-dessus, un serveur Apache httpd a été intercalé
+    entre le serveur d'applications et l'internet au sens large, et
+    configuré pour mettre en cache les réponses en provenance du serveur
+    d'applications. Les filtres de <module>mod_policy</module> ont été
+    ajoutés pour imposer le support de la mise en cache de contenu et
+    des requêtes conditionnelles, assurant ainsi que
+    <module>mod_cache</module> et les caches publics de l'internet
+    seront pleinement capables de mettre en cache le contenu créé avec
+    efficacité par le serveur d'applications.</p>
+
+    <p class="figure">
+    <img src="images/compliance-static.png" width="469" height="239" alt=
+    "Imposer la conformité au protocole HTTP pour un serveur statique"/>
+    </p>
+
+    <p>Dans l'exemple plus simple ci-dessus, un serveur statique qui
+    sert du contenu ayant une forte probabilité d'être mis en cache,
+    se voit appliqué un jeu de règles afin de
+    s'assurer que sa configuration respecte un niveau minimum de
+    conformité au protocole HTTP.</p>
+
+  </section>
+
+  <section id="policyconditional">
+    <title>Politique des requêtes conditionnelles</title>
+    <related>
+      <modulelist>
+        <module>mod_policy</module>
+      </modulelist>
+      <directivelist>
+        <directive module="mod_policy">PolicyConditional</directive>
+      </directivelist>
+    </related>
+
+    <p>Cette politique sera rejetée si le serveur ne répond pas à une
+    requête conditionnelle avec le code d'état approprié. </p>
+
+    <p>C'est grâce aux requêtes conditionnelles qu'un cache HTTP peut
+    rafraîchir un contenu périmé, et en particulier dans le cas des
+    contenus à durée de validité courte, l'absence de support des
+    requêtes conditionnelles peut augmenter la charge du serveur.</p>
+
+    <p>Plus particulièrement, la présence d'une des en-têtes suivantes
+    dans la requête rend cette dernière conditionnelle :</p>
+
+    <dl>
+    <dt><code>If-Match</code></dt>
+    <dd>Si l'ETag fourni dans l'en-tête <code>If-Match</code> ne
+    correspond pas à l'ETag de la réponse, le serveur doit renvoyer un
+    code d'erreur <code>412 Precondition Failed</code>. Vous trouverez
+    tous les détails du traitement d'un en-tête <code>If-Match</code>
+    dans la <a
+    href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.24">RFC2616
+    section 14.24</a>.</dd>
+
+    <dt><code>If-None-Match</code></dt>
+    <dd>Si l'ETag fourni dans l'en-tête <code>If-None-Match</code>
+    correspond à l'ETag de la réponse, le serveur doit renvoyer soit
+    <code>304 Not Modified</code> pour les requêtes GET/HEAD, soit
+    <code>412 Precondition Failed</code> pour les autres méthodes. Vous trouverez
+    tous les détails du traitement d'un en-tête
+    <code>If-None-Match</code> dans la <a
+    href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.26">RFC2616
+    section 14.26</a>.</dd>
+
+    <dt><code>If-Modified-Since</code></dt>
+    <dd>Si la date fournie dans l'en-tête <code>If-Modified-Since</code>
+    est plus ancienne que celle de l'en-tête <code>Last-Modified</code>
+    de la réponse, le serveur doit renvoyer <code>304 Not Modified</code>. Vous trouverez
+    tous les détails du traitement d'un en-tête
+    <code>If-Modified-Since</code> dans la <a
+    href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.25">RFC2616
+    section 14.25</a>.</dd>
+
+    <dt><code>If-Unmodified-Since</code></dt>
+    <dd>Si la date fournie dans l'en-tête
+    <code>If-Unmodified-Since</code> est plus récente que celle de
+    l'en-tête <code>Last-Modified</code> de la réponse, le serveur doit
+    renvoyer <code>412 Precondition Failed</code>. Vous trouverez
+    tous les détails du traitement d'un en-tête
+    <code>If-Unmodified-Since</code> dans la <a
+    href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.28">RFC2616
+    section 14.28</a>.</dd>
+
+    <dt><code>If-Range</code></dt>
+    <dd>Si l'ETag fourni dans l'en-tête <code>If-Range</code> correspond
+    à l'ETag ou à l'en-tête Last-Modified de la réponse, et si un
+    en-tête <code>Range</code> valide est présent, le serveur doit
+    renvoyer <code>206 Partial Response</code>. Vous trouverez
+    tous les détails du traitement d'un en-tête <code>If-Range</code>
+    dans la <a
+    href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.27">RFC2616
+    section 14.27</a>.</dd>
+
+    </dl>
+
+    <p>Si la réponse est considérée comme ayant réussi (une réponse
+    2xx), alors qu'elle était conditionnelle et qu'une des réponses
+    ci-dessus était attendue à la place, cette politique sera rejetée.
+    Les réponses qui indiquent une redirection ou une erreur de toute
+    sorte (3xx, 4xx, 5xx) seront ignorées de cette politique.</p>
+
+    <p>Cette politique est implémentée par le filtre
+    <strong>POLICY_CONDITIONAL</strong>.</p>
+
+  </section>
+
+  <section id="policylength">
+    <title>Politique de gestion de l'en-tête Content-Length</title>
+    <related>
+      <modulelist>
+        <module>mod_policy</module>
+      </modulelist>
+      <directivelist>
+        <directive module="mod_policy">PolicyLength</directive>
+      </directivelist>
+    </related>
+
+    <p>Cette politique sera rejetée si la réponse du serveur ne contient pas d'en-tête
+    <code>Content-Length</code> explicite.</p>
+
+    <p>De nombreuses méthodes pour déterminer la taille d'un
+    corps de réponse sont décrites dans la <a
+    href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec4.4">RFC2616
+    section 4.4 Message Length</a>.</p>
+
+    <p>Lorsque l'en-tête <code>Content-Length</code> est présente, la
+    taille du corps est déclarée au début de la réponse. Si cette
+    information est manquante, un cache HTTP pourrait choisir d'ignorer
+    la réponse, car il ne pourrait pas déterminer a priori si la réponse
+    reste dans les limites définies du cache.</p>
+
+    <p>Pour indiquer la fin de la réponse au client sans que ce dernier
+    ait à en connaître la taille au préalable, HTTP/1.1 propose
+    l'en-tête <code>Transfer-Encoding</code> comme une alternative à
+    <code>Content-Length</code>. Cependant, lors du traitement de
+    requêtes HTTP/1.0, et si l'en-tête <code>Content-Length</code> est
+    absente, le seul mécanisme dont dispose le serveur pour indiquer la
+    fin de la requête consiste à couper la connexion. Dans un
+    environnement contenant des répartiteurs de charge, cela peut
+    court-circuiter le mécanisme des connexions persistantes
+    (keepalive).
+    </p>
+
+    <p>Si la réponse est considérée comme réussie (une réponse 2xx) et
+    possède un corps (ce qui exclut les réponses <code>204 No
+    Content</code>), et si l'en-tête <code>Content-Length</code> est
+    absente, la réponse sera rejetée. Aucune réponse indiquant une
+    redirection ou une erreur de toute nature (3xx, 4xx, 5xx) n'est
+    prise en compte par cette politique.</p>
+
+    <note type="warning">Notez que certains modules comme
+    <module>mod_proxy</module> ajoutent leur propre en-tête
+    <code>Content-Length</code> sous réserve que la réponse où cette
+    en-tête est absente soit suffisamment courte pour que le module ait
+    pu la lire en une seule passe. De ce fait, des réponses courtes pourront
+    être acceptées par la politique, alors que d'autres plus longues
+    seront rejetées pour la même URL.</note>
+
+    <p>Cette politique est implémentée par le filtre
+    <strong>POLICY_LENGTH</strong>.</p>
+
+  </section>
+
+  <section id="policytype">
+    <title>Politique de filtrage de l'en-tête Content-Type</title>
+    <related>
+      <modulelist>
+        <module>mod_policy</module>
+      </modulelist>
+      <directivelist>
+        <directive module="mod_policy">PolicyType</directive>
+      </directivelist>
+    </related>
+
+    <p>Cette politique sera rejetée si la réponse du serveur ne contient pas d'en-tête
+    <code>Content-Type</code> explicite et valide du point de vue de la
+    syntaxe, correspondant au modèle défini par le serveur.</p>
+
+    <p>Le type de media du corps est placé dans une en-tête
+    <code>Content-Type</code> dont le format est décrit en détail dans
+    la <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec3.7">
+    RFC2616 section 3.7 Media Types</a>.</p>
+
+    <p>Une en-tête <code>Content-Type</code> dont la syntaxe est valide
+    sera du style :</p>
+
+    <example>
+      Content-Type: text/html; charset=iso-8859-1
+    </example>
+
+    <p>Exemples d'en-têtes <code>Content-Type</code> non valides :</p>
+
+    <example>
+      # invalide<br />
+      Content-Type: foo<br />
+      # vide<br />
+      Content-Type:
+    </example>
+
+    <p>L'administrateur peut restreindre la politique à un ou plusieurs
+    types spécifiques, ou utiliser des caractères génériques comme
+    <code>*/*</code>.</p>
+
+    <p>Cette politique est mise en oeuvre par le filtre
+    <strong>POLICY_TYPE</strong>.</p>
+
+  </section>
+
+  <section id="policykeepalive">
+    <title>Politique de gestion des connexions persistantes (Keepalive)</title>
+    <related>
+      <modulelist>
+        <module>mod_policy</module>
+      </modulelist>
+      <directivelist>
+        <directive module="mod_policy">PolicyKeepalive</directive>
+      </directivelist>
+    </related>
+
+    <p>Cette politique era rejetée si la réponse du serveur ne contient pas d'en-tête
+    <code>Content-Length</code> explicite, ou d'en-tête
+    <code>Transfer-Encoding</code> défini à chunked.</p>
+
+    <p>De nombreuses manières pour déterminer la taille d'un
+    corps de réponse sont décrites dans la <a
+    href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec4.4">RFC2616
+    section 4.4 Message Length</a>.</p>
+
+    <p>Pour indiquer la fin de la réponse au client sans que ce dernier
+    ait à en connaître la taille au préalable, HTTP/1.1 propose
+    l'en-tête <code>Transfer-Encoding</code> comme une alternative à
+    <code>Content-Length</code>. Cependant, lors du traitement de
+    requêtes HTTP/1.0, et si l'en-tête <code>Content-Length</code> est
+    absent, le seul mécanisme dont dispose le serveur pour indiquer la
+    fin de la requête consiste à couper la connexion. Dans un
+    environnement contenant des répartiteurs de charge, cela peut
+    court-circuiter le mécanisme des connexions persistantes
+    (keepalive).
+    </p>
+
+    <p>En particulier, les règles suivantes sont appliquées : </p>
+
+    <dl>
+    <dt>Si</dt>
+    <dd>cette connexion n'est pas marquée en erreur ;</dd>
+
+    <dt>et</dt>
+    <dd>le client n'attend pas 100-continue ;</dd>
+
+    <dt>et</dt>
+    <dd>le code de statut de la réponse ne nécessite pas de fermeture de connexion ;</dd>
+
+    <dt>et</dt>
+    <dd>le corps de la réponse a une taille définie suite au code de
+    statut 304 ou 204, la méthode de requête est HEAD, un en-tête
+    Content-Length ou Transfer-Encoding: chunked a déjà été défini, ou
+    la requête est de type HTTP/1.1 et peut donc être définie à chunked.</dd>
+
+    <dt>alors</dt>
+    <dd>keepalive est supporté.</dd>
+    </dl>
+
+    <note type="warning">Le serveur peut décider de désactiver les
+    connexions persistantes pour de nombreuses raisons, comme un arrêt
+    imminent, un Connection: close en provenance du client, ou une
+    requête client de type HTTP/1.0 dont la réponse ne comporte pas
+    d'en-tête <code>Content-Length</code>, mais pour ce qui nous
+    concerne, nous ne vérifions que la possibilité des connexions
+    persistantes depuis l'application, et non si les connexions
+    persistantes sont activées.</note>
+
+    <p>Notez aussi que le serveur HTTP Apache propose un filtre qui
+    ajoute un codage chunked aux réponses qui ne contiennent pas
+    d'en-tête <code>Content-Length</code> explicite. Cette politique
+    prend en compte les cas où le filtre est court-circuité ou
+    désactivé.</p>
+
+    <p>Cette politique est implémentée par le filtre
+    <strong>POLICY_KEEPALIVE</strong>.</p>
+
+  </section>
+
+  <section id="policymaxage">
+    <title>Durée de fraîcheur / Politique de gestion de l'âge maximum</title>
+    <related>
+      <modulelist>
+        <module>mod_policy</module>
+      </modulelist>
+      <directivelist>
+        <directive module="mod_policy">PolicyMaxage</directive>
+      </directivelist>
+    </related>
+
+    <p>Cette politique se verra rejetée si la réponse du serveur ne
+    contient pas de <strong>durée de fraîcheur</strong> explicite au
+    moins grande que la limite définie par le serveur, ou si la
+    durée de fraîcheur est calculée à partir d'une heuristique.</p>
+
+    <p>Vous trouverez tous les détails à propos du calcul d'une durée de
+    fraîcheur dans la <a
+    href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec13.2">RFC2616
+    section 13.2 Expiration Model</a>.</p>
+
+    <p>Pendant la durée de fraîcheur, un cache n'a pas besoin de
+    contacter le serveur original, et il peut renvoyer le contenu situé
+    dans le cache tel quel au client.</p>
+
+    <p>Lorsque la date de péremption est atteinte, le cache doit
+    contacter le serveur original dans le but de vérifier si le contenu
+    situé dans le cache est encore à jour, et si ce n'est pas le cas, de
+    le remplacer par le contenu correspondant sur le serveur original.</p>
+
+    <p>Lorsque la durée de fraîcheur est trop courte, il peut en
+    résulter un excès de charge pour le serveur. De plus, si une
+    interruption de service survient, et si cette dernière est longue,
+    ou plus longue que la durée de fraîcheur, tout le contenu du cache
+    s'en trouvera périmé, ce qui causera un trafic très important
+    lorsque le serveur ou le réseau sera rétabli.</p>
+
+    <p>Cette politique est implémentée par le filtre
+    <strong>POLICY_MAXAGE</strong>.</p>
+
+  </section>
+
+  <section id="policynocache">
+    <title>Politique de gestion des contenus qui ne peuvent pas être mis
+    en cache</title>
+    <related>
+      <modulelist>
+        <module>mod_policy</module>
+      </modulelist>
+      <directivelist>
+        <directive module="mod_policy">PolicyNocache</directive>
+      </directivelist>
+    </related>
+
+    <p>Cette politique sera rejetée si la réponse du serveur
+    déclare elle-même qu'elle ne doit pas être mise en cache à l'aide
+    d'un en-tête <code>Cache-Control</code> ou <code>Pragma</code>.</p>
+
+    <p>Vous trouverez tous les détails à propos de la manière dont un
+    contenu peut être déclaré comme non cachable dans la <a
+    href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.1">RFC2616
+    section 14.9.1 What is Cacheable</a>, et au sein de la définition de
+    l'en-tête <code>Pragma</code> dans la <a
+    href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.32">RFC2616
+    section 14.32 Pragma</a>.</p>
+
+    <p>Plus précisément, si une combinaison des en-têtes suivants existe
+    dans la réponse, cette dernière sera rejetée :</p>
+
+    <ul>
+    <li><code>Cache-Control: no-cache</code></li>
+    <li><code>Cache-Control: no-store</code></li>
+    <li><code>Cache-Control: private</code></li>
+    <li><code>Pragma: no-cache</code></li>
+    </ul>
+
+    <p>D'une manière générale, lorsque cette politique est activée, et
+    si d'une manière inattendue un contenu non cachable peut induire un
+    niveau de charge du serveur inacceptable, tout contenu défini comme
+    non cachable par le serveur sera rejeté.</p>
+
+    <p>Cette politique est implémentée par le filtre
+    <strong>POLICY_NOCACHE</strong>.</p>
+
+  </section>
+
+  <section id="policyvalidation">
+    <title>Politique de validation</title>
+    <related>
+      <modulelist>
+        <module>mod_policy</module>
+      </modulelist>
+      <directivelist>
+        <directive module="mod_policy">PolicyValidation</directive>
+      </directivelist>
+    </related>
+
+    <p>Cette politique sera rejetée si la réponse du serveur
+    ne contient aucune en-tête syntaxiquement correct <code>ETag</code>
+    ou <code>Last-Modified</code>.</p>
+
+    <p>Vous trouverez une description complète de l'en-tête
+    <code>ETag</code> dans la <a
+    href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.19">RFC2616
+    section 14.19 Etag</a>, et de l'en-tête <code>Last-Modified</code>
+    dans la <a
+    href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.29">RFC2616
+    section 14.29 Last-Modified</a>.</p>
+
+    <p>La vérification est effectuée non seulement en ce qui concerne la
+    présence des en-têtes, mais aussi du point de vue de leur syntaxe.</p>
+
+    <p>Si une en-tête <code>ETag</code> n'est pas entourée de guillemets,
+    ou n'est pas déclarée "weak" en le préfixant avec un "W/", la politique
+    sera rejetée. De même, si l'interprétation d'une en-tête
+    <code>Last-Modified</code> ne fournit pas de date valide, la réponse
+    sera rejetée.</p>
+
+    <p>Cette politique est implémentée par le filtre
+    <strong>POLICY_VALIDATION</strong>.</p>
+
+  </section>
+
+  <section id="policyvary">
+    <title>Politique de gestion de l'en-tête Vary</title>
+    <related>
+      <modulelist>
+        <module>mod_policy</module>
+      </modulelist>
+      <directivelist>
+        <directive module="mod_policy">PolicyVary</directive>
+      </directivelist>
+    </related>
+
+    <p>Cette politique se verra rejetée si la réponse du serveur
+    contient une en-tête <code>Vary</code>, et si cette en-tête
+    contient à son tour une en-tête mise en liste noire par
+    l'administrateur.</p>
+
+    <p>L'en-tête <code>Vary</code> est décrite en détails dans la <a
+    href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.44">RFC2616
+    section 14.44 Vary</a>.</p>
+
+    <p>Certaines en-têtes définies par les clients, comme
+    <code>User-Agent</code>, peuvent contenir des milliers ou même des
+    millions de combinaisons de valeurs au cours du temps, et si la
+    réponse est considérée comme pouvant être mise en cache, le cache
+    peut tenter d'enregistrer toutes ces réponses, ce qui peut l'amener
+    à saturation et à noyer les autres entrées qu'il contient. Avec ce
+    scénario, cette politique sera rejetée.</p>
+
+    <p>Cette politique est implémentée par le filtre
+    <strong>POLICY_VARY</strong>.</p>
+
+  </section>
+
+  <section id="policyversion">
+    <title>Politique de gestion des versions de protocole</title>
+    <related>
+      <modulelist>
+        <module>mod_policy</module>
+      </modulelist>
+      <directivelist>
+        <directive module="mod_policy">PolicyVersion</directive>
+      </directivelist>
+    </related>
+
+    <p>Cette politique sera rejetée si la réponse du serveur
+    a été générée avec un numéro de version inférieur à la version
+    de HTTP spécifiée.</p>
+
+    <p>Cette politique s'utilise en général avec les applications qui
+    nécessitent un contrôle du type du client. Elle peut être utilisée en
+    concomitance avec le filtre <code>POLICY_KEEPALIVE</code> afin de
+    s'assurer que les clients HTTP/1.0 n'engendrent pas la fermeture des
+    connexions persistantes.</p>
+
+    <p>Les versions minimales pouvant être spécifiées sont :</p>
+
+    <ul><li><code>HTTP/1.1</code></li>
+    <li><code>HTTP/1.0</code></li>
+    <li><code>HTTP/0.9</code></li>
+    </ul>
+
+    <p>Cette politique est implémentée par le filtre
+    <strong>POLICY_VERSON</strong>.</p>
+
+  </section>
+</manualpage>
index 896b4812ff941e791e703fe4b05102f57f23c0c4..dc8d9ddcdb2a7852cf01c222dd1232fe3eba1310 100644 (file)
@@ -8,5 +8,6 @@
 
   <variants>
     <variant>en</variant>
+    <variant>fr</variant>
   </variants>
 </metafile>