]> granicus.if.org Git - apache/commitdiff
French translated file - First version.
authorLucien Gentis <lgentis@apache.org>
Tue, 17 Jul 2018 12:47:37 +0000 (12:47 +0000)
committerLucien Gentis <lgentis@apache.org>
Tue, 17 Jul 2018 12:47:37 +0000 (12:47 +0000)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1836110 13f79535-47bb-0310-9956-ffa450edef68

12 files changed:
docs/manual/howto/reverse_proxy.xml.fr [new file with mode: 0644]
docs/manual/mod/mod_authnz_fcgi.xml.fr [new file with mode: 0644]
docs/manual/mod/mod_brotli.xml.fr [new file with mode: 0644]
docs/manual/mod/mod_http2.xml.fr [new file with mode: 0644]
docs/manual/mod/mod_proxy_hcheck.xml.fr [new file with mode: 0644]
docs/manual/mod/mod_proxy_http2.xml.fr [new file with mode: 0644]
docs/manual/mod/mod_proxy_wstunnel.xml.fr [new file with mode: 0644]
docs/manual/mod/mod_version.xml.fr [new file with mode: 0644]
docs/manual/mod/mod_watchdog.xml.fr [new file with mode: 0644]
docs/manual/programs/log_server_status.xml.fr [new file with mode: 0644]
docs/manual/programs/split-logfile.xml.fr [new file with mode: 0644]
docs/manual/programs/suexec.xml.fr [new file with mode: 0644]

diff --git a/docs/manual/howto/reverse_proxy.xml.fr b/docs/manual/howto/reverse_proxy.xml.fr
new file mode 100644 (file)
index 0000000..baf8bd2
--- /dev/null
@@ -0,0 +1,371 @@
+<?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 : 1832609 -->
+<!-- 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="reverse_proxy.xml.meta">
+<parentdocument href="./">Recettes / Tutoriels</parentdocument>
+
+  <title>Guide de configuration d'un mandataire inverse</title>
+
+  <summary>
+    <p>En plus de ses fonctions de serveur web "basique", à savoir fournir du
+    contenu statique et dynamique à l'utilisateur, Apache httpd (comme la
+    plupart des autres serveurs web) peut aussi assurer les fonctions de serveur
+    mandataire inverse, connu aussi sous le nom de serveur "passerelle".</p>
+
+    <p>Dans un tel scénario, httpd ne génère et n'héberge pas lui-même les
+    données, le contenu étant en général obtenu à partir d'un ou plusieurs serveurs
+    d'arrière-plan qui n'ont normalement aucune connexion directe avec le réseau
+    externe. Lorsque httpd reçoit une requête en provenance d'un client, la
+    requête proprement dite est <em>mandatée</em> vers un de ces serveurs
+    d'arrière-plan qui traite la requête, génère le contenu et l'envoie à httpd,
+    ce dernier générant la véritable réponse HTTP à destination du client.</p>
+
+    <p>De nombreuses raisons peuvent vous motiver à utiliser cette
+    fonctionnalité, mais elles sont souvent du domaine de la sécurité, de
+    la haute disponibilité, de la répartition de charge et de
+    l'authentification/autorisation centralisée. Il est alors indispensable que
+    l'organisation, la conception et l'architecture de l'infrastructure
+    d'arrière-plan (les serveurs qui traitent au sens propre les requêtes) soient
+    isolées et protégées de l'extérieur ; vu du client, le serveur mandataire
+    inverse <em>est</em> le seul serveur accessible pouvant lui fournir du
+    contenu.</p>
+
+    <p>Voici un exemple typique d'implémentation de cette fonctionnalité :</p>
+    <p class="centered"><img src="../images/reverse-proxy-arch.png" alt="reverse-proxy-arch" /></p>
+
+  </summary>
+
+
+  <section id="related">
+  <title>Mandataire inverse</title>
+  <related>
+    <modulelist>
+      <module>mod_proxy</module>
+      <module>mod_proxy_balancer</module>
+      <module>mod_proxy_hcheck</module>
+    </modulelist>
+    <directivelist>
+      <directive module="mod_proxy">ProxyPass</directive>
+      <directive module="mod_proxy">BalancerMember</directive>
+    </directivelist>
+  </related>
+  </section>
+
+  <section id="simple">
+    <title>Mandatement inverse simple</title>
+
+    <p>
+      La directive <directive module="mod_proxy">ProxyPass</directive> permet de
+      rediriger les requêtes entrantes vers un serveur d'arrière-plan (ou un
+      cluster de serveurs plus connu sous le nom de groupe
+      <code>Balancer</code>). Dans cet exemple le plus simple, toutes les
+      requêtes (<code>"/"</code>) sont redirigées vers un serveur d'arrière-plan
+      unique :
+    </p>
+
+    <highlight language="config">
+ProxyPass "/"  "http://www.example.com/"
+    </highlight>
+
+    <p>
+      Pour être sur que cette redirection soit effectuée et que les en-têtes
+      <code>Location:</code> générés par le serveur d'arrière-plan soient
+      modifiés pour pointer vers le mandataire inverse, et non vers le serveur
+      d'arrière-plan, la directive <directive
+      module="mod_proxy">ProxyPassReverse</directive> est souvent requise :
+    </p>
+
+    <highlight language="config">
+ProxyPass "/"  "http://www.example.com/"
+ProxyPassReverse "/"  "http://www.example.com/"
+    </highlight>
+
+    <p>Seules des URIs spécifiques peuvent être mandatées, comme le montre
+    l'exemple suivant :</p>
+
+    <highlight language="config">
+ProxyPass "/images"  "http://www.example.com/"
+ProxyPassReverse "/images"  "http://www.example.com/"
+    </highlight>
+
+    <p>Dans l'exemple précédent, si le chemin d'une requête commence par
+    <code>/images</code>, elle sera redirigée vers le serveur d'arrière-plan
+    spécifié ; dans le cas contraire, elle sera traitée localement.
+    </p>
+  </section>
+
+  <section id="cluster">
+    <title>Clusters et Balancers</title>
+
+    <p>
+      Utiliser un serveur d'arrière-plan unique n'est cependant pas une solution
+      idéale car ce dernier peut devenir indisponible ou surchargé, et le
+      mandatement inverse vers ce serveur ne présente alors plus aucun avantage.
+      La solution réside dans la définition d'un groupe de serveurs
+      d'arrière-plan qui vont se partager le traitement des requêtes via un
+      mécanisme de répartition de charge et de gestion des indisponibilités pris
+      en charge par le mandataire. Ce groupe de répartition est plus connu sous le nom de
+      <em>cluster</em>, mais dans la terminologie d'Apache httpd, on utilise
+      plutôt le terme de <em>balancer</em>. Un balancer se définit en
+      utilisant les directives <directive module="mod_proxy"
+      type="section">Proxy</directive> et <directive
+      module="mod_proxy">BalancerMember</directive> comme suit :
+    </p>
+
+    <highlight language="config">
+&lt;Proxy balancer://myset&gt;
+    BalancerMember http://www2.example.com:8080
+    BalancerMember http://www3.example.com:8080
+    ProxySet lbmethod=bytraffic
+&lt;/Proxy&gt;
+
+ProxyPass "/images/"  "balancer://myset/"
+ProxyPassReverse "/images/"  "balancer://myset/"
+    </highlight>
+
+    <p>
+      Le protocole <code>balancer://</code> indique à httpd que l'on souhaite
+      créer un balancer nommé <em>myset</em>. Ce balancer comporte deux serveurs
+      d'arrière-plan référencés dans la terminologie httpd sous le nom de
+      <em>BalancerMembers</em>. Avec cet exemple, toute requête dont le chemin
+      commence par <code>/images</code> sera mandatée vers <em>un</em> des deux
+      serveurs d'arrière-plan. La directive <directive
+      module="mod_proxy">ProxySet</directive> définit ici pour le balancer
+      <em>myset</em> un algorithme de
+      répartition de charge basé sur le trafic entrées/sorties.
+    </p>
+
+    <note type="hint"><title>Remarque</title>
+      <p>
+       Les <em>BalancerMembers</em> sont aussi souvent référencés sous le terme
+       <em>workers</em>.
+      </p>
+   </note>
+
+  </section>
+
+  <section id="config">
+    <title>Configuration du Balancer et des BalancerMembers</title>
+
+    <p>
+      Vous pouvez configurer de manière détaillée les <em>balancers</em> et
+      <em>workers</em> via les nombreux paramètres de la directive <directive
+      module="mod_proxy">ProxyPass</directive>. Par exemple, si vous souhaitez
+      que <code>http://www3.example.com:8080</code> traite avec un facteur 3 le
+      trafic avec un timeout d'une seconde, utilisez la configuration suivante :
+    </p>
+
+    <highlight language="config">
+&lt;Proxy balancer://myset&gt;
+    BalancerMember http://www2.example.com:8080
+    BalancerMember http://www3.example.com:8080 loadfactor=3 timeout=1
+    ProxySet lbmethod=bytraffic
+&lt;/Proxy&gt;
+
+ProxyPass "/images"  "balancer://myset/"
+ProxyPassReverse "/images"  "balancer://myset/"
+    </highlight>
+
+  </section>
+
+  <section id="failover">
+    <title>Gestion des indisponibilités (Failover)</title>
+
+    <p>
+      Vous pouvez aussi définir finement des scénarios pour les cas
+      d'indisponibilité d'un ou plusieurs serveurs d'arrière-plan en spécifiant
+      quels serveurs doivent alors prendre le relai. Dans l'exemple suivant,
+      trois scénarios sont envisagés :
+    </p>
+    <ol>
+      <li>
+        <code>http://spare1.example.com:8080</code> et
+        <code>http://spare2.example.com:8080</code> ne sont sollicités que si
+       <code>http://www2.example.com:8080</code> ou
+       <code>http://www3.example.com:8080</code> est indisponible (un serveur
+       de remplacement sera utilisé à la place d'un membre indisponible du même
+       jeu de serveurs cibles).
+      </li>
+      <li>
+        <code>http://hstandby.example.com:8080</code> n'est sollicité que si
+       tous les autres serveurs cibles du jeu de serveurs <code>0</code> sont
+       indisponibles.
+      </li>
+      <li>
+        Les serveurs <code>http://bkup1.example.com:8080</code> et
+       <code>http://bkup2.example.com:8080</code> du jeu <code>1</code> ne seront sollicités que si
+       tous les serveurs du jeu <code>0</code>, tous les serveurs de
+       remplacement et tous les serveurs de standby sont indisponibles.
+      </li>
+    </ol>
+    <p>
+      Il est ainsi possible de définir un ou plusieurs serveurs de remplacement
+      ou de standby pour chaque jeu de serveurs du répartiteur de charge.
+    </p>
+
+    <highlight language="config">
+&lt;Proxy balancer://myset&gt;
+    BalancerMember http://www2.example.com:8080
+    BalancerMember http://www3.example.com:8080 loadfactor=3 timeout=1
+    BalancerMember http://spare1.example.com:8080 status=+R
+    BalancerMember http://spare2.example.com:8080 status=+R
+    BalancerMember http://hstandby.example.com:8080 status=+H
+    BalancerMember http://bkup1.example.com:8080 lbset=1
+    BalancerMember http://bkup2.example.com:8080 lbset=1
+    ProxySet lbmethod=byrequests
+&lt;/Proxy&gt;
+
+ProxyPass "/images/"  "balancer://myset/"
+ProxyPassReverse "/images/"  "balancer://myset/"
+    </highlight>
+
+    <p>
+      Les serveurs de remplacement à chaud remplacent les serveurs indisponibles
+      du même jeu de serveurs du répartiteur de charge. Un serveur est
+      considéré comme indisponible s'il est en maintenance, arrêté ou en erreur.
+      Les serveurs de standby à chaud sont utilisés si tous les serveurs et
+      serveurs de remplacement du jeu de serveurs du répartiteur de charge sont
+      indisponibles. Les jeux de serveurs du répartiteur de charge (avec leurs
+      serveurs de standby et de remplacement à chaud respectifs) sont toujours
+      sollicités dans l'ordre du plus bas lbset vers le plus haut.
+    </p>
+
+  </section>
+
+  <section id="manager">
+    <title>Gestion du répartiteur de charge</title>
+
+    <p>
+     L'application <em>balancer-manager</em> fournie avec le mandataire inverse
+     d'Apache httpd en est un des outils les plus utiles. Comme
+     <module>mod_status</module>, <em>balancer-manager</em> affiche la
+     configuration et l'activité actuelles des balancers actifs. L'affichage de
+     ces informations n'est cependant pas sa seule fonction ; il permet aussi de
+     modifier la plupart d'entre elles et même d'ajouter des membres au groupe
+     de répartition de charge en temps réel. Pour activer ces fonctionnalités,
+     vous devez ajouter les lignes suivantes à votre fichier de configuration : 
+    </p>
+
+    <highlight language="config">
+&lt;Location "/balancer-manager"&gt;
+    SetHandler balancer-manager
+    Require host localhost
+&lt;/Location&gt;
+    </highlight>
+
+    <note type="warning"><title>Avertissement</title>
+      <p>N'activez le <em>balancer-manager</em> que si vous avez déjà <a
+      href="../mod/mod_proxy.html#access">sécurisé votre serveur</a>.
+      Assurez-vous en particulier que l'accès à l'URL soit fortement restreint.</p>
+    </note>
+
+    <p>
+      Lorsque vous accédez au serveur mandataire avec une adresse du style
+      <code>http://rproxy.example.com/balancer-manager/</code>, la page suivante
+      s'affiche :
+    </p>
+    <p class="centered"><img src="../images/bal-man.png" alt="balancer-manager page" /></p>
+
+    <p>
+      Ce formulaire permet à l'administrateur de modifier certains paramètres,
+      de désactiver ou d'ajouter certains serveurs d'arrière-plan, et de
+      modifier les règles de répartition de charge. Par exemple, si on clique
+      sur le répartiteur, la page suivante s'affiche : 
+    </p>
+    <p class="centered"><img src="../images/bal-man-b.png" alt="balancer-manager page" /></p>
+
+    <p>
+      Si on clique sur un membre du groupe de répartition de charge, la page
+      suivante s'affiche :
+    </p>
+    <p class="centered"><img src="../images/bal-man-w.png" alt="balancer-manager page" /></p>
+
+    <p>
+      Si vous souhaitez que ces modifications soient conservées après un
+      redémarrage du serveur, assurez-vous que la directive <directive
+      module="mod_proxy">BalancerPersist</directive> soit définie à On.
+    </p>
+
+  </section>
+
+  <section id="health-check">
+    <title>Vérification dynamique du bon fonctionnement d'un serveur
+    d'arrière-plan</title>
+
+    <p>
+      Avant que le mandataire httpd ne fasse appel à un serveur d'arrière-plan, il
+      peut <em>"tester"</em> si ce dernier est disponible en définissant le
+      paramètre <code>ping</code> de ce serveur via la directive <directive
+      module="mod_proxy">ProxyPass</directive>. Cependant, il est souvent plus
+      judicieux de vérifier le bon fonctionnement d'un serveur <em>hors
+      bande</em> et de manière dynamique via le module
+      <module>mod_proxy_hcheck</module> d'Apache httpd.
+    </p>
+
+  </section>
+
+  <section id="status">
+    <title>Drapeaux d'état d'un membre du groupe de répartition de charge</title>
+
+    <p>
+      <em>balancer-manager</em> permet d'afficher et de modifier l'état d'un
+      membre du groupe de répartition de charge. Les différents états et leurs
+      significations sont les suivants :
+    </p>
+      <table border="1">
+       <tr><th>Drapeau</th><th>Sigle</th><th>Description</th></tr>
+       <tr><td>&nbsp;</td><td><em>Ok</em></td><td>Le serveur est disponible</td></tr>
+       <tr><td>&nbsp;</td><td><em>Init</em></td><td>Le serveur a été initialisé</td></tr>
+        <tr><td><code>D</code></td><td><em>Dis</em></td><td>Le serveur est
+       désactivé et n'accepte aucune requête ; il sera retesté automatiquement.</td></tr>
+        <tr><td><code>S</code></td><td><em>Stop</em></td><td>Le serveur a été
+       arrêté par l'administrateur ; il n'accepte aucune requête et il ne sera
+       pas retesté automatiquement.</td></tr>
+        <tr><td><code>I</code></td><td><em>Ign</em></td><td>Les erreurs
+       concernant ce serveur sont ignorées et il sera donc toujours considéré
+       comme disponible.</td></tr>
+       <tr><td><code>R</code></td><td><em>Spar</em></td><td>Le serveur cible sert de remplaçant à
+        chaud. Lorsqu'un serveur cible avec un lbset donné est inutilisable
+        (maintenance, arrêt, en erreur, etc...), un serveur de remplacement à
+        chaud libre de même lbset sera utilisé à sa place. Les remplaçants à
+        chaud permettent de s'assurer qu'un nombre déterminé de serveurs cibles
+        sera toujours disponible pour un répartiteur de charge.</td></tr>
+        <tr><td><code>H</code></td><td><em>Stby</em></td><td>Le serveur est en
+       mode hot-standby et ne sera donc utilisé que si aucun autre serveur ou
+       serveur de remplacement n'est disponible dans le jeu de serveurs du
+       répartiteur de charge.</td></tr>
+        <tr><td><code>E</code></td><td><em>Err</em></td><td>Le serveur est en
+       erreur, en général suite à un test préalable à une requête ; aucune
+       requête ne lui sera soumise, mais il sera retesté en fonction de la
+       valeur de son paramètre <code>retry</code>.</td></tr>
+        <tr><td><code>N</code></td><td><em>Drn</em></td><td>Le serveur est en
+       mode drain ; il n'acceptera de requêtes que dans le cadre des sessions
+       persistantes qui lui sont réservées et ignorera toutes les autres.</td></tr>
+        <tr><td><code>C</code></td><td><em>HcFl</em></td><td>Le serveur a échoué
+       au test dynamique de bon fonctionnement et ne sera utilisé que lorsqu'il
+       aura réussi un test ultérieur.</td></tr>
+      </table>
+  </section>
+
+</manualpage>
diff --git a/docs/manual/mod/mod_authnz_fcgi.xml.fr b/docs/manual/mod/mod_authnz_fcgi.xml.fr
new file mode 100644 (file)
index 0000000..c0fc557
--- /dev/null
@@ -0,0 +1,559 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
+<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
+<!-- English Revision : 1727318 -->
+<!-- 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.
+-->
+
+<modulesynopsis metafile="mod_authnz_fcgi.xml.meta">
+
+<name>mod_authnz_fcgi</name>
+<description>Permet à une application d'autorisation FastCGI de gérer
+l'authentification et l'autorisation httpd.</description>
+<status>Extension</status>
+<sourcefile>mod_authnz_fcgi.c</sourcefile>
+<identifier>authnz_fcgi_module</identifier>
+<compatibility>Disponible à partir de la version 2.4.10 du serveur HTTP
+Apache</compatibility>
+
+<summary>
+    <p>Ce module permet aux applications d'autorisation FastCGI
+    d'authentifier les utilisateurs et de contrôler leur accès aux
+    ressources. Il supporte les systèmes d'autorisation FastCGI
+    génériques qui participent en une seule phase à l'authentification
+    et à l'autorisation, ainsi que les processus d'authentification et
+    d'autorisation spécifiques à Apache httpd qui interviennent en une
+    ou plusieurs phases.</p>
+
+    <p>Les processus d'autorisation FastCGI peuvent authentifier un
+    utilisateur via son identificateur et son mot de passe comme dans le
+    processus d'authentification basique, ou via un mécanisme
+    arbitraire.</p>
+</summary>
+
+<seealso><a href="../howto/auth.html">Authentification, autorisation et
+contrôle d'accès</a></seealso>
+<seealso><module>mod_auth_basic</module></seealso>
+<seealso><program>fcgistarter</program></seealso>
+<seealso><module>mod_proxy_fcgi</module></seealso>
+
+<section id="invocations"><title>Modes d'invocation</title>
+
+    <p>Les modes d'invocation des processus d'autorisation FastCGI que
+    ce module supporte se distinguent par deux caractéristiques : le
+    <em>type</em> et le <em>mécanisme</em> d'authentification.</p>
+
+    <p>Le <em>Type</em> est simplement <code>authn</code> pour
+    l'authentification, <code>authz</code> pour l'autorisation et
+    <code>authnz</code> l'authentification et l'autorisation.</p>
+
+    <p>Le <em>mécanisme</em> d'authentification fait référence aux
+    mécanismes d'authentification et aux phases de traitement de la
+    configuration de Apache httpd, et peut être
+    <code>AuthBasicProvider</code>, <code>Require</code>, ou
+    <code>check_user_id</code>. Les deux premiers mécanismes
+    correspondent aux directives utilisées pour participer aux phases de
+    traitement appropriées.</p>
+
+    <p>Description de chaque mode:</p>
+
+    <dl>
+      <dt><em>Type</em> <code>authn</code>, <em>mechanism</em>
+      <code>AuthBasicProvider</code></dt>
+
+      <dd>Dans ce mode, la variable <code>FCGI_ROLE</code> est définie à
+      <code>AUTHORIZER</code>, et la variable
+      <code>FCGI_APACHE_ROLE</code> à <code>AUTHENTICATOR</code>.
+      L'application doit être spécifiée en tant que fournisseur de type
+      <em>authn</em> via la directive <directive
+      module="mod_authnz_fcgi">AuthnzFcgiDefineProvider</directive>, et
+      activée via la directive <directive
+      module="mod_auth_basic">AuthBasicProvider</directive>. Lorsqu'elle
+      est invoquée, l'application est censée authentifier le client à
+      l'aide de l'identifiant et du mot de passe de l'utilisateur.
+      Exemple d'application :
+
+<highlight language="perl">
+#!/usr/bin/perl
+use FCGI;
+my $request = FCGI::Request();
+while ($request->Accept() >= 0) {
+    die if $ENV{'FCGI_APACHE_ROLE'} ne "AUTHENTICATOR";
+    die if $ENV{'FCGI_ROLE'}        ne "AUTHORIZER";
+    die if !$ENV{'REMOTE_PASSWD'};
+    die if !$ENV{'REMOTE_USER'};
+
+    print STDERR "This text is written to the web server error log.\n";
+
+    if ( ($ENV{'REMOTE_USER' } eq "foo" || $ENV{'REMOTE_USER'} eq "foo1") &amp;&amp;
+        $ENV{'REMOTE_PASSWD'} eq "bar" ) {
+        print "Status: 200\n";
+        print "Variable-AUTHN_1: authn_01\n";
+        print "Variable-AUTHN_2: authn_02\n";
+        print "\n";
+    }
+    else {
+        print "Status: 401\n\n";
+    }
+}
+</highlight>
+
+      Exemple de configuration httpd :
+<highlight language="config">
+AuthnzFcgiDefineProvider authn FooAuthn fcgi://localhost:10102/
+&lt;Location "/protected/"&gt;
+  AuthType Basic
+  AuthName "Restricted"
+  AuthBasicProvider FooAuthn
+  Require ...
+&lt;/Location&gt;
+</highlight>
+      </dd>
+
+      <dt><em>Type</em> <code>authz</code>, <em>mechanism</em>
+      <code>Require</code></dt>
+      <dd>Dans ce mode, la variable <code>FCGI_ROLE</code> est définie à
+      <code>AUTHORIZER</code> et <code>FCGI_APACHE_ROLE</code> à
+      <code>AUTHORIZER</code>. L'application doit être spécifiée en tant
+      que fournisseur de type <em>authz</em> via la directive <directive
+      module="mod_authnz_fcgi">AuthnzFcgiDefineProvider</directive>.
+      Lorsqu'elle est invoquée, l'application est censée contrôler les
+      accès du client à l'aide de l'identifiant utilisateur et d'autres
+      données contenues dans la requête. Exemple d'application :
+<highlight language="perl">
+#!/usr/bin/perl
+use FCGI;
+my $request = FCGI::Request();
+while ($request->Accept() >= 0) {
+    die if $ENV{'FCGI_APACHE_ROLE'} ne "AUTHORIZER";
+    die if $ENV{'FCGI_ROLE'}        ne "AUTHORIZER";
+    die if $ENV{'REMOTE_PASSWD'};
+
+    print STDERR "This text is written to the web server error log.\n";
+
+    if ($ENV{'REMOTE_USER'} eq "foo1") {
+        print "Status: 200\n";
+        print "Variable-AUTHZ_1: authz_01\n";
+        print "Variable-AUTHZ_2: authz_02\n";
+        print "\n";
+    }
+    else {
+        print "Status: 403\n\n";
+    }
+}
+</highlight>
+
+      Exemple de configuration httpd :
+<highlight language="config">
+AuthnzFcgiDefineProvider authz FooAuthz fcgi://localhost:10103/
+&lt;Location "/protected/"&gt;
+  AuthType ...
+  AuthName ...
+  AuthBasicProvider ...
+  Require FooAuthz
+&lt;/Location&gt;
+</highlight>
+      </dd>
+
+      <dt><em>Type</em> <code>authnz</code>, <em>mechanism</em>
+      <code>AuthBasicProvider</code> <em>+</em> <code>Require</code></dt>
+
+      <dd>Dans ce mode qui supporte le protocole d'autorisation web
+      server-agnostic FastCGI, la variable <code>FCGI_ROLE</code> est
+      définie à <code>AUTHORIZER</code> et <code>FCGI_APACHE_ROLE</code>
+      n'est pas définie. L'application doit être spécifiée en tant que
+      fournisseur de type <em>authnz</em> via la directive <directive
+      module="mod_authnz_fcgi">AuthnzFcgiDefineProvider</directive>.
+      L'application est censée assurer l'authentification et
+      l'autorisation au cours d'une même invocation à l'aide de
+      l'identifiant et du mot de passe de l'utilisateur et d'autres
+      données contenues dans la requête. L'invocation de l'application
+      intervient au cours de la phase d'authentification de l'API Apache
+      httpd. Si l'application renvoie le code 200, et si le même
+      fournisseur est invoqué au cours de la phase d'autorisation (via
+      une directive <directive>Require</directive>), mod_authnz_fcgi
+      renverra un code de type success pour la phase d'autorisation sans
+      invoquer l'application. Exemple d'application :
+<highlight language="perl">
+#!/usr/bin/perl
+use FCGI;
+my $request = FCGI::Request();
+while ($request->Accept() >= 0) {
+    die if $ENV{'FCGI_APACHE_ROLE'};
+    die if $ENV{'FCGI_ROLE'} ne "AUTHORIZER";
+    die if !$ENV{'REMOTE_PASSWD'};
+    die if !$ENV{'REMOTE_USER'};
+
+    print STDERR "This text is written to the web server error log.\n";
+
+    if ( ($ENV{'REMOTE_USER' } eq "foo" || $ENV{'REMOTE_USER'} eq "foo1") &amp;&amp;
+        $ENV{'REMOTE_PASSWD'} eq "bar" &amp;&amp;
+        $ENV{'REQUEST_URI'} =~ m%/bar/.*%) {
+        print "Status: 200\n";
+        print "Variable-AUTHNZ_1: authnz_01\n";
+        print "Variable-AUTHNZ_2: authnz_02\n";
+        print "\n";
+    }
+    else {
+        print "Status: 401\n\n";
+    }
+}
+</highlight>
+
+      Exemple de configuration httpd :
+<highlight language="config">
+AuthnzFcgiDefineProvider authnz FooAuthnz fcgi://localhost:10103/
+&lt;Location "/protected/"&gt;
+  AuthType Basic
+  AuthName "Restricted"
+  AuthBasicProvider FooAuthnz
+  Require FooAuthnz
+&lt;/Location&gt;
+</highlight>
+      </dd>
+
+      <dt><em>Type</em> <code>authn</code>, <em>mechanism</em>
+      <code>check_user_id</code></dt>
+
+      <dd>Dans ce mode, la variable <code>FCGI_ROLE</code> est définie à
+      <code>AUTHORIZER</code> et <code>FCGI_APACHE_ROLE</code> à
+      <code>AUTHENTICATOR</code>. L'application doit être spécifiée en
+      tant que fournisseur de type <em>authn</em> via une directive
+      <directive
+      module="mod_authnz_fcgi">AuthnzFcgiDefineProvider</directive>. La
+      directive <directive
+      module="mod_authnz_fcgi">AuthnzFcgiCheckAuthnProvider</directive>
+      permet de l'invoquer. Exemple d'application :
+<highlight language="perl">
+#!/usr/bin/perl
+use FCGI;
+my $request = FCGI::Request();
+while ($request->Accept() >= 0) {
+    die if $ENV{'FCGI_APACHE_ROLE'} ne "AUTHENTICATOR";
+    die if $ENV{'FCGI_ROLE'} ne "AUTHORIZER";
+
+    # This authorizer assumes that the RequireBasicAuth option of 
+    # AuthnzFcgiCheckAuthnProvider is On:
+    die if !$ENV{'REMOTE_PASSWD'};
+    die if !$ENV{'REMOTE_USER'};
+
+    print STDERR "This text is written to the web server error log.\n";
+
+    if ( ($ENV{'REMOTE_USER' } eq "foo" || $ENV{'REMOTE_USER'} eq "foo1") &amp;&amp;
+        $ENV{'REMOTE_PASSWD'} eq "bar" ) {
+        print "Status: 200\n";
+        print "Variable-AUTHNZ_1: authnz_01\n";
+        print "Variable-AUTHNZ_2: authnz_02\n";
+        print "\n";
+    }
+    else {
+        print "Status: 401\n\n";
+        # If a response body is written here, it will be returned to
+        # the client.
+    }
+}
+</highlight>
+
+      Exemple de configuration httpd :
+<highlight language="config">
+AuthnzFcgiDefineProvider authn FooAuthn fcgi://localhost:10103/
+&lt;Location "/protected/"&gt;
+  AuthType ...
+  AuthName ...
+  AuthnzFcgiCheckAuthnProvider FooAuthn \
+                               Authoritative On \
+                               RequireBasicAuth Off \
+                               UserExpr "%{reqenv:REMOTE_USER}"
+  Require ...
+&lt;/Location&gt;
+</highlight>
+      </dd>
+
+    </dl>
+    
+</section>
+
+<section id="examples"><title>Exemples supplémentaires</title>
+
+  <ol>
+    <li>Si votre application supporte séparément les rôles
+    d'authentification et d'autorisation (<code>AUTHENTICATOR</code> et
+    <code>AUTHORIZER</code>), vous pouvez définir des fournisseurs
+    séparés comme suit, même s'ils correspondent à la même application :
+
+<highlight language="config">
+AuthnzFcgiDefineProvider authn  FooAuthn  fcgi://localhost:10102/
+AuthnzFcgiDefineProvider authz  FooAuthz  fcgi://localhost:10102/
+</highlight>
+
+    Spécifie le fournisseur authn via la directive 
+    <directive module="mod_auth_basic">AuthBasicProvider</directive>
+    et le fournisseur authz via la directive
+    <directive module="mod_authz_core">Require</directive>:
+
+<highlight language="config">
+AuthType Basic
+AuthName "Restricted"
+AuthBasicProvider FooAuthn
+Require FooAuthz
+</highlight>
+    </li>
+
+    <li>Si votre application supporte le rôle générique
+    <code>AUTHORIZER</code> (authentification et autorisation en une
+    seule invocation), vous pouvez définir un fournisseur unique comme
+    suit :
+
+<highlight language="config">
+AuthnzFcgiDefineProvider authnz FooAuthnz fcgi://localhost:10103/
+</highlight>
+
+    Spécifie le fournisseur authnz via les directives
+    <directive>AuthBasicProvider</directive> et
+    <directive>Require</directive> :
+
+<highlight language="config">
+AuthType Basic
+AuthName "Restricted"
+AuthBasicProvider FooAuthnz
+Require FooAuthnz
+</highlight>
+    </li>
+</ol>
+</section>
+
+<section id="limitations"><title>Limitations</title>
+
+    <p>Les fonctionnalités suivantes ne sont pas encore implémentées :</p>
+
+    <dl>
+      <dt>Vérificateur d'accès d'Apache httpd</dt>
+      <dd>La phase <em>access check</em> de l'API Apache httpd est
+      distincte des phases d'authentification et d'autorisation.
+      Certaines autres implémentations de FastCGI supportent cette phase
+      et lorsque c'est le cas, la variable <code>FCGI_APACHE_ROLE</code>
+      est définie à <code>ACCESS_CHECKER</code>.</dd>
+
+      <dt>Redirections (pipes) ou sockets locaux (Unix)</dt>
+      <dd>Seuls les sockets TCP sont actuellement supportés.</dd>
+
+      <dt>Support de mod_authn_socache</dt>
+      <dd>Le support de l'interaction avec mod_authn_socache pour les
+      applications qui interviennent dans le processus
+      d'authentification d'Apache httpd serait souhaitable.</dd>
+
+      <dt>Support de l'authentification de type digest à l'aide de AuthDigestProvider</dt>
+      <dd>Cette limitation ne sera probablement jamais franchie car il
+      n'existe aucun flux de données d'autorisation capable de lire dans
+      un condensé de type hash.</dd>
+
+      <dt>Gestion des processus applicatifs</dt>
+      <dd>Cette fonctionnalité restera probablement hors de portée de ce
+      module. Il faudra donc gérer les processus applicatifs d'une autre
+      manière ; par exemple, <program>fcgistarter</program> permet de
+      les démarrer.</dd>
+
+      <dt>AP_AUTH_INTERNAL_PER_URI</dt>
+      <dd>Tous les fournisseurs sont actuellement enregistrés en tant
+      que AP_AUTH_INTERNAL_PER_CONF, ce qui signifie que les
+      vérifications ne sont pas effectuées pour les
+      sous-requêtes internes avec la même configuration de contrôle
+      d'accès que la requête initiale.</dd>
+
+      <dt>Conversion du jeu de caractères des données de protocole</dt>
+      <dd>Si mod_authnz_fcgi s'exécute dans un environnement de
+      compilation EBCDIC, toutes les données de protocole FastCGI sont
+      écrites en EBCDIC et doivent être disponibles en EBCDIC.</dd>
+
+      <dt>Plusieurs requêtes pour une connexion</dt>
+      <dd>Actuellement, la connexion au fournisseur d'autorisation
+      FastCGI est fermée après chaque phase de traitement. Par exemple,
+      si le fournisseur d'autorisation gère séparément les phases
+      <em>authn</em> et <em>authz</em>, deux connexions seront
+      nécessaires.</dd>
+
+      <dt>Redirection de certains URIs</dt>
+      <dd>Les URIs en provenance des clients ne peuvent pas être
+      redirigés selon une table de redirection, comme avec la directive
+      <directive>ProxyPass</directive> utilisée avec les répondeurs
+      FastCGI.</dd>
+
+    </dl>
+
+</section>
+
+<section id="logging"><title>Journalisation</title>
+
+    <ol>
+        <li>Les erreurs de traitement sont journalisées à un niveau
+       <code>error</code> ou supérieur.</li>
+        <li>Les messages envoyés par l'application sont journalisés au
+       niveau <code>warn</code>.</li>
+        <li>Les messages de deboguage à caractère général sont
+       journalisés au niveau <code>debug</code>.</li>
+        <li>Les variables d'environnement transmises à l'application
+       sont journalisées au niveau <code>trace2</code>. La valeur de la
+       variable <code>REMOTE_PASSWD</code> sera occultée, mais
+       <strong>toute autre donnée sensible sera visible dans le
+       journal</strong>.</li>
+        <li>Toutes les entrées/sorties entre le module et l'application
+       FastCGI, y compris les variables d'environnement, seront
+       journalisées au format imprimable et hexadécimal au niveau
+       <code>trace5</code>. <strong>Toutes les données sensibles seront
+       visibles dans le journal.</strong></li>
+    </ol>
+
+    <p>La directive <directive module="core">LogLevel</directive> permet
+    de configurer un niveau de journalisation spécifique à
+    mod_authnz_fcgi. Par exemple :</p>
+
+<highlight language="config">
+LogLevel info authnz_fcgi:trace8
+</highlight>
+
+</section>
+
+<directivesynopsis>
+<name>AuthnzFcgiDefineProvider</name>
+<description>Définit une application FastCGI en tant que fournisseur
+d'authentification et/ou autorisation</description>
+<syntax>AuthnzFcgiDefineProvider <em>type</em> <em>provider-name</em>
+<em>backend-address</em></syntax>
+<default>none</default>
+<contextlist><context>server config</context></contextlist>
+<usage>
+    <p>Cette directive permet de définir une application FastCGI en tant
+    que fournisseur pour une phase particulière d'authentification ou
+    d'autorisation.</p>
+
+    <dl>
+      <dt><em>type</em></dt>
+      <dd>Les valeurs de ce paramètre sont <em>authn</em> pour
+      l'authentification, <em>authz</em> pour l'autorisation, ou
+      <em>authnz</em> pour un fournisseur d'autorisation générique
+      FastCGI qui effectue les deux vérifications.</dd>
+
+      <dt><em>provider-name</em></dt>
+      <dd>Ce paramètre permet d'associer un nom au fournisseur ; ce nom
+      pourra être utilisé dans des directives comme <directive
+      module="mod_auth_basic">AuthBasicProvider</directive> et
+      <directive module="mod_authz_core">Require</directive>.</dd>
+
+      <dt><em>backend-address</em></dt>
+      <dd>Ce paramètre permet de spécifier l'adresse de l'application
+      sous la forme <em>fcgi://hostname:port/</em>. Le ou les processus
+      de l'application doivent être gérés indépendamment comme avec
+      <program>fcgistarter</program>.</dd>
+    </dl>
+</usage>
+</directivesynopsis>
+
+<directivesynopsis>
+<name>AuthnzFcgiCheckAuthnProvider</name>
+<description>Permet à une application FastCGI de gérer l'accroche
+d'authentification check_authn.</description>
+<syntax>AuthnzFcgiCheckAuthnProvider <em>provider-name</em>|<code>None</code>
+<em>option</em> ...</syntax>
+<default>none</default>
+<contextlist><context>directory</context></contextlist>
+<usage>
+    <p>Cette directive permet de confier à une application FastCGI la
+    gestion d'une phase spécifique du processus d'authentification ou
+    d'autorisation.</p>
+
+    <p>Certaines fonctionnalités des fournisseurs d'autorisation FastCGI
+    nécessitent cette directive en lieu et place de
+    <directive>AuthBasicProvider</directive> pour pouvoir être activées :</p>
+
+    <ul>
+      <li>L'authentification de type autre que basique ; en général,
+      détermination de l'identifiant utilisateur et renvoi de sa valeur
+      depuis le fournisseur d'autorisation ; voir l'option
+      <code>UserExpr</code> ci-dessous</li>
+      <li>Sélection d'un code de réponse personnalisé ; en cas de
+      code de réponse autre que 200 en provenance du fournisseur
+      d'autorisation, c'est ce code qui sera utilisé comme code d'état
+      de la réponse</li>
+      <li>Définition du corps d'une réponse autre que 200 ; si le
+      fournisseur d'autorisation renvoie un corps de réponse avec un
+      code autre que 200, c'est ce corps de réponse qui sera renvoyé au
+      client ; la longueur du texte est limitée à 8192 octets</li>
+    </ul>
+
+    <dl>
+      <dt><em>provider-name</em></dt>
+      <dd>C'est le nom du fournisseur défini au préalable via la
+      directive <directive>AuthnzFcgiDefineProvider</directive>.</dd>
+
+      <dt><code>None</code></dt>
+      <dd>Spécifiez <code>None</code> pour désactiver un fournisseur
+      activé avec cette même directive dans une autre portée, par
+      exemple dans un répertoire parent.</dd>
+
+      <dt><em>option</em></dt>
+      <dd>Les options suivantes sont supportées :
+      
+      <dl>
+         <dt>Authoritative On|Off (par défaut On)</dt>
+         <dd>Cette option permet de définir si l'appel à d'autres
+        modules est autorisé lorsqu'un fournisseur d'autorisation FastCGI a
+        été configuré et si la requête échoue.</dd>
+
+         <dt>DefaultUser <em>id utilisateur</em></dt>
+         <dd>Lorsque le fournisseur d'autorisation donne son accord, et
+        si <code>UserExpr</code> est défini et correspond à une chaîne
+        vide, (par exemple, si le fournisseur d'autorisation ne renvoie
+        aucune variable), c'est cette valeur qui sera utilisée comme id
+        utilisateur par défaut. Cela se produit souvent lorsqu'on se trouve dans
+        un contexte d'invité, ou d'utilisateur non authentifié ;
+        les utilisateurs et invités se voient alors attribué un id
+        utilisateur spécifique qui permettra de se connecter et
+        d'accéder à certaines ressources.</dd>
+
+         <dt>RequireBasicAuth On|Off (par défaut Off)</dt>
+         <dd>Cette option permet de définir si l'authentification
+        basique est requise avant de transmettre la requête au
+        fournisseur d'autorisation. Dans l'affirmative, le fournisseur
+        d'autorisation ne sera invoqué qu'en présence d'un id
+        utilisateur et d'un mot de passe ; si ces deux éléments ne sont
+        pas présents, un code d'erreur 401 sera renvoyé</dd>
+
+         <dt>UserExpr <em>expr</em> (pas de valeur par défaut)</dt>
+         <dd>Lorsque le client ne fournit pas l'authentification basique
+        et si le fournisseur d'autorisation détermine l'id utilisateur,
+        cette expression, évaluée après l'appel au fournisseur
+        d'autorisation, permet de déterminer l'id utilisateur. Cette
+        expression se conforme à la <a href="../expr.html">syntaxe
+        ap_expr</a> et doit correspondre à une chaîne de caractères.
+        Une utilisation courante consiste à référencer la définition
+        d'une <code>Variable-<em>XXX</em></code> renvoyée par le
+        fournisseur d'autorisation via une option du style
+        <code>UserExpr "%{reqenv:<em>XXX</em>}"</code>. Si cette option
+        est spécifiée, et si l'id utilisateur ne peut pas être définie
+        via l'expression après une authentification réussie, la requête
+        sera rejetée avec un code d'erreur 500.</dd>
+
+       </dl>
+      </dd>
+     </dl>
+</usage>
+</directivesynopsis>
+
+</modulesynopsis>
diff --git a/docs/manual/mod/mod_brotli.xml.fr b/docs/manual/mod/mod_brotli.xml.fr
new file mode 100644 (file)
index 0000000..e1756d6
--- /dev/null
@@ -0,0 +1,328 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
+<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
+<!-- English Revision : 1794162 -->
+<!-- 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.
+-->
+
+<modulesynopsis metafile="mod_brotli.xml.meta">
+
+<name>mod_brotli</name>
+<description>Compression du contenu via Brotli avant sa livraison au client</description>
+<status>Extension</status>
+<sourcefile>mod_brotli.c</sourcefile>
+<identifier>brotli_module</identifier>
+<compatibility>Disponible à partir de la version 2.4.26 du serveur HTTP Apache</compatibility>
+
+<summary>
+    <p>Le module <module>mod_brotli</module> fournit le filtre en sortie
+    <code>BROTLI_COMPRESS</code> qui permet de compresser un contenu avant sa
+    livraison au client en utilisant la bibliothèque brotli. Ce filtre est
+    implémenté en utilisant la bibliothèque Brotli que l'on peut trouver à <a
+    href="https://github.com/google/brotli">https://github.com/google/brotli</a>.</p>
+</summary>
+<seealso><a href="../filter.html">Filters</a></seealso>
+
+<section id="recommended"><title>Exemples de configurations</title>
+    <note type="warning"><title>Compression et TLS</title>
+        <p>Certaines applications web sont vulnérables à une attaque de type vol
+       d'informations lorsqu'une connexion TLS transmet des données
+       compressées. Pour plus d'informations, étudiez en détail la famille
+       d'attaques "BREACH".</p>
+    </note>
+    <p>Voici une configuration simple qui compresse des types de contenus
+    courants au format texte :</p>
+
+    <example><title>Compression de certains types seulement</title>
+    <highlight language="config">
+AddOutputFilterByType BROTLI_COMPRESS text/html text/plain text/xml text/css text/javascript application/javascript
+    </highlight>
+    </example>
+
+</section>
+
+<section id="enable"><title>Activation de la compression</title>
+    <note type="warning"><title>Compression et TLS</title>
+        <p>Certaines applications web sont vulnérables à une attaque de type vol
+       d'informations lorsqu'une connexion TLS transmet des données
+       compressées. Pour plus d'informations, étudiez en détail la famille
+       d'attaques "BREACH".</p>
+    </note>
+
+    <section id="output"><title>Compression en sortie</title>
+      <p>La compression est implémentée par le <a
+      href="../filter.html">filtre</a> <code>BROTLI_COMPRESS</code>. La
+      directive suivante active la compression pour les documents correspondant
+      au conteneur dans lequel elle est placée :</p>
+
+      <highlight language="config">
+SetOutputFilter BROTLI_COMPRESS
+SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-brotli
+      </highlight>
+
+      <p>Si vous voulez restreindre la compression à certains types MIME
+      particuliers, vous pouvez utiliser la directive <directive
+      module="mod_filter">AddOutputFilterByType</directive>. Dans l'exemple
+      suivant, l'activation de la compression est restreinte aux fichiers html
+      de la documentation d'Apache :</p>
+
+      <highlight language="config">
+&lt;Directory "/your-server-root/manual"&gt;
+    AddOutputFilterByType BROTLI_COMPRESS text/html
+&lt;/Directory&gt;
+      </highlight>
+
+      <note><title>Note</title>
+        Le filtre <code>BROTLI_COMPRESS</code> est toujours inséré après les
+       filtres RESOURCE comme PHP ou SSI. Il n'affecte jamais les sous-requêtes
+       internes.
+      </note>
+      <note><title>Note</title>
+        Définie via <directive module="mod_env">SetEnv</directive>, la variable
+       d'environnement <code>no-brotli</code> permet de désactiver la
+       compression brotli pour une requête particulière, et ceci même si elle
+       est supportée par le client.
+      </note>
+
+    </section>
+
+</section>
+
+<section id="proxies"><title>Interaction avec les serveurs mandataires</title>
+
+    <p>Le module <module>mod_brotli</module> envoie un en-tête de réponse HTTP
+    <code>Vary:Accept-Encoding</code> pour indiquer aux mandataires qu'une
+    réponse mise en cache ne doit être envoyée qu'aux clients qui envoient
+    l'en-tête de requête <code>Accept-Encoding</code> approprié. Ceci permet
+    d'éviter d'envoyer du contenu compressé à un client qui ne sera pas en
+    mesure de le décompresser.</p>
+
+    <p>Si vous utilisez des exclusions spéciales dépendant, par exemple, de
+    l'en-tête <code>User-Agent</code>, vous devez faire un ajout manuel à
+    l'en-tête <code>Vary</code> afin d'informer les mandataires des restrictions
+    supplémentaires. Par exemple, dans une configuration typique où l'addition
+    du filtre <code>BROTLI_COMPRESS</code> dépend de l'en-tête <code>User-Agent</code>,
+    vous devez ajouter :</p>
+
+    <highlight language="config">
+Header append Vary User-Agent
+    </highlight>
+
+    <p>Si votre décision d'utiliser la compression ou non dépend d'autres
+    informations que le contenu d'en-têtes de requêtes (par exemple la version
+    HTTP), vous devez affecter la valeur <code>*</code> à l'en-tête
+    <code>Vary</code>. Ceci permet d'éviter que des mandataires qui le
+    supportent n'effectuent une mise en cache intégrale.</p>
+
+    <example><title>Exemple</title>
+    <highlight language="config">
+Header set Vary *
+    </highlight>
+    </example>
+</section>
+
+<section id="precompressed"><title>Servir un contenu pré-compressé</title>
+
+    <p>comme <module>mod_brotli</module> compresse systématiquement un contenu
+    pour chaque requête le concernant, il est possible d'obtenir un gain en
+    performance en pré-compressant le contenu et en disant à mod_brotli de le
+    servir sans le recompresser. Pour cela, vous pouvez utiliser une
+    configuration du style :</p>
+
+    <highlight language="config">
+&lt;IfModule mod_headers.c&gt;
+    # Sert des fichiers CSS compressés par brotli, s'ils existent
+    # et si le client supporte brotli.
+    RewriteCond "%{HTTP:Accept-encoding}" "br"
+    RewriteCond "%{REQUEST_FILENAME}\.br" "-s"
+    RewriteRule "^(.*)\.css"              "$1\.css\.br" [QSA]
+
+    # Sert des fichiers JS compressés par brotli, s'ils existent
+    # et si le client supporte brotli.
+    RewriteCond "%{HTTP:Accept-encoding}" "br"
+    RewriteCond "%{REQUEST_FILENAME}\.br" "-s"
+    RewriteRule "^(.*)\.js"               "$1\.js\.br" [QSA]
+
+
+    # Sert des types de contenu corrects, et évite la double compression.
+    RewriteRule "\.css\.gz$" "-" [T=text/css,E=no-brotli:1]
+    RewriteRule "\.js\.gz$"  "-" [T=text/javascript,E=no-brotli:1]
+
+
+    &lt;FilesMatch "(\.js\.br|\.css\.br)$"&gt;
+      # Sert un type d'encodage correct.
+      Header append Content-Encoding br
+
+      # Force les mandataires à mettre en cache séparément les fichiers css/js
+      # compressés ou non par brotli.
+      Header append Vary Accept-Encoding
+    &lt;/FilesMatch&gt;
+&lt;/IfModule&gt;
+    </highlight>
+
+</section>
+
+<directivesynopsis>
+<name>BrotliFilterNote</name>
+<description>Enregistre le taux de compression dans une note à des fins de
+journalisation</description>
+<syntax>BrotliFilterNote [<var>type</var>] <var>notename</var></syntax>
+<contextlist><context>server config</context><context>virtual host</context>
+</contextlist>
+
+<usage>
+    <p>La directive <directive>BrotliFilterNote</directive> permet d'indiquer
+    qu'une note à propos du taux de compression doit être attachée à la
+    requête. L'argument <var>notename</var> permet de spécifier le nom de la
+    note. Vous pouvez utiliser cette note à des fins de statistiques en ajoutant
+    l'information correspondante à votre <a href="../logs.html#accesslog">access
+    log</a>.</p>
+
+    <example><title>Exemple</title>
+    <highlight language="config">
+BrotliFilterNote ratio
+
+LogFormat '"%r" %b (%{ratio}n) "%{User-agent}i"' brotli
+CustomLog "logs/brotli_log" brotli
+    </highlight>
+    </example>
+
+    <p>Si vous souhaitez que l'information enregistrée dans vos journaux soit
+    plus pertinente, vous pouvez renseigner l'argument optionnel <var>type</var>
+    afin de spécifier le type de données à enregistrer dans la note à
+    journaliser. L'argument <var>type</var> accepte les valeurs suivantes :</p>
+
+    <dl>
+      <dt><code>Input</code></dt>
+      <dd>Enregistre dans la note le nombre d'octets contenus dans le flux
+      d'entrée du filtre.</dd>
+
+      <dt><code>Output</code></dt>
+      <dd>Enregistre dans la note le nombre d'octets contenus dans le flux
+      de sortie du filtre.</dd>
+
+      <dt><code>Ratio</code></dt>
+      <dd>Enregistre dans la note le taux de compression (<code>output/input *
+      100</code>). Il s'agit de l'option par défaut si l'argument
+      <var>type</var> est omis.</dd>
+    </dl>
+
+    <p>Vous pouvez alors configurer vos journaux de la manière suivante :</p>
+
+    <example><title>Journalisation spécifique</title>
+    <highlight language="config">
+BrotliFilterNote Input instream
+BrotliFilterNote Output outstream
+BrotliFilterNote Ratio ratio
+
+LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' brotli
+CustomLog "logs/brotli_log" brotli
+    </highlight>
+    </example>
+</usage>
+<seealso><module>mod_log_config</module></seealso>
+</directivesynopsis>
+
+<directivesynopsis>
+<name>BrotliCompressionQuality</name>
+<description>Qualité de la compression</description>
+<syntax>BrotliCompressionQuality <var>value</var></syntax>
+<default>BrotliCompressionQuality 5</default>
+<contextlist><context>server config</context><context>virtual host</context>
+</contextlist>
+
+<usage>
+    <p>La directive <directive>BrotliCompressionQuality</directive> permet de
+    spécifier la qualité de la compression (une valeur entre 0 et
+    11). Les valeurs les plus hautes correspondent à une compression de
+    meilleure qualité mais plus lente.
+  </p>
+</usage>
+</directivesynopsis>
+
+<directivesynopsis>
+<name>BrotliCompressionWindow</name>
+<description>Taille de la fenêtre de compression glissante brotli</description>
+<syntax>BrotliCompressionWindow <var>value</var></syntax>
+<default>BrotliCompressionWindow 18</default>
+<contextlist><context>server config</context><context>virtual host</context>
+</contextlist>
+
+<usage>
+    <p>La directive <directive>BrotliCompressionWindow</directive> permet de
+    spécifier la taille de la fenêtre de compression glissante brotli (une
+    valeur comprise entre 10 et 24). Une taille de fenêtre plus grande peut
+    améliorer la qualité de la compression mais consomme d'avantage de mémoire.</p>
+</usage>
+</directivesynopsis>
+
+<directivesynopsis>
+
+<name>BrotliCompressionMaxInputBlock</name>
+<description>Taille maximale du bloc de données en entrée</description>
+<syntax>BrotliCompressionMaxInputBlock <var>value</var></syntax>
+<default>(automatic)</default>
+<contextlist><context>server config</context><context>virtual host</context>
+</contextlist>
+
+<usage>
+    <p>La directive <directive>BrotliCompressionMaxInputBlock</directive> permet
+    de spécifier la taille maximale du bloc de données en entrée entre 16 et 24,
+    sachant que plus cette taille sera grande, plus grande sera la quantité de
+    mémoire consommée.</p>
+</usage>
+</directivesynopsis>
+
+<directivesynopsis>
+<name>BrotliAlterETag</name>
+<description>Comment l'en-tête de réponse ETag doit être modifié au cours de la
+compression</description>
+<syntax>BrotliAlterETag AddSuffix|NoChange|Remove</syntax>
+<default>BrotliAlterETag AddSuffix</default>
+<contextlist><context>server config</context><context>virtual host</context>
+</contextlist>
+
+<usage>
+    <p>La directive <directive>BrotliAlterETag</directive> permet d'indiquer
+    comment l'en-tête ETag doit être modifié lorsqu'une réponse est compressée.</p>
+    <dl>
+    <dt>AddSuffix</dt>
+    <dd><p>Ajoute la méthode de compression à la fin de l'en-tête ETag, ce qui
+    implique que les représentations compressées et non compressées possèderont
+    des en-têtes ETag uniques. C'était le comportement par défaut depuis la
+    version 2.4.0 avec un autre module de compression dynamique,
+    mod-deflate. Ce paramètre permet d'éviter l'envoi de messages
+    "HTTP Not Modified" (304) en réponse aux requêtes conditionnelles pour des
+    contenus compressés.</p></dd>
+    <dt>NoChange</dt>
+    <dd><p>Ne modifie pas l'en-tête ETag d'une réponse compressée. C'était le
+    comportement par défaut depuis la version 2.4.0 avec un autre module de
+    compression dynamique, mod-deflate. Ce paramètre ne respecte pas la
+    propriété HTTP/1.1 selon laquelle toutes les représentations d'une même
+    ressource ont des en-têtes ETag uniques.</p></dd>
+    <dt>Remove</dt>
+    <dd><p>Supprime l'en-tête ETag des réponses compressées, ce qui rend
+    impossibles certaines requêtes conditionnelles, mais évite les inconvénients
+    des options précédentes.</p></dd>
+    </dl>
+</usage>
+</directivesynopsis>
+
+</modulesynopsis>
diff --git a/docs/manual/mod/mod_http2.xml.fr b/docs/manual/mod/mod_http2.xml.fr
new file mode 100644 (file)
index 0000000..8466547
--- /dev/null
@@ -0,0 +1,1189 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
+<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
+<!-- English Revision : 1798481 -->
+<!-- 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.
+ -->
+
+<modulesynopsis metafile="mod_http2.xml.meta">
+    
+    <name>mod_http2</name>
+    <description>Support de la couche transport HTTP/2</description>
+    <status>Extension</status>
+    <sourcefile>mod_http2.c</sourcefile>
+    <identifier>http2_module</identifier>
+    <compatibility>Disponible à partir de la version 2.4.17 du serveur
+    HTTP Apache</compatibility>
+    
+    <summary>
+       <p>Ce module ajoute le support de HTTP/2 (<a
+       href="https://tools.ietf.org/html/rfc7540">RFC 7540</a>) au serveur HTTP
+       Apache.</p>
+        
+        <p>Il s'appuie sur la bibliothèque <a
+       href="http://nghttp2.org/">libnghttp2</a> pour implémenter le
+       moteur de base http/2.</p>
+        
+        <p>Pour mettre en oeuvre les fonctionnalités décrites dans ce
+       document, vous devez activer HTTP/2 en utilisant la directive
+       <directive module="core">Protocols</directive>. HTTP/2 <a
+       href="https://http2.github.io/faq/#does-http2-require-encryption">n'imposant
+       pas</a> de chiffrement, deux protocoles sont disponibles :
+       <code>h2</code> (HTTP/2 avec TLS) at <code>h2c</code> (HTTP/2 avec TCP).</p>
+
+       <p>Voici deux types de configuration courant :</p>
+
+       <note><title>HTTP/2 dans un contexte de serveur virtuel (TLS seulement)</title>
+        <highlight language="config">
+            Protocols h2 http/1.1
+        </highlight>
+       <p>Permet une négociation HTTP/2 (h2) via TLS ALPN au sein d'un
+       <directive module="core" type="section">VirtualHost</directive>
+       sécurisé. La vérification du préambule HTTP/2 (mode direct, voir
+       <directive module="mod_http2">H2Direct</directive>) est désactivée par
+       défaut pour <code>h2</code>.</p>
+        </note>
+        <note><title>HTTP/2 dans un contexte de serveur (TLS et texte pur)</title>
+       <highlight language="config">
+Protocols h2 h2c http/1.1
+        </highlight>
+       <p>Permet une négociation HTTP/2 (h2) via TLS ALPN au sein d'un
+       <directive module="core" type="section">VirtualHost</directive>
+       sécurisé. Permet aussi une négociation HTTP/2 en texte pur (h2c) en
+       effectuant une mise à jour depuis une connexion initiale HTTP/1.1 ou via
+       une vérification du préambule HTTP/2 (mode direct, voir
+       <directive module="mod_http2">H2Direct</directive>).</p>
+        </note>
+        <p>Si vous avez besoin d'informations supplémentaires à propos du
+       protocole, veuillez vous reporter à la <a
+       href="https://http2.github.io/faq">HTTP/2 FAQ</a>.</p>
+       
+
+    </summary>
+
+    <section id="how-it-works"><title>Comment ça marche ?</title>
+    
+    <section id="dimensioning"><title>Quantification des ressources
+    supplémentaires nécessaires à HTTP/2</title>
+        <p>
+            Activer HTTP/2 sur votre serveur Apache a un impact sur la
+           consommation de ressources, et si votre site est très actif, il est
+           conseillé d'en prendre sérieusement en compte les implications.
+        </p>
+        <p>
+            HTTP/2 attribue à chaque requête qu'il reçoit son propre <em>thread
+           de travail</em> pour son traitement, la collecte des résultats et
+           l'envoie de ces derniers au client. Pour y parvenir, il lui faut
+           lancer des threads supplémentaires, et ceci constituera le premier
+           effet notable de l'activation de HTTP/2.
+        </p>
+        <p>
+           Dans l'implémentation actuelle, ces threads de travail font partie
+           d'un jeu de threads distinct de celui des threads de travail du MPM
+           avec lequel vous êtes familié. Il s'agit simplement du mode de
+           fonctionnement actuel, et il n'en sera pas obligatoirement toujours
+           ainsi (il est cependant probable que la situation restera inchangée
+           avec la version 2.4.x). De par ce mode de fonctionnement, les
+           threads de travail HTTP/2, ou plus simplement H2 ne seront pas
+           affichés par <module>mod_status</module>. De même, ils ne seront pas
+           pris en compte par les directives du style <directive
+           module="mpm_common">ThreadsPerChild</directive>. Par contre, ils
+           utilisent par défaut la valeur de <directive
+           module="mpm_common">ThreadsPerChild</directive> si vous n'avez pas
+           spécifié d'autres valeurs via <directive
+           module="mod_http2">H2MinWorkers</directive> et <directive
+           module="mod_http2">H2MaxWorkers</directive>.
+        </p>
+        <p>
+            Autre changement à surveiller : la consommation de mémoire. En
+           effet, comme HTTP/2 conserve plus d'informations sur le serveur pour
+           gérer toutes les requêtes en cours, leurs priorités et
+           interdépendances, il aura toujours besoin de plus de mémoire que
+           pour un traitement en HTTP/1.1. Trois directives permettent de
+           limiter l'empreinte mémoire d'une connexion HTTP/2 : <directive
+           module="mod_http2">H2MaxSessionStreams</directive>, <directive
+           module="mod_http2">H2WindowSize</directive> et <directive
+           module="mod_http2">H2StreamMaxMemSize</directive>.
+        </p>
+        <p>
+            La directive <directive
+           module="mod_http2">H2MaxSessionStreams</directive> permet de limiter
+           le nombre de requêtes simultanées qu'un client peut envoyer sur une
+           connexion HTTP/2. La valeur que vous allez définir dépend de votre
+           site. La valeur par défaut qui est de 100 est largement suffisante,
+           et à moins que vous ne soyez un peu juste en mémoire, je vous
+           conseille de ne pas la modifier. La plupart des requêtes qu'envoie
+           un client sont des requêtes de type GET sans corps qui n'utilisent
+           que très peu de mémoire en attendant le démarrage du traitement.
+           
+        </p>
+        <p>
+            La directive <directive module="mod_http2">H2WindowSize</directive>
+           permet de définir la taille maximale que peut avoir le corps d'une
+           requête que le client envoie avant d'attendre que le serveur
+           en demande d'avantage. En d'autres termes, il s'agit de la quantité
+           de données que le serveur peut stocker dans son tampon, valable pour
+           une requête.
+        </p>
+        <p>
+           En outre, la directive <directive
+           module="mod_http2">H2StreamMaxMemSize</directive> permet de définir
+           la quantité de données de la réponse qui doit être mise en tampon.
+           Chaque requête étant prise en charge par un thread H2Worker et
+           produisant des données que le serveur tente de transmettre au client
+           via une connexion HTTP/2, si le client n'est pas en mesure de lire
+           ces données assez rapidement, la connexion les mettra en tampon et
+           interrompra l'exécution du thread H2Worker correspondant.
+        </p>
+        
+    </section>
+    
+    <section id="misdirected"><title>Serveurs virtuels et requêtes mal
+    redirigées</title>
+        <p>
+            De nombreux site utilisent le même certificat TLS pour plusieurs
+           serveurs virtuels. Ce certificat référence un nom de serveur
+           générique comme '*.example.org' ou plusieurs noms de serveur
+           différents. Les navigateurs qui utilisent HTTP/2 détectent ce
+           comportement et réutilisent une connexion déjà ouverte pour ces
+           serveurs.
+        </p>
+        <p>
+            Ceci améliore considérablement les performances, mais il y a un prix
+           à payer : il faut accorder un soin tout particulier à la
+           configuration de tels serveurs virtuels. Le problème réside dans le
+           fait que plusieurs requêtes pour plusieurs serveurs virtuels vont se
+           partager la même connexion TLS, et ceci empêche toute renégociation
+           car le standard HTTP/2 l'interdit.
+        </p>
+        <p>
+            Ainsi, lorsque plusieurs de vos serveurs virtuels utilisent le même
+           certificat et si vous souhaitez utiliser HTTP/2 pour y accéder, vous
+           devez vous assurer que tous vos serveurs virtuels possèdent
+           exactement la même configuration SSL. En particulier, ils doivent
+           utiliser les mêmes protocole, algorithme de chiffrement et
+           configuration pour la vérification du client.
+        </p>
+        <p>
+           Dans le cas contraire, Apache httpd le détectera et renverra au
+           client un code de réponse spécial, 421 Misdirected Request.
+        </p>
+    </section>
+
+    <section id="envvars"><title>Variables d'environnement</title>
+        
+        <p>Ce module peut être configuré pour fournir des informations en
+       rapport avec HTTP/2 sous la forme de variables d'environnement
+       supplémentaires dans l'espace de nommage SSI et CGI, ainsi que dans les
+       configurations personnalisées de le journalisation (voir
+       <code>%{VAR_NAME}e</code>).
+        </p>
+        
+        <table border="1">
+            <columnspec><column width=".3"/><column width=".2"/><column width=".5"/>
+            </columnspec>
+            <tr>
+                <th><a name="table3">Nom variable :</a></th>
+                <th>Type :</th>
+                <th>Description :</th>
+            </tr>
+            <tr><td><code>HTTPe</code></td><td>drapeau</td><td>HTTP/2 est utilisé.</td></tr>
+            <tr><td><code>H2PUSH</code></td><td>drapeau</td><td>La
+           fonctionnalité HTTP/2 Server Push est activée pour cette requête et
+           supportée par le client.</td></tr>
+           <tr><td><code>H2_PUSH</code></td><td>drapeau</td><td>autre nom pour <code>H2PUSH</code></td></tr>
+            <tr><td><code>H2_PUSHED</code></td><td>chaîne</td><td>vide ou
+           <code>PUSHED</code> pour une requête pushée par le serveur.</td></tr>
+            <tr><td><code>H2_PUSHED_ON</code></td><td>nombre</td><td>numéro du
+           flux HTTP/2 qui a déclenché le push de cette requête.</td></tr>
+            <tr><td><code>H2_STREAM_ID</code></td><td>nombre</td><td>numéro du
+           flux HTTP/2 de cette requête.</td></tr>
+            <tr><td><code>H2_STREAM_TAG</code></td><td>chaîne</td><td>identifiant
+           de flux unique du processus HTTP/2 composé de l'identifiant de la
+           connexion et de l'identifiant du flux séparés par <code>-</code>.</td></tr>
+        </table>
+    </section>
+
+    </section>
+    
+    <directivesynopsis>
+        <name>H2Direct</name>
+        <description>Activation du protocole H2 Direct</description>
+        <syntax>H2Direct on|off</syntax>
+        <default>H2Direct on pour h2c, off pour le protocole h2</default>
+        <contextlist>
+            <context>server config</context>
+            <context>virtual host</context>
+        </contextlist>
+        
+        <usage>
+            <p>
+                Cette directive permet d'activer/désactiver
+               l'utilisation du mode HTTP/2 Direct. Elle doit être
+               située dans une section <directive module="core"
+               type="section">VirtualHost</directive> afin d'activer la
+               communication directe HTTP/2 pour le serveur virtuel
+               considéré. 
+            </p>
+            <p>
+                La notion de communication directe signifie que si les
+               premiers octets reçus par le serveur correspondent à un
+               en-tête HTTP/2, le protocole HTTP/2 est utilisé sans
+               négociation supplémentaire. Ce mode est défini pour
+               les transmissions en clair (h2c) dans la RFC 7540. Son
+               utilisation avec les connexions TLS n'est pas
+               officiellement supportée.
+            </p>
+            <p>
+                Lorsque le protocole h2 ou h2c n'est pas activé via la
+               directive <directive module="core">Protocols</directive>, la recherche d'un en-tête HTTP/2 n'est
+               jamais effectuée au sein d'une connexion. La directive
+               <directive>H2Direct</directive> ne produit alors aucun effet. Ceci est
+               important pour les connexions qui utilisent un protocole
+               pour lequel une lecture initiale peut entraîner un
+               blocage définitif comme NNTP.
+            </p>
+            <p>
+                Pour un client qui sait qu'un serveur supporte h2c, la
+               communication directe HTTP/2 dispense le client d'une
+               mise à jour HTTP/1.1, ce qui entraîne une amélioration
+               des performances et évite les restrictions sur les corps
+               de requête suite à une mise à jour.
+            </p>
+            <p>
+                Cette directive rend aussi h2c plus attractif pour les
+               communications de serveur à serveur lorsque la connexion
+               est sure ou peut être sécurisée d'une manière ou d'une
+               autre.
+            </p>
+            <example><title>Exemple</title>
+                <highlight language="config">
+                    H2Direct on
+                </highlight>
+            </example>
+        </usage>
+    </directivesynopsis>
+
+    <directivesynopsis>
+        <name>H2Push</name>
+        <description>Activation/désactivation du server push H2</description>
+        <syntax>H2Push on|off</syntax>
+        <default>H2Push on</default>
+        <contextlist>
+            <context>server config</context>
+            <context>virtual host</context>
+        </contextlist>
+       <compatibility>Disponible à partir de la version 2.4.18 du serveur HTTP
+       Apache.</compatibility>
+        
+        <usage>
+            <p>
+                Cette directive permet d'activer/désactiver
+               l'utilisation de la fonctionnalité server push du
+               protocole HTTP/2. 
+            </p>
+            <p>
+                Lorsqu'un client demande une ressource particulière, le
+               protocole HTTP/2 permet au serveur de lui fournir des
+               ressources supplémentaires. Ceci s'avère utile lorsque
+               ces ressources sont reliées entre elles, ce qui peut
+               laisser supposer que le client va probablement les
+               demander dans un délai plus ou moins long. Le mécanisme
+               de pushing permet alors au client d'économiser le temps
+               qu'il lui aurait fallu pour demander ces ressources
+               supplémentaires lui-même. Par contre, fournir au client
+               des ressources dont il n'a pas besoin ou qu'il possède
+               déjà constitue une perte de bande passante.
+            </p>
+            <p>
+                Les server pushes sont détectés en inspectant les
+               en-têtes <code>Link</code> des réponses (voir
+               https://tools.ietf.org/html/rfc5988 pour la
+               spécification). Lorsqu'un lien spécifié de cette manière
+               possède l'attribut <code>rel=preload</code>, il est
+               considéré comme devant faire l'objet d'un push.
+            </p>
+            <p> 
+                Les en-têtes link des réponses sont soit définis par
+               l'application, soit configurés via
+               <module>mod_headers</module> comme suit :
+            </p>
+            <example><title>Exemple de configuration d'en-tête link via mod_headers</title>
+                <highlight language="config">
+&lt;Location /index.html&gt;
+    Header add Link "&lt;/css/site.css&gt;;rel=preload"
+    Header add Link "&lt;/images/logo.jpg&gt;;rel=preload"
+&lt;/Location&gt;
+                </highlight>
+            </example>
+            <p>
+                Comme le montre l'exemple, il est possible d'ajouter
+               autant d'en-têtes link que l'on souhaite à une réponse, ce qui déclenchera
+               autant de pushes. Cette fonctionnalité doit donc être
+               utilisée avec prudence car le module ne vérifie pas si
+               une ressource n'a pas déjà été "pushée" vers un client.
+            </p>
+            <p> 
+                Les server pushes HTTP/2 sont activés par défaut. Cette
+               directive permet de désactiver cette fonctionnalité pour
+               le serveur virtuel ou non considéré.
+            </p>
+            <example><title>Exemple</title>
+                <highlight language="config">
+                    H2Push off
+                </highlight>
+            </example>
+            <p>
+                Enfin, il est important de savoir que les pushes ne se
+               produisent que si le client en manifeste le désir ; la
+               plupart des navigateurs le font, mais certains, comme
+               Safari 9, ne le font pas. En outre, les pushes ne se produisent que
+               pour les ressources de la même <em>autorité</em> que celle de la
+               réponse originale.
+            </p>
+        </usage>
+    </directivesynopsis>
+
+    <directivesynopsis>
+        <name>H2PushDiarySize</name>
+        <description>Taille du journal des Pushes H2</description>
+        <syntax>H2PushDiarySize n</syntax>
+        <default>H2PushDiarySize 256</default>
+        <contextlist>
+            <context>server config</context>
+            <context>virtual host</context>
+        </contextlist>
+        <compatibility>Disponible à partir de la version 2.4.19 du serveur HTTP
+       Apache.</compatibility>
+        
+        <usage>
+            <p>
+                Cette directive permet de définir le nombre maximum de pushes
+               qui seront enregistrés pour une connexion HTTP/2. Elle peut être
+               placée dans une section <directive module="core"
+               type="section">VirtualHost</directive> afin de définir le nombre
+               de pushes pour le serveur virtuel considéré. 
+            </p>
+            <p>
+                Le journal des pushes enregistre un condensé (sous la forme d'un
+               nombre de 64 bits) des ressources préchargées (leurs URLs) afin
+               d'éviter les duplications de pushes pour une même connexion.
+               Cependant, ces données ne sont pas conservées, et les clients
+               qui ouvrent une nouvelle connexion se verront à nouveau affecter les
+               mêmes pushes. A ce titre, une étude est en cours pour permettre
+               au client de supprimer le condensé des ressources qu'il possède
+               déjà, et par là-même de réinitialiser le journal des pushes à
+               chaque nouvelle connexion.
+            </p>
+            <p>
+                Si la taille maximale est atteinte, les nouvelles entrées
+               remplacent les plus anciennes. Une entrée du journal nécessitant
+               8 octets, un journal de 256 entrées consomme 2 Ko de mémoire.
+            </p>
+            <p>
+                Si cette directive est définie à 0, le journal des pushes est
+               désactivé.
+            </p>
+        </usage>
+    </directivesynopsis>
+
+    <directivesynopsis>
+        <name>H2PushPriority</name>
+        <description>Priorité des pushes H2</description>
+        <syntax>H2PushPriority mime-type [after|before|interleaved] [weight]</syntax>
+        <default>H2PushPriority * After 16</default>
+        <contextlist>
+            <context>server config</context>
+            <context>virtual host</context>
+        </contextlist>
+        <compatibility>Disponible à partir de la version 2.4.18 du serveur HTTP
+       Apache. Nécessite la bibliothèque nghttp2 version 1.5.0 ou supérieure.</compatibility>
+        
+        <usage>
+            <p>
+                Cette directive permet de définir une gestion de priorité des
+               pushes en fonction du type de contenu de la réponse. Elle est en
+               général définie au niveau du serveur principal, mais peut aussi
+               l'être au niveau d'un serveur virtuel. 
+            </p>
+            <p>
+                Les pushes HTTP/2 sont toujours liés à une requête client.
+               Chaque paire requête/réponse de cette sorte, ou <em>flux</em>,
+               possède une dépendance et un poids qui définissent la
+               <em>priorité</em> du flux. 
+            </p>
+            <p>
+                Lorsqu'un flux <em>dépend</em> d'un autre, disons X dépend de Y,
+               alors Y reçoit toute la bande passante avant que X n'en reçoive
+               ne serait-ce qu'une partie. Notez que cela ne signifie en rien
+               que Y bloque X ; en effet, si Y n'a aucune donnée à envoyer,
+               toute la bande passante qui lui est allouée peut être utilisée
+               par X.
+            </p>
+            <p>
+                Lorsque plusieurs flux dépendent d'un même autre flux, disons X1
+               et X2 dépendent tous deux de Y, le <em>poids</em> détermine la
+               bande passante allouée. Ainsi, si X1 et X2 possèdent le même
+               poids, ils recevront tous deux la moitié de la bande passante
+               disponible. Si le poids de X1 est égal au double de celui de X2,
+               X1 recevra une bande passante double de celle de X2.
+               
+            </p>
+            <p> 
+                En fin de compte, tout flux dépend du flux <em>racine</em> qui
+               reçoit toute la bande passante disponible mais n'envoie jamais
+               de données. Cette bande passante est ainsi répartie entre les flux
+               enfants selon leur poids. Ces derniers l'utilisent alors pour
+               envoyer leurs données ou pour la répartir entre leurs propres
+               flux enfants, et ainsi de suite. Si aucun des flux enfants n'a
+               de données à envoyer, la bande passante est attribuée à d'autres
+               flux selon les mêmes règles.
+            </p>
+            <p> 
+                Ce système de priorités a été conçu de façon a toujours pouvoir
+               utiliser la bande passante disponible tout en définissant des
+               priorités et en attribuant des poids aux différents flux. Ainsi,
+               tous les flux sont en général initialisés par le client qui
+               lui-même définit les priorités.
+            </p>
+            <p>
+                Seul le fait de savoir qu'un flux implique un PUSH permet au
+               serveur de décider quelle est la priorité <em>initiale</em> d'un
+               tel flux. Dans les exemples ci-dessous, X est le flux client. Il
+               dépend de Y et le serveur décide de "PUSHer" les flux P1 et P2
+               sur X.
+            </p>
+            <p>
+                La règle de priorité par défaut est :
+            </p>
+            <example><title>Règle de priorité par défaut</title>
+                <highlight language="config">
+                    H2PushPriority * After 16
+                </highlight>
+            </example>
+            <p>
+                Elle peut se traduire par "Envoyer un flux PUSH avec tout type
+               de contenu et dépendant du flux client avec le poids 16". P1 et
+               P2 seront alors envoyés après X, et comme leurs poids sont
+               identiques, il se verront allouer la même quantité de bande
+               passante.
+            </p>
+            <example><title>Règle de priorité entrelacée</title>
+                <highlight language="config">
+                    H2PushPriority text/css Interleaved 256
+                </highlight>
+            </example>
+            <p>
+                Ce qui peut se traduire par "Envoyer toute ressource CSS dans la
+               même dépendance et avec le même poids que le flux client". Si le
+               type de contenu de P1 est "text/css", il dépendra de Y (comme X)
+               et son poids effectif sera calculé selon la formule : <code>P1ew
+               = Xw * (P1w / 256)</code>. Si P1w est de 256, Le poids effectif
+               de P1 sera le même que celui de X. Si X et P1 ont des données à
+               envoyer, il se verront allouer la même quantité de bande
+               passante.
+            </p>
+            <p>
+                Avec un Pw de 512, un flux entrelacé et PUSHé aura un poids
+               double de celui de X. Avec un poids de 128, son poids ne sera
+               que la moitié de celui de X. Notez que les poids effectifs sont
+               toujours plafonnés à 256.
+               
+            </p>
+            <example><title>Règle de priorité Before</title>
+                <highlight language="config">
+                    H2PushPriority application/json Before
+                </highlight>
+            </example>
+            <p>
+                Dans cet exemple, tout flux PUSHé dont le contenu est de type
+               'application/json' sera envoyé <em>avant</em> X, ce qui rend P1
+               dépendant de Y et X dépendant de P1. Ainsi, X sera mis en
+               attente aussi longtemps que P1 aura des données à envoyer. Le
+               poids effectif est hérité du flux client, et l'attribution d'un
+               poids spécifique n'est pas autorisée.
+            </p>
+            <p>
+                Vous devez garder à l'esprit que les spécifications en matière
+               de priorités sont limitées par les ressources disponibles du
+               serveur. Si un serveur ne dispose d'aucun processus/thread de
+               travail pour les flux PUSHés, les données du flux considéré ne
+               seront envoyées que lorsque les autres flux auront terminé
+               l'envoi des leurs.
+            </p>
+            <p>
+                Enfin et surtout, il convient de tenir compte de certaines
+               particularités de la syntaxe de cette directive :
+             </p>
+            <ol>
+                <li>'*' est la seule expression permettant de remplacer tout
+               type de contenu. 'image/*' ne fonctionnera pas.</li>
+                <li>La dépendance par défaut est 'After'.</li>
+                <li>Il existe aussi des poids par défaut : pour 'After' le poids
+               est de 16, alors que pour 'interleaved' il est de 256. 
+                </li>
+            </ol>
+            <example><title>Exemples de règles</title>
+                <highlight language="config">
+H2PushPriority application/json 32         # une règle de priorité 'After'
+H2PushPriority image/jpeg before           # poid hérité
+H2PushPriority text/css   interleaved      # poids de 256 par défaut
+                </highlight>
+            </example>
+         </usage>
+     </directivesynopsis>
+
+    <directivesynopsis>
+        <name>H2Upgrade</name>
+        <description>Activation/Désactivation du protocole de mise à jour H2</description>
+        <syntax>H2Upgrade on|off</syntax>
+        <default>H2Upgrade on pour h2c, off pour h2</default>
+        <contextlist>
+            <context>server config</context>
+            <context>virtual host</context>
+        </contextlist>
+        
+        <usage>
+            <p>
+                Cette directive permet d'activer/désactiver l'utilisation de la
+               méthode de mise à jour pour passer de HTTP/1.1 à HTTP/2. Elle
+               doit être placée dans une section <directive module="core"
+               type="section">VirtualHost</directive> afin d'activer la mise à
+               jour vers HTTP/2 pour le serveur virtuel considéré. 
+            </p>
+            <p>
+                Cette méthode de changement de protocole est définie dans
+               HTTP/1.1 et utilise l'en-tête "Upgrade" (d'où son nom) pour
+               indiquer l'intention d'utiliser un autre protocole. Cet en-tête
+               peut être présent dans toute requête sur une connexion HTTP/1.1.
+            </p>
+            <p>
+                Elle activée par défaut pour les transmissions en clair
+               (h2c), et désactivée avec TLS (h2), comme préconisé par la RFC
+               7540. 
+            </p>
+            <p>
+                Sachez cependant que les mises à jour ne sont acceptées que pour
+               les requêtes qui ne possèdent pas de corps. Le requêtes de type
+               POST et PUT avec un contenu ne feront jamais l'objet d'une mise
+               à jour vers HTTP/2. Se référer à la documentation de la
+               directive <directive module="mod_http2">H2Direct</directive> pour
+               envisager une alternative à Upgrade.
+            </p>
+            <p>
+                Cette directive n'a d'effet que si h2 ou h2c est activé via la
+               directive <directive module="core">Protocols</directive>.
+            </p>
+            <example><title>Exemple</title>
+                <highlight language="config">
+                    H2Upgrade on
+                </highlight>
+            </example>
+        </usage>
+    </directivesynopsis>
+    
+    <directivesynopsis>
+        <name>H2MaxSessionStreams</name>
+        <description>Nombre maximal de flux actifs par session HTTP/2.</description>
+        <syntax>H2MaxSessionStreams <em>n</em></syntax>
+        <default>H2MaxSessionStreams 100</default>
+        <contextlist>
+            <context>server config</context>
+            <context>virtual host</context>
+        </contextlist>
+        <usage>
+            <p>
+                Cette directive permet de définir le nombre maximal de flux
+               actifs par session (connexion) HTTP/2 accepté par le serveur.
+               Selon la RFC 7540, un flux est considéré comme actif s'il n'est
+               ni <code>en attente</code> ni <code>fermé</code>.
+            </p>
+            <example><title>Exemple</title>
+                <highlight language="config">
+                    H2MaxSessionStreams 20
+                </highlight>
+            </example>
+        </usage>
+    </directivesynopsis>
+    
+    <directivesynopsis>
+        <name>H2StreamMaxMemSize</name>
+        <description>Quantité maximale de données en sortie mises en tampon par
+       flux.</description>
+        <syntax>H2StreamMaxMemSize <em>bytes</em></syntax>
+        <default>H2StreamMaxMemSize 65536</default>
+        <contextlist>
+            <context>server config</context>
+            <context>virtual host</context>
+        </contextlist>
+        <usage>
+            <p>
+                Cette directive permet de définir la quantité maximale de
+               données en sortie mises en tampon mémoire pour un flux actif. Ce
+               tampon mémoire n'est pas alloué pour chaque flux en tant que
+               tel. Les quantités de mémoire sont définies en fonction de
+               cette limite lorsqu'elles sont sur le point d'être allouées. Le
+               flux s'arrête lorsque la limite a été atteinte, et ne reprendra
+               que lorsque les données du tampon auront été transmises au
+               client.
+            </p>
+            <example><title>Exemple</title>
+                <highlight language="config">
+                    H2StreamMaxMemSize 128000
+                </highlight>
+            </example>
+        </usage>
+    </directivesynopsis>
+
+    <directivesynopsis>
+        <name>H2WindowSize</name>
+        <description>Taille maximale des paquets de données pour les transmissions client
+       vers serveur.</description>
+        <syntax>H2WindowSize <em>bytes</em></syntax>
+        <default>H2WindowSize 65535</default>
+        <contextlist>
+            <context>server config</context>
+            <context>virtual host</context>
+        </contextlist>
+        <usage>
+            <p>
+                Cette directive permet de définir la taille maximale des paquets
+               de données envoyés par le client au serveur, et
+               limite la quantité de données que le serveur doit mettre en
+               tampon. Le client arrêtera d'envoyer des données sur un flux
+               lorsque cette limite sera atteinte jusqu'à ce que le serveur
+               indique qu'il dispose d'un espace suffisant (car il aura traité
+               une partie des données).
+            </p><p>
+                Cette limite n'affecte que les corps de requêtes, non les
+               métadonnées comme les en-têtes. Par contre, elle n'affecte pas
+               les corps de réponses car la taille maximale de ces derniers est
+               gérée au niveau des clients.
+            </p>
+            <example><title>Exemple</title>
+                <highlight language="config">
+                    H2WindowSize 128000
+                </highlight>
+            </example>
+        </usage>
+    </directivesynopsis>
+
+    <directivesynopsis>
+        <name>H2MinWorkers</name>
+        <description>Nombre minimal de threads à utiliser pour chaque processus
+       enfant.</description>
+        <syntax>H2MinWorkers <em>n</em></syntax>
+        <contextlist>
+            <context>server config</context>
+        </contextlist>
+        <usage>
+            <p>
+                Cette directive permet de définir le nombre minimal de threads à
+               lancer pour le traitement HTTP/2 de chaque processus enfant. Si
+               cette directive n'est pas définie, <module>mod_http2</module>
+               choisira une valeur appropriée en fonction du module <code>mpm</code>
+               utilisé.
+            </p>
+            <example><title>Exemple</title>
+                <highlight language="config">
+                    H2MinWorkers 10
+                </highlight>
+            </example>
+        </usage>
+    </directivesynopsis>
+
+    <directivesynopsis>
+        <name>H2MaxWorkers</name>
+        <description>Nombre maximal de threads à utiliser pour chaque processus
+       enfant.</description>
+        <syntax>H2MaxWorkers <em>n</em></syntax>
+        <contextlist>
+            <context>server config</context>
+        </contextlist>
+        <usage>
+            <p>
+                Cette directive permet de définir le nombre maximal de threads à
+               lancer pour le traitement HTTP/2 de chaque processus enfant. Si
+               cette directive n'est pas définie, <module>mod_http2</module>
+               choisira une valeur appropriée en fonction du module <code>mpm</code>
+               utilisé.
+               
+               This directive sets the maximum number of worker threads to spawn
+                per child process for HTTP/2 processing. If this directive is not used,
+                <code>mod_http2</code> will chose a value suitable for the <code>mpm</code>
+                module loaded.
+            </p>
+            <example><title>Exemple</title>
+                <highlight language="config">
+                    H2MaxWorkers 20
+                </highlight>
+            </example>
+        </usage>
+    </directivesynopsis>
+
+    <directivesynopsis>
+        <name>H2MaxWorkerIdleSeconds</name>
+        <description>Nombre maximal de secondes pendant lequel une unité de
+       traitement h2 pourra rester inactive sans être arrêtée.</description>
+        <syntax>H2MaxWorkerIdleSeconds <em>n</em></syntax>
+        <default>H2MaxWorkerIdleSeconds 600</default>
+        <contextlist>
+            <context>server config</context>
+        </contextlist>
+        <usage>
+            <p>
+                Cette directive permet de définir le nombre maximal de secondes
+               pendant lequel une unité de traitement h2 pourra rester inactive
+               avant de s'arrêter elle-même. Cet arrêt ne peut cependant se
+               produire que si le nombre d'unités de traitement h2 dépasse
+               <directive module="mod_http2">H2MinWorkers</directive>.
+            </p>
+            <example><title>Exemple</title>
+                <highlight language="config">
+                    H2MaxWorkerIdleSeconds 20
+                </highlight>
+            </example>
+        </usage>
+    </directivesynopsis>
+
+    <directivesynopsis>
+        <name>H2SerializeHeaders</name>
+        <description>Active/désactive la sérialisation du traitement des
+       requêtes/réponses</description>
+        <syntax>H2SerializeHeaders on|off</syntax>
+        <default>H2SerializeHeaders off</default>
+        <contextlist>
+            <context>server config</context>
+            <context>virtual host</context>
+        </contextlist>
+        <usage>
+            <p>
+                Cette directive permet de définir si les requêtes HTTP/2 doivent
+               être sérialisées au format HTTP/1.1 pour être traitées par le
+               noyau de <code>httpd</code>, ou si les données binaires reçues
+               doivent être passées directement aux <code>request_rec</code>s.
+            </p>
+            <p>
+                La sérialisation dégrade les performances, mais garantit une
+               meilleure compatibilité ascendante lorsque des filtres ou
+               programmes accroche personnalisés en ont besoin.
+            </p>
+            <example><title>Exemple</title>
+                <highlight language="config">
+                    H2SerializeHeaders on
+                </highlight>
+            </example>
+        </usage>
+    </directivesynopsis>
+
+    <directivesynopsis>
+        <name>H2ModernTLSOnly</name>
+        <description>Impose les connexions HTTP/2 en mode "TLS moderne"
+       seulement</description>
+        <syntax>H2ModernTLSOnly on|off</syntax>
+        <default>H2ModernTLSOnly on</default>
+        <contextlist>
+            <context>server config</context>
+            <context>virtual host</context>
+        </contextlist>
+       <compatibility>Disponible à partir de la version 2.4.18 du serveur HTTP
+       Apache.</compatibility>
+        
+        <usage>
+            <p>
+                Cette directive permet de définir si les vérifications de
+               sécurité sur les connexions HTTP/2 doivent être exclusivement en
+               mode TLS (https:). Elle peut être placée au niveau du serveur
+               principal ou dans une section <directive module="core"
+               type="section">VirtualHost</directive>. 
+            </p>
+            <p>
+                Les vérifications de sécurité nécessitent TLSv1.2 au minimum et
+               l'absence de tout algorithme de chiffrement listé dans la RFC
+               7540, Appendix A. Ces vérifications seront étendues lorsque de
+               nouveaux prérequis en matière de sécurité seront mis en place.
+            </p>
+            <p>
+                Le nom provient des définitions Mozilla <a
+               href="https://wiki.mozilla.org/Security/Server_Side_TLS">Security/Server
+               Side TLS</a> où il est question de "modern compatibility".
+               Mozilla Firefox et d'autres navigateurs imposent la "modern
+               compatibility" pour les connexions HTTP/2. Comme toute chose en
+               matière de sécurité opérationnelle, c'est une cible mouvante
+               susceptible d'évoluer dans le futur.
+            </p>
+            <p>
+                Un des buts de ces vérifications dans <module>mod_http2</module> tend à imposer
+               ce niveau de sécurité pour toutes les connexions, et non
+               seulement celles en provenance des navigateurs web. Un autre but
+               est l'interdiction d'utiliser HTTP/2 en tant que protocole dans
+               les négociations si les prérequis ne sont pas respectés.
+            </p>
+            <p>
+                En fin de compte, la sécurité de la connexion TLS est déterminée
+               par les directives de configuration du serveur pour <module>mod_ssl</module>.
+            </p>
+            <example><title>Exemple</title>
+                <highlight language="config">
+                    H2ModernTLSOnly off
+                </highlight>
+            </example>
+        </usage>
+    </directivesynopsis>
+
+    <directivesynopsis>
+        <name>H2TLSWarmUpSize</name>
+        <description></description>
+        <syntax>H2TLSWarmUpSize <em>amount</em></syntax>
+        <default>H2TLSWarmUpSize 1048576</default>
+        <contextlist>
+            <context>server config</context>
+            <context>virtual host</context>
+        </contextlist>
+        <compatibility>Disponible à partir de la version 2.4.18 du serveur HTTP
+       Apache.</compatibility>
+       
+        <usage>
+            <p>
+                Cette directive permet de définir le nombre d'octets à envoyer
+               dans les petits enregistrements TLS (~1300 octets) avant
+               d'atteindre leur taille maximale de 16 ko pour les connexions
+               https: HTTP/2. Elle peut être définie au niveau du serveur
+               principal ou pour des <directive module="core"
+               type="section">Serveurs virtuels</directive> spécifiques. 
+            </p>
+            <p>
+                Les mesures effectuées par les <a
+               href="https://www.igvita.com">laboratoires de performances de
+               Google</a> montrent que les meilleurs performances sont atteintes
+               pour les connexions TLS si la taille initiale des
+               enregistrements reste en deça du niveau du MTU afin de permettre
+               à la totatlité d'un enregistrement d'entrer dans un paquet IP.
+            </p>
+            <p>
+                Comme TCP ajuste son contrôle de flux et sa taille de fenêtre,
+               des enregistrements TLS trop longs peuvent rester en file
+               d'attente ou même être perdus et devoir alors être réémis. Ceci
+               est bien entendu vrai pour tous les paquets ; cependant, TLS a
+               besoin de la totalité de l'enregistrement pour pouvoir le
+               déchiffrer. Tout octet manquant rendra impossible l'utilisation
+               de ceux qui ont été reçus.
+            </p>
+            <p>
+                Lorqu'un nombre suffisant d'octets a été transmis avec succès,
+               la connexion TCP est stable, et la taille maximale (16 ko) des
+               enregistrements TLS peut être utilisée pour des performances
+               optimales.
+            </p>
+            <p>
+                Dans les architectures où les serveurs sont atteints par des
+               machines locales ou pour les connexions de confiance seulement,
+               la valeur de cette directive peut être définie à 0, ce qui a
+               pour effet de désactiver la "phase de chauffage".
+            </p>
+            <p>
+                Dans l'exemple suivant, la phase de chauffage est effectivement
+               désactivée en définissant la directive à 0.
+            </p>
+            <example><title>Exemple</title>
+                <highlight language="config">
+                    H2TLSWarmUpSize 0
+                </highlight>
+            </example>
+        </usage>
+    </directivesynopsis>
+    
+    <directivesynopsis>
+        <name>H2TLSCoolDownSecs</name>
+        <description></description>
+        <syntax>H2TLSCoolDownSecs <em>seconds</em></syntax>
+        <default>H2TLSCoolDownSecs 1</default>
+        <contextlist>
+            <context>server config</context>
+            <context>virtual host</context>
+        </contextlist>
+       <compatibility>Disponible à partir de la version 2.4.18 du serveur HTTP
+       Apache.</compatibility>
+        
+        <usage>
+            <p>
+                Cette directive permet de spécifier le nombre de secondes avant
+               lequel une connexion TLS inactive va diminuer
+               la taille des paquets de données à une valeur inférieure (~1300
+               octets). Elle peut être définie au niveau du serveur principal
+               ou pour un <directive module="core" type="section">serveur
+               virtuel</directive> spécifique. 
+            </p>
+            <p>
+                Voir la directive <directive module="mod_http2">H2TLSWarmUpSize</directive> pour une description
+               du "préchauffage" de TLS. La directive <directive>H2TLSCoolDownSecs</directive> met en
+               lumière le fait que les connexions peuvent se détériorer au bout
+               d'un certain temps (et au fur et à mesure des corrections du
+               flux TCP), et cela même si elle sont inactives. Pour ne pas
+               détériorer les performances d'une manière générale, il est par
+               conséquent préférable de revenir à la phase de préchauffage
+               lorsqu'aucune donnée n'a été transmise pendant un certain nombre
+               de secondes. 
+            </p>
+            <p>
+                Dans les situations où les connexions peuvent être considérées
+               comme fiables, ce délai peut être désactivé en définissant cette
+               directive à 0. 
+            </p>
+            <p>
+                Dans l'exemple suivant, la directive est définie à 0, ce qui
+               désactive tout retour à une phase de préchauffage des connexions
+               TLS. Les connexions TLS déjà préchauffées conservent donc toujours
+               leur taille de paquet de données maximale.
+            </p>
+            <example><title>Exemple</title>
+                <highlight language="config">
+                    H2TLSCoolDownSecs 0
+                </highlight>
+            </example>
+        </usage>
+    </directivesynopsis>
+
+    <directivesynopsis>
+        <name>H2Timeout</name>
+        <description>Délai (en secondes) pour les connexions HTTP/2</description>
+        <syntax>H2Timeout secondes</syntax>
+        <default>H2Timeout 5</default>
+        <contextlist>
+            <context>server config</context>
+            <context>virtual host</context>
+        </contextlist>
+        <compatibility>Disponible à partir de la version 2.4.19 du serveur HTTP
+       Apache.</compatibility>
+
+        <usage>
+            <p>
+                Cette directive permet de définir un délai pour les opérations
+               de lecture/écriture lorsqu'une connexion HTTP/2 a été
+               négociée. Elle peut être définie pour l'ensemble du serveur ou
+               pour un <directive module="core" type="section">serveur
+               virtuel</directive> spécifique. 
+            </p>
+            <p>
+                Elle est similaire à la directive <directive module="core"
+               type="section">Timeout</directive>, mais elle ne s'applique
+               qu'aux connexions HTTP/2.
+            </p>
+            <p>
+                Une valeur de 0 signifie qu'aucun délai n'est imposé.
+            </p>
+        </usage>
+    </directivesynopsis>
+
+    <directivesynopsis>
+        <name>H2KeepAliveTimeout</name>
+        <description>Durée de vie en secondes des connexions HTTP/2 inactives</description>
+        <syntax>H2KeepAliveTimeout secondes</syntax>
+        <contextlist>
+            <context>server config</context>
+            <context>virtual host</context>
+        </contextlist>
+        <compatibility>Disponible à partir de la version 2.4.19 du serveur HTTP
+       Apache.</compatibility>
+
+        <usage>
+            <p>
+                Cette directive permet de définir la durée de vie des connexions
+               HTTP/2 inactives. Sa portée peut s'étendre à l'ensemble du
+               serveur, ou seulement à un <directive module="core"
+               type="section">VirtualHost</directive> spécifique. 
+            </p>
+            <p>
+                Cette directive est équivalente à la directive <directive
+               module="core" type="section">KeepAliveTimeout</directive>, mais
+               elle ne s'applique qu'aux connexions HTTP/2. Une connexion
+               HTTP/2 est considérée comme inactive lorsqu'aucun flux n'est
+               ouvert, autrement dit lorsqu'aucune requête n'est sur le point
+               d'être traitée.
+            </p>
+            <p>
+                Pour les MPMs non-asynch (prefork, worker), la durée de vie
+               sera par défaut égale à H2Timeout. Pour les MPMs async, il
+               semble qu'aucune action ne soit à entreprendre pour la durée de
+               vie des connexions HTTP/1.
+            </p>
+        </usage>
+    </directivesynopsis>
+
+    <directivesynopsis>
+        <name>H2StreamTimeout</name>
+        <description>Durée de vie en secondes des connexions HTTP/2 inactives</description>
+        <syntax>H2StreamTimeout secondes</syntax>
+        <default>H2StreamTimeout 0</default>
+        <contextlist>
+            <context>server config</context>
+            <context>virtual host</context>
+        </contextlist>
+        <compatibility>Disponible à partir de la version 2.4.19 du serveur HTTP
+       Apache.</compatibility>
+
+        <usage>
+            <p>
+               Cette directive permet de définir la durée de vie des flux
+               HTTP/2 pour les requêtes individuelles. Sa portée peut s'étendre
+               à l'ensemble du serveur, ou seulement à un <directive
+               module="core" type="section">VirtualHost</directive> spécifique 
+            </p>
+            <p>
+                De par la nature de HTTP/2 qui transmet plusieurs requêtes sur
+               une seule connexion et gère une planification des priorités, les
+               flux individuels ne sont pas susceptibles de recevoir des
+               données en entrée beaucoup plus longtemps qu'une connexion
+               HTTP/1.1. 
+            </p>
+            <p>
+                Si cette directive est définie à 0, la durée de vie des flux
+               HTTP/2 n'a aucune limite, et il peuvent attendre indéfiniment
+               l'arrivée de données à lire ou écrire. Cela expose cependant le
+               serveur à atteindre sa limite en nombre de threads. 
+            </p>
+            <p>
+                Un site peut nécessiter une augmentation de cette valeur en
+               fonction de votre gestion des flux PUSHés, des priorités et de
+               la réactivité générale. Par exemple, si vous PUSHez une
+               ressource de taille importante <em>avant</em> celle qui a fait
+               l'objet d'une requête, le flux initiale n'effectuera aucune
+               écriture jusqu'à ce que la ressource PUSHée ne soit envoyée dans
+               son intégralité.
+            </p>
+        </usage>
+    </directivesynopsis>
+    
+    <directivesynopsis>
+        <name>H2CopyFiles</name>
+        <description>Contrôle la gestion des fichiers dans les réponses</description>
+        <syntax>H2CopyFiles on|off</syntax>
+        <default>H2CopyFiles off</default>
+        <contextlist>
+            <context>server config</context>
+            <context>virtual host</context>
+            <context>directory</context>
+            <context>.htaccess</context>
+        </contextlist>
+        <compatibility>Disponible à partir de la version 2.4.24 du serveur HTTP
+       Apache.</compatibility>
+        
+        <usage>
+            <p>
+                Cette directive permet de définir la manière de gérer les
+               contenus de fichiers dans les réponses. Lorsqu'elle est à <code>off</code>
+               (sa valeur par défaut), les descripteurs de fichiers sont
+               transmis par le processus de traitement de la requête vers la
+               connexion principale en utilisant le système habituel de mise en
+               réserve d'Apache pour gérer le durée de vie du fichier.
+            </p>
+            <p>
+                Lorsqu'elle est à <code>on</code>, le contenu du fichier est
+               recopier pendant le traitement de la requête et ces données
+               mises en tampon sont transmises vers la connexion principale, ce
+               qui s'avère avantageux lorsqu'un module tiers injecte dans la
+               réponse des fichiers possédant des durées de vie différentes. 
+            </p>
+            <p>
+                Un exemple de ces modules tiers : <code>mod_wsgi</code> qui peut
+               injecter des descripteurs de fichiers dans la réponse. Ces
+               fichiers sont fermés lorsque Python estime que le traitement est
+               terminé, alors que <module>mod_http2</module> est probablement
+               encore loin d'en avoir fini avec eux.
+            </p>
+        </usage>
+    </directivesynopsis>
+
+    <directivesynopsis>
+        <name>H2PushResource</name>
+        <description>Déclare des ressources à proposer ("pusher") au client</description>
+        <syntax>H2PushResource [add] path [critical]</syntax>
+        <contextlist>
+            <context>server config</context>
+            <context>virtual host</context>
+            <context>directory</context>
+            <context>.htaccess</context>
+        </contextlist>
+        <compatibility>Disponible à partir de la version 2.4.24 du serveur HTTP
+       Apache.</compatibility>
+        
+        <usage>
+            <p>
+                Lorsqu'il sont activés pour un répertoire, les PUSHes HTTP/2 seront
+               tentés pour tous les chemins ajoutés via cette directive. Cette
+               dernière peut être utilisée plusieurs fois pour le même
+               répertoire.
+            </p>
+            <p>
+                Cette directive propose des ressources beaucoup plus tôt que les
+               en-têtes <code>Link</code> de <module>mod_headers</module>.
+               <module>mod_http2</module> présente ces ressources au client via
+               une réponse intermédiaire <code>103 Early Hints</code>. Ceci
+               implique que les clients qui ne supportent pas PUSH recevront
+               quand-même rapidement des propositions de préchargement.
+            </p>
+            <p>
+                A la différence de la définition d'en-têtes de réponse
+               <code>Link</code> via <module>mod_headers</module>, cette
+               directive n'aura d'effet que pour les connexions HTTP/2. 
+            </p>
+            <p>
+                En ajoutant l'option <code>critical</code> à une telle
+               ressource, le serveur la traitera prioritairement, et une fois
+               les données disponibles, ces dernières seront envoyées avant les
+               données de la requête principale.
+            </p>
+        </usage>
+    </directivesynopsis>
+
+    <directivesynopsis>
+        <name>H2EarlyHints</name>
+        <description>Contrôle l'envoi de codes d'état 103</description>
+        <syntax>H2EarlyHints on|off</syntax>
+        <default>H2EarlyHints off</default>
+        <contextlist>
+            <context>server config</context>
+            <context>virtual host</context>
+        </contextlist>
+        <compatibility>Disponible à partir de la version 2.4.24 du serveur HTTP
+       Apache.</compatibility>
+        
+        <usage>
+            <p>
+                Cette directive permet de définir si les réponses intermédiaires
+               contenant un code d'état HTTP 103 doivent être envoyées au
+               client ou non. Par défaut ce n'est actuellement pas le cas car
+               certains clients ont encore des problèmes avec les réponses
+               intermédiaires inattendues.
+            </p>
+            <p>
+                Lorsque cette directive est définie à <code>on</code>, les
+               ressources PUSHées définie par la directive
+               <code>H2PushResource</code> déclenchent une réponse
+               intermédiaire 103 avant la réponse finale. Cette réponse 103
+               comporte des en-têtes <code>Link</code> qui provoquent le
+               <code>préchargement</code> des ressources considérées. 
+            </p>
+        </usage>
+    </directivesynopsis>
+    
+</modulesynopsis>
diff --git a/docs/manual/mod/mod_proxy_hcheck.xml.fr b/docs/manual/mod/mod_proxy_hcheck.xml.fr
new file mode 100644 (file)
index 0000000..c1f2134
--- /dev/null
@@ -0,0 +1,272 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
+<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
+<!-- English Revision: 1832295 -->
+<!-- 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.
+-->
+
+<modulesynopsis metafile="mod_proxy_hcheck.xml.meta">
+
+<name>mod_proxy_hcheck</name>
+<description>Check up dynamique des membres du groupe de répartition de charge
+(équipiers) pour <module>mod_proxy</module></description>
+<status>Extension</status>
+<sourcefile>mod_proxy_hcheck.c</sourcefile>
+<identifier>proxy_hcheck_module</identifier>
+<compatibility>Disponible à partir de la version 2.4.21 du serveur HTTP Apache</compatibility>
+
+<summary>
+    <p>Ce module permet d'effectuer un check up dynamique des membres du groupe
+    de répartition de charge (équipiers). Ce check up peut être activé pour un
+    ou plusieurs équipiers et il est indépendant des requêtes de mandataire
+    inverse proprement dites.</p>
+
+    <p>Pour fonctionner, ce module <em>nécessite</em> le chargement préalable de
+    <module>mod_watchdog</module>.</p>
+
+<note><title>Paramètres</title>
+  <p>Le mécanisme de check up est activé via l'utilisation de paramètres
+  supplémentaires de la directive <directive
+  module="mod_proxy">BalancerMember</directive> configurés de manière standard
+  via la directive <directive module="mod_proxy">ProxyPass</directive> :</p>
+
+  <p>Ce module définit un nouveau drapeau d'état <a
+  href="mod_proxy.html#status_table">status</a> pour BalancerMember :
+  "<code>C</code>". Lorsque l'équipier est mis hors service suite à un
+  disfonctionnement déterminé par le module de check up, ce drapeau est activé
+  et peut être lu (et modifié) via le <code>balancer-manager</code>.</p>
+
+    <table>
+    <tr><th>Paramètre</th>
+        <th>Défaut</th>
+        <th>Description</th></tr>
+    <tr><td>hcmethod</td>
+        <td>None</td>
+        <td>Aucun check up dynamique n'est effectué. Les choix possibles sont :
+               <table>
+                       <tr><th>Method</th><th>Description</th><th>Note</th></tr>
+                       <tr><td>None</td><td>Aucun check up dynamique effectué</td><td></td></tr>
+                       <tr><td>TCP</td><td>Vérifie qu'un socket vers le serveur
+                       d'arrière-plan peut être créé ; par exemple "es-tu en
+                       état de fonctionner"</td><td></td></tr>
+                       <tr><td>OPTIONS</td><td>Envoie une requête <code>HTTP
+                       OPTIONS</code> au serveur d'arrière-plan</td><td>*</td></tr>
+                       <tr><td>HEAD</td><td>Envoie une requête <code>HTTP
+                       HEAD</code> au serveur d'arrière-plan</td><td>*</td></tr>
+                       <tr><td>GET</td><td>Envoie une requête <code>HTTP
+                       GET</code> au serveur d'arrière-plan</td><td>*</td></tr>
+<!--
+                       <tr><td>CPING</td><td><strong>AJP only</strong> Do <code>CPING/CPONG</code> check</td><td></td></tr>
+                       <tr><td>PROVIDER</td><td>Name of <code>provider</code> to be used to check health</td><td></td></tr>
+-->
+                               <tr><td colspan="3"></td></tr>
+                               <tr><td colspan="3">*: si hcexpr n'est pas
+                               utilisé, un retour HTTP 2xx ou 3xx sera
+                               interprété comme un passage avec succès du check
+                               up.</td></tr>
+               </table>
+        </td></tr>
+    <tr><td>hcpasses</td>
+        <td>1</td>
+        <td>Nombre de check up à passer avec succès avant de remettre en service
+       l'équipier</td></tr>
+    <tr><td>hcfails</td>
+        <td>1</td>
+        <td>Nombre de check up échoués avant mettre hors service l'équipier</td></tr>
+    <tr><td>hcinterval</td>
+        <td>30</td>
+        <td>Intervalle entre deux check up en secondes (par défaut effectué
+       toutes les 30 secondes)</td></tr>
+    <tr><td>hcuri</td>
+        <td>&nbsp;</td>
+        <td>URI supplémentaire à ajouter à l'URL de l'équipier pour le check up.</td></tr>
+    <tr><td>hctemplate</td>
+        <td>&nbsp;</td>
+        <td>Nom du modèle créé via <directive module="mod_proxy_hcheck">ProxyHCTemplate</directive> à
+       utiliser pour définir les paramètres de check up de cet équipier</td></tr>
+    <tr><td>hcexpr</td>
+        <td>&nbsp;</td>
+        <td>Nom de l'expression créée via <directive module="mod_proxy_hcheck">ProxyHCExpr</directive>
+       utilisée pour analyser les en-têtes de la réponse du check up.<br/>
+            <em>Si ce paramètre est absent, un état HTTP de 2xx à 3xx est
+           interprété comme un check up réussi.</em></td></tr>
+    </table>
+</note>
+
+</summary>
+<seealso><module>mod_proxy</module></seealso>
+
+<section id="examples">
+
+       <title>Exemples d'utilisation</title>
+    <p>L'exemple suivant montre comment configurer le check up pour différents
+    serveurs d'arrière-plan :</p>
+
+       <!-- This section should probably be extended with more, useful examples -->
+       <highlight language="config">
+ProxyHCExpr ok234 {%{REQUEST_STATUS} =~ /^[234]/}
+ProxyHCExpr gdown {%{REQUEST_STATUS} =~ /^[5]/}
+ProxyHCExpr in_maint {hc('body') !~ /Under maintenance/}
+
+&lt;Proxy balancer://foo&gt;
+  BalancerMember http://www.example.com/  hcmethod=GET hcexpr=in_maint hcuri=/status.php
+  BalancerMember http://www2.example.com/ hcmethod=HEAD hcexpr=ok234 hcinterval=10
+  BalancerMember http://www3.example.com/ hcmethod=TCP hcinterval=5 hcpasses=2 hcfails=3
+  BalancerMember http://www4.example.com/
+&lt;/Proxy&gt;
+
+ProxyPass "/" "balancer://foo"
+ProxyPassReverse "/" "balancer://foo"
+</highlight>
+
+<p>Dans ce scénario, on teste l'équipier <code>http://www.example.com/</code> en lui
+envoyant une requête <code>GET /status.php</code> et en regardant si la réponse
+contient la chaîne <em>Under maintenance</em>. Si c'est le cas, le check up est
+considéré comme ayant échoué et l'équipier est mis hors service. Ce check up
+dynamique est effectué toutes les 30 secondes, ce qui correspond à la valeur par
+défaut.</p>
+
+<p>On teste l'équipier <code>http://www2.example.com/</code> en lui envoyant
+simplement une requête <code>HEAD</code> toutes les 10 secondes et en vérifiant
+que la réponse HTTP est bien un code d'état de 2xx, 3xx ou 4xx. On teste
+l'équipier <code>http://www3.example.com/</code>  en vérifiant simplement toutes
+les 5 secondes que le socket vers ce serveur est bien opérationnel. Si ce
+serveur est marqué "hors service", il lui faudra 2 check up réussis pour être
+réactivé et participer à nouveau à la répartition de charge. Si à ce moment-là
+il échoue à 3 check up successifs, il sera à nouveau mis hors service. Enfin,
+l'équipier <code>http://www4.example.com/</code> ne fait l'objet d'aucun check
+up.</p>
+
+</section>
+
+<directivesynopsis>
+<name>ProxyHCExpr</name>
+<description>Crée et nomme une expression conditionnelle à utiliser pour
+déterminer la santé d'un serveur d'arrière-plan en fonction de sa valeur</description>
+<syntax>ProxyHCExpr <em>name</em> {<em>ap_expr expression</em>}</syntax>
+<contextlist><context>server config</context><context>virtual host</context>
+</contextlist>
+
+<usage>
+    <p>La directive <directive>ProxyHCExpr</directive> permet de créer et nommer
+    une expression conditionnelle dont la valeur calculée en fonction des
+    en-têtes de la réponse du serveur d'arrière-plan permettra d'évaluer la
+    santé de ce dernier. Cette expression nommée peut alors être assignée aux
+    serveurs d'arrière-plan via le paramètre <code>hcexpr</code>.</p>
+
+    <example><title>ProxyHCExpr: interprète les réponses 2xx/3xx/4xx comme des
+    check up réussis</title>
+    <highlight language="config">
+ProxyHCExpr ok234 {%{REQUEST_STATUS} =~ /^[234]/}
+ProxyPass "/apps"     "balancer://foo"
+
+&lt;Proxy balancer://foo&gt;
+  BalancerMember http://www2.example.com/  hcmethod=HEAD hcexpr=ok234 hcinterval=10
+&lt;/Proxy&gt;
+    </highlight>
+    </example>
+
+    <note>
+    L'<a href="../expr.html">expression</a> peut utiliser des accolades ("{}")
+    comme délimiteurs en plus des guillemets normaux.
+    </note>
+
+    <p>Si l'on utilise une méthode de check up (par exemple <code>GET</code>)
+    qui génère un corps de réponse, ce corps peut lui-même être ausculté via
+    <code>ap_expr</code> en utilisant la fonction associée aux expressions
+    <code>hc()</code> spécifique à ce module.</p>
+
+    <p>Dans l'exemple suivant, on envoie une requête <code>GET</code> au serveur
+    d'arrière-plan, et si le corps de la réponse contient la chaîne <em>Under
+    maintenance</em>, ce serveur d'arrière-plan est mis hors service.</p>
+
+    <example><title>ProxyHCExpr: auscultation du corps de la réponse</title>
+    <highlight language="config">
+ProxyHCExpr in_maint {hc('body') !~ /Under maintenance/}
+ProxyPass "/apps"     "balancer://foo"
+
+&lt;Proxy balancer://foo&gt;
+  BalancerMember http://www.example.com/ hcexpr=in_maint hcmethod=get hcuri=/status.php
+&lt;/Proxy&gt;
+    </highlight>
+    </example>
+
+    <p><em>NOTE:</em> Comme le corps de la réponse peut être assez grand, il est
+    recommandé de privilégier un check up basé sur les codes d'état.</p>
+</usage>
+</directivesynopsis>
+
+
+<directivesynopsis>
+<name>ProxyHCTemplate</name>
+<description>Crée et nomme un modèle permettant de définir différents
+paramètres de check up</description>
+<syntax>ProxyHCTemplate <em>name</em> <em>parameter</em>=<em>setting</em> [...]</syntax>
+<contextlist><context>server config</context><context>virtual host</context>
+</contextlist>
+
+<usage>
+    <p>La directive <directive>ProxyHCTemplate</directive> permet de créer et
+    nommer un modèle de paramètres de check up qui peut alors être assigné aux
+    équipiers via le paramètre <code>hctemplate</code>.</p>
+
+    <example><title>ProxyHCTemplate</title>
+    <highlight language="config">
+ProxyHCTemplate tcp5 hcmethod=tcp hcinterval=5
+ProxyPass "/apps"     "balancer://foo"
+
+&lt;Proxy balancer://foo&gt;
+  BalancerMember http://www2.example.com/ hctemplate=tcp5
+&lt;/Proxy&gt;
+    </highlight>
+    </example>
+
+</usage>
+</directivesynopsis>
+
+<directivesynopsis>
+<name>ProxyHCTPsize</name>
+<description>Définit la taille totale, pour l'ensemble du
+serveur, du jeu de threads utilisé pour le check up des
+équipiers</description>
+<syntax>ProxyHCTPsize <em>size</em></syntax>
+<contextlist><context>server config</context>
+</contextlist>
+
+<usage>
+    <p>Si Apache httpd et APR ont été compilés avec le support des threads, le
+    module de check up peut confier ce travail à un jeu de threads associé au
+    processus Watchdog, ce qui permet l'exécution des check up en parallèle. La
+    directive <directive>ProxyHCTPsize</directive> permet de déterminer la
+    taille de ce jeu de threads. Une valeur de <code>0</code> signifie qu'aucun
+    jeu de threads ne sera utilisé, et le check up des différents équipiers sera
+    alors effectué séquentiellement. La taille par défaut du jeu de threads est
+    de 16.</p>
+
+    <example><title>ProxyHCTPsize</title>
+    <highlight language="config">
+ProxyHCTPsize 32
+    </highlight>
+    </example>
+
+</usage>
+</directivesynopsis>
+
+</modulesynopsis>
diff --git a/docs/manual/mod/mod_proxy_http2.xml.fr b/docs/manual/mod/mod_proxy_http2.xml.fr
new file mode 100644 (file)
index 0000000..fe349fd
--- /dev/null
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
+<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
+<!-- English Revision : 1798491 -->
+<!-- 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.
+-->
+
+<modulesynopsis metafile="mod_proxy_http2.xml.meta">
+
+<name>mod_proxy_http2</name>
+<description>Support de HTTP/2 pour <module>mod_proxy</module></description>
+<status>Extension</status>
+<sourcefile>mod_proxy_http2.c</sourcefile>
+<identifier>proxy_http2_module</identifier>
+
+<summary>
+    <p><module>mod_proxy_http2</module> ne
+    supporte que HTTP/2 et ne permet pas de rétrogradation vers HTTP/1.1. Cela
+    signifie que le serveur d'arrière-plan doit supporter HTTP/2 car HTTP/1.1 ne
+    pourra alors pas être utilisé.</p>
+
+    <p>Ce module <em>nécessite</em> la présence de <module>mod_proxy</module> ;
+    pour pouvoir traiter les requêtes mandatées HTTP/2,
+    <module>mod_proxy</module> et <module>mod_proxy_http2</module> doivent donc
+    être chargés par le serveur.</p>
+
+    <p><module>mod_proxy_http2</module> travaille avec des requêtes entrantes en
+    HTTP/1.1 ou HTTP/2. Dans les deux cas, les requêtes vers le même serveur
+    d'arrière-plan sont envoyées
+    via une seule connexion TCP, dans la mesure du possible (autrement dit
+    lorsque la connexion peut être réutilisée).</p>
+
+    <p>Avertissement : il ne sera effectué aucune tentative de fusion de
+    plusieurs requêtes entrantes HTTP/1 (devant être mandatées vers le même
+    serveur d'arrière-plan) vers des flux HTTP/2 appartenant à la même requête
+    HTTP/2.  Chaque requête HTTP/1 entrante sera mandatée vers le serveur
+    d'arrière-plan en utilisant une requête HTTP/2 séparée (tout en réutilisant
+    si possible la même connexion TCP).</p>
+
+    <p>Ce module s'appuie sur <a href="http://nghttp2.org/">libnghttp2</a> pour
+    fournir le moteur central http/2.</p>
+
+    <note type="warning"><title>Avertissement</title>
+    <p>Ce module en est au
+    stade expérimental. Ses comportement, directives et valeurs par défauts sont
+    donc susceptibles de modifications d'une version à l'autre plus fréquentes
+    que pour les autres modules. A ce titre, il est fortement conseillé aux
+    utilisateurs de consulter le fichier "CHANGES" pour prendre connaissance de
+    ces modifications.</p> </note>
+
+    <note type="warning"><title>Avertissement</title>
+      <p>N'activez pas le mandatement avant d'avoir <a
+      href="mod_proxy.html#access">sécurisé votre serveur</a>. Les serveurs
+      mandataires ouverts sont dangereux non seulement pour votre propre réseau,
+      mais aussi pour l'Internet au sens large.</p>
+    </note>
+</summary>
+<seealso><module>mod_http2</module></seealso>
+<seealso><module>mod_proxy</module></seealso>
+<seealso><module>mod_proxy_connect</module></seealso>
+
+    <section id="examples"><title>Exemples de base</title>
+
+    <p>Les exemples ci-dessous montrent comment configurer HTTP/2 pour des
+    connexions d'arrière-plan vers un mandataire inverse.</p>
+
+    <example><title>HTTP/2 (TLS)</title>
+    <highlight language="config">
+ProxyPass "/app" "h2://app.example.com"
+ProxyPassReverse "/app" "https://app.example.com"
+    </highlight>
+    </example>
+
+    <example><title>HTTP/2 (non sécurisé)</title>
+    <highlight language="config">
+ProxyPass "/app" "h2c://app.example.com"
+ProxyPassReverse "/app" "http://app.example.com"
+    </highlight>
+    </example>
+
+    <note>
+      <p>Pour mandater en inverse les protocoles <code>h2</code> ou
+      <code>h2c</code>, on utilise la directive
+      <directive>ProxyPassReverse</directive> avec les schèmes habituels
+      <code>https</code> et respectivement
+      <code>http</code> qui sont connus et utilisés par l'agent utilisateur.</p>
+    </note>
+    </section> <!-- /examples -->
+
+<section id="notes"><title>Informations sur les requêtes</title>
+    <p><module>mod_proxy_http</module> fournit les informations sur les requêtes
+    suivantes pour enregistrement dans les journaux en utilisant le format
+    <code>%{VARNAME}n</code> avec les directives <directive
+    module="mod_log_config">LogFormat</directive> ou <directive
+    module="core">ErrorLogFormat</directive> :
+    </p>
+    <dl>
+        <dt>proxy-source-port</dt>
+        <dd>Le numéro de port local utilisé pour la connexion vers le serveur
+       d'arrière-plan.</dd>
+        <dt>proxy-status</dt>
+        <dd>Le statut HTTP/2 en provenance du serveur d'arrière-plan.</dd>
+    </dl>
+</section>
+
+</modulesynopsis>
diff --git a/docs/manual/mod/mod_proxy_wstunnel.xml.fr b/docs/manual/mod/mod_proxy_wstunnel.xml.fr
new file mode 100644 (file)
index 0000000..a153482
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
+<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
+<!-- English Revision : 1808698 -->
+<!-- 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.
+-->
+
+<modulesynopsis metafile="mod_proxy_wstunnel.xml.meta">
+
+<name>mod_proxy_wstunnel</name>
+<description>Module pour <module>mod_proxy</module> supportant les
+websockets</description>
+<status>Extension</status>
+<sourcefile>mod_proxy_wstunnel.c</sourcefile>
+<identifier>proxy_wstunnel_module</identifier>
+<compatibility>Disponible à partir de la version 2.4.5 du serveur HTTP
+Apache</compatibility>
+
+<summary>
+    <p>Pour utiliser ce module, <module>mod_proxy</module> doit être
+    chargé. Il fournit le support du tunnelling pour les connexions
+    websocket vers un serveur websockets d'arrière-plan. La connexion
+    est automatiquement promue en connexion websocket :</p>
+
+    <example><title>Réponse HTTP</title>
+        <highlight language="config">
+Upgrade: WebSocket
+Connection: Upgrade
+        </highlight>
+    </example> 
+
+<p>Le mandatement des requêtes vers un serveur websockets comme
+<code>echo.websocket.org</code> peut être configuré via la directive <directive
+type="ProxyPass" module="mod_proxy">ProxyPass</directive> :</p>
+    <highlight language="config">
+ProxyPass "/ws2/"  "ws://echo.websocket.org/"
+ProxyPass "/wss2/" "wss://echo.websocket.org/"
+    </highlight>
+    
+<p>La répartition de charge entre plusieurs serveurs d'arrière-plan peut être
+configurée via le module <module>mod_proxy_balancer</module>.</p>
+
+<p>En fait, ce module permet d'accepter d'autres protocoles ; vous pouvez à cet
+effet utiliser le paramètre <code>upgrade</code> de la directive <directive
+type="ProxyPass" module="mod_proxy">ProxyPass</directive>. La valeur NONE
+signifie que vous court-circuitez la consultation de l'en-tête, mais que vous
+autorisez quand-même WebSocket. La valeur ANY signifie que <code>Upgrade</code>
+va lire les en-têtes de la requête et les utilisera dans l'en-tête
+<code>Upgrade</code> de la réponse.</p>
+</summary>
+
+<seealso><module>mod_proxy</module></seealso>
+</modulesynopsis>
diff --git a/docs/manual/mod/mod_version.xml.fr b/docs/manual/mod/mod_version.xml.fr
new file mode 100644 (file)
index 0000000..366b602
--- /dev/null
@@ -0,0 +1,150 @@
+<?xml version="1.0"?>
+<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
+<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
+<!-- English Revision : 1334026 -->
+<!-- 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.
+-->
+
+<modulesynopsis metafile="mod_version.xml.meta">
+<name>mod_version</name>
+<description>Configuration dépendant de la version</description>
+<status>Extension</status>
+<sourcefile>mod_version.c</sourcefile>
+<identifier>version_module</identifier>
+<compatibility>Disponible depuis la version 2.0.56
+d'Apache</compatibility>
+
+<summary>
+    <p>Ce module a été conçu pour être utilisé dans les suites de tests
+    et les grands réseaux qui doivent prendre en compte différentes
+    versions de httpd et différentes configurations. Il fournit un
+    nouveau conteneur -- <directive type="section"
+    module="mod_version">IfVersion</directive>, qui apporte une grande
+    souplesse dans la vérification de version en permettant une
+    comparaison numérique et l'utilisation d'expressions
+    rationnelles.</p>
+
+    <example><title>Exemples</title>
+      <highlight language="config">
+&lt;IfVersion 2.4.2&gt;
+    # la version actuelle de httpd est exactement 2.4.2
+&lt;/IfVersion&gt;
+
+&lt;IfVersion >= 2.5&gt;
+    # utilise vraiment les nouvelles fonctionnalités :-)
+&lt;/IfVersion&gt;
+      </highlight>
+    </example>
+
+    <p>Voir ci-dessous pour d'autres exemples.</p>
+</summary>
+
+<directivesynopsis type="section">
+<name>IfVersion</name>
+<description>Contient des portions de configuration dépendantes de la
+version</description>
+<syntax>&lt;IfVersion [[!]<var>opérateur</var>] <var>version</var>&gt; ...
+&lt;/IfVersion&gt;</syntax>
+<contextlist><context>server config</context><context>serveur
+virtuel</context>
+<context>directory</context><context>.htaccess</context></contextlist>
+<override>All</override>
+
+<usage>
+    <p>La section <directive type="section">IfVersion</directive>
+    rassemble des directives de configuration qui ne sont exécutées que
+    si la version de httpd satisfait aux critères spécifiés. Pour une
+    comparaison normale (numérique), l'argument <var>version</var> doit
+    être spécifié sous le format
+    <code><var>majeur</var>[.<var>mineur</var>[.<var>patch</var>]]</code>,
+    comme par exemple <code>2.1.0</code> ou <code>2.2</code>.
+    <var>mineur</var> et <var>patch</var> sont optionnels. Si ces
+    numéros sont absents, il se voient affectée implicitement la valeur
+    0. Les <var>opérateur</var>s numériques suivants sont autorisés
+    :</p>
+
+    <table style="zebra" border="1">
+    <tr><th><var>opérateur</var></th><th>description</th></tr>
+    <tr><td><code>=</code> ou <code>==</code></td>
+        <td>La version de httpd est égale à la valeur
+       spécifiée</td></tr>
+    <tr><td><code>&gt;</code></td>
+        <td>La version de httpd est supérieure à la valeur
+       spécifiée</td></tr>
+    <tr><td><code>&gt;=</code></td>
+        <td>La version de httpd est supérieure ou égale à la valeur
+       spécifiée</td></tr>
+    <tr><td><code>&lt;</code></td>
+        <td>La version de httpd est inférieure à la valeur
+       spécifiée</td></tr>
+    <tr><td><code>&lt;=</code></td>
+        <td>La version de httpd est inférieure ou égale à la valeur
+       spécifiée</td></tr>
+    </table>
+
+    <example><title>Exemple</title>
+      <highlight language="config">
+&lt;IfVersion >= 2.3&gt;
+    # la condition n'est satisfaite que pour les versions de httpd
+       # supérieures ou égales à 2.3
+&lt;/IfVersion&gt;
+      </highlight>
+    </example>
+
+    <p>En plus d'une comparaison numérique, il est possible de comparer
+    la version de httpd avec une <glossary ref="regex">expression
+    rationnelle</glossary>. Il existe deux méthodes pour spécifier cette
+    dernière :</p>
+
+    <table style="zebra" border="1">
+    <tr><th><var>opérateur</var></th><th>description</th></tr>
+    <tr><td><code>=</code> ou <code>==</code></td>
+        <td><var>version</var> est de la forme
+            <code>/<var>regex</var>/</code></td></tr>
+    <tr><td><code>~</code></td>
+        <td><var>version</var> est de la forme
+            <code><var>regex</var></code></td></tr>
+    </table>
+
+    <example><title>Exemple</title>
+      <highlight language="config">
+&lt;IfVersion = /^2.4.[01234]$/&gt;
+    # exemple de contournement pour les versions boguées
+&lt;/IfVersion&gt;
+      </highlight>
+    </example>
+
+    <p>Pour inverser la condition, tous les opérateurs peuvent être
+    préfixés par un point d'exclamation (<code>!</code>) :</p>
+
+    <example>
+     <highlight language="config">
+&lt;IfVersion !~ ^2.4.[01234]$&gt;
+    # pas pour ces versions
+&lt;/IfVersion&gt;
+    </highlight>
+    </example>
+
+    <p>Si <var>opérateur</var> est absent, sa valeur implicite est
+    <code>=</code>.</p>
+</usage>
+</directivesynopsis>
+
+</modulesynopsis>
diff --git a/docs/manual/mod/mod_watchdog.xml.fr b/docs/manual/mod/mod_watchdog.xml.fr
new file mode 100644 (file)
index 0000000..9ff32c5
--- /dev/null
@@ -0,0 +1,67 @@
+<?xml version="1.0"?>
+<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
+<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
+<!-- English Revision : 1231443 -->
+<!-- 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.
+-->
+
+<modulesynopsis metafile="mod_watchdog.xml.meta">
+<name>mod_watchdog</name>
+<description>Fournit une infrastructure permettant &agrave; d'autres modules
+d'ex&eacute;cuter des t&acirc;ches p&eacute;riodiques.</description>
+<status>Base</status>
+<sourcefile>mod_watchdog.c</sourcefile>
+<identifier>watchdog_module</identifier>
+<compatibility>Disponible &agrave; partir de la version 2.3 du serveur HTTP
+Apache</compatibility>
+
+<summary>
+<p>Le module <module>mod_watchdog</module> d&eacute;finit des
+branchements (hooks) programm&eacute;s pour permettre &agrave; d'autres modules
+d'ex&eacute;cuter des t&acirc;ches p&eacute;riodiques. Ces modules peuvent enregistrer des
+gestionnaires (handlers) pour les branchements de
+<module>mod_watchdog</module>. Actuellement, seuls les modules suivants
+de la distribution Apache utilisent cette fonctionnalit&eacute; :</p>
+<ul>
+<li><module>mod_heartbeat</module></li>
+<li><module>mod_heartmonitor</module></li>
+</ul>
+<note type="warning">
+Pour qu'un module puisse utiliser la fonctionnalit&eacute; de
+<module>mod_watchdog</module>, ce dernier doit &ecirc;tre li&eacute; statiquement
+avec le serveur httpd ; s'il a &eacute;t&eacute; li&eacute; dynamiquement, il doit &ecirc;tre
+charg&eacute; avant l'appel au module qui doit utiliser sa fonctionnalit&eacute;.
+</note>
+</summary>
+
+<directivesynopsis>
+<name>WatchdogInterval</name>
+<description>Intervalle Watchdog en secondes</description>
+<syntax>WatchdogInterval <var>number-of-seconds</var></syntax>
+<default>WatchdogInterval 1</default>
+<contextlist><context>server config</context></contextlist>
+
+<usage>
+<p>Cette directive permet de d&eacute;finir l'intervalle entre chaque ex&eacute;cution
+du branchement watchdog. La valeur par d&eacute;faut est de 1 seconde.</p>
+</usage>
+</directivesynopsis>
+</modulesynopsis>
+
diff --git a/docs/manual/programs/log_server_status.xml.fr b/docs/manual/programs/log_server_status.xml.fr
new file mode 100644 (file)
index 0000000..79f0fbe
--- /dev/null
@@ -0,0 +1,64 @@
+<?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 : 1562488 -->
+<!-- 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="log_server_status.xml.meta">
+<parentdocument href="./">Programs</parentdocument>
+
+<title>log_server_status - Enregistrement périodique de l'état du serveur</title>
+
+<summary>
+    <p>Ce script perl a été conçu pour être exécuté à intervalles
+    réguliers via un déclencheur de type cron. Il se connecte au serveur
+    pour en extraire des informations quant à son état. Il formate ces
+    informations sous la forme d'une seule ligne qu'il enregistre dans
+    un fichier. Vous devez éditer la valeur des variables en tête de
+    script afin de définir le chemin du fichier de sortie. Pour que ce
+    script puisse fonctionner, <module>mod_status</module> doit au
+    préalable être chargé et configuré.</p>
+</summary>
+
+<section id="configure"><title>Mode d'emploi</title>
+
+<p>Le script contient les sections suivantes :</p>
+
+<highlight language="perl">
+my $wherelog = "/usr/local/apache2/logs/";  # Le fichier de sortie sera
+                                       # du style "/usr/local/apache2/logs/19960312"
+my $server   = "localhost";        # Nom du serveur, par exemple "www.foo.com"
+my $port     = "80";               # Port d'écoute du serveur
+my $request = "/server-status/?auto";    # Requête à soumettre
+</highlight>
+
+<p>Ces variables doivent contenir des valeurs correctes, et le
+gestionnaire <code>/server-status</code> doit être configuré pour le
+répertoire considéré. En outre, l'utilisateur qui exécute le script doit
+avoir les droits d'écriture sur le chemin du fichier de sortie.</p>
+
+<p>L'exécution périodique du script via cron permet d'obtenir un jeu de
+rapports d'état qui pourra être utilisé à des fins d'analyse
+statistique.</p>
+
+</section>
+
+</manualpage>
diff --git a/docs/manual/programs/split-logfile.xml.fr b/docs/manual/programs/split-logfile.xml.fr
new file mode 100644 (file)
index 0000000..872a4f5
--- /dev/null
@@ -0,0 +1,67 @@
+<?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 : 1562488 -->
+<!-- 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="split-logfile.xml.meta">
+<parentdocument href="./">Programs</parentdocument>
+
+<title>split-logfile - Eclatement des journaux en fonction des serveurs
+virtuels</title>
+
+<summary>
+    <p>Ce script perl permet d'extraire un journal pour chaque serveur
+    virtuel à partir d'un journal d'accès global du serveur web. Pour
+    que ce script fonctionne, le premier champ de chaque ligne du
+    journal global doit contenir l'identité du serveur virtuel ; ce
+    champ aura été ajouté à la directive <directive
+    module="mod_log_config">LogFormat</directive> via la variable
+    "<code>%v</code>".
+    </p>
+</summary>
+
+<section id="split-logfile"><title>Mode d'emploi</title>
+
+    <p>Création d'un fichier journal comportant l'identité du serveur
+    virtuel considéré :</p>
+
+    <highlight language="config">
+LogFormat "%v %h %l %u %t \"%r\" %&gt;s %b \"%{Referer}i\" \"%{User-agent}i\"" combined_plus_vhost
+CustomLog logs/access_log combined_plus_vhost
+    </highlight>
+
+    <p>Un fichier journal sera créé dans le répertoire à partir duquel
+    vous exécutez le script pour chaque serveur virtuel qui apparaît
+    dans le journal global. Ces fichiers journaux seront nommés à partir
+    du nom du serveur virtuel considéré, avec l'extension
+    <code>.log</code>.</p>
+
+    <p>Le fichier journal global est lu depuis l'entrée standard stdin.
+    Les entrées de ce journal sont alors ajoutées au journal du serveur
+    virtuel correspondant.</p>
+
+    <example>split-logfile &lt; access_log</example>
+
+
+</section>
+
+</manualpage>
diff --git a/docs/manual/programs/suexec.xml.fr b/docs/manual/programs/suexec.xml.fr
new file mode 100644 (file)
index 0000000..70f17b4
--- /dev/null
@@ -0,0 +1,64 @@
+<?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 : 1498321 -->
+<!-- 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="suexec.xml.meta">
+<parentdocument href="./">Programs</parentdocument>
+
+<title>suexec - Change d'utilisateur avant l'exécution d'un programme
+externe</title>
+
+<summary>
+     <p><code>suexec</code> permet au serveur HTTP Apache de changer
+     d'utilisateur avant d'exécuter un programme CGI. Pour ce faire, il
+     doit être exécuté par <code>root</code>. A cet effet, comme le
+     démon HTTP ne s'exécute en général pas en tant que
+     <code>root</code>, l'exécutable <code>suexec</code> doit posséder
+     le bit setuid et avoir comme propriétaire <code>root</code>. Seul
+     <code>root</code> doit en posséder les droits en écriture.</p>
+
+     <p>Pour plus d'informations à propos des concepts et du modèle de
+     sécurité du programme suexec, veuillez vous reporter à sa
+     documentation : <a
+     href="http://httpd.apache.org/docs/&httpd.docs;/suexec.html"
+     >http://httpd.apache.org/docs/&httpd.docs;/suexec.html</a>.</p>
+</summary>
+
+<section id="synopsis"><title>Synopsis</title>
+     <p><code><strong>suexec</strong> -<strong>V</strong></code></p>
+</section>
+
+<section id="options"><title>Options</title>
+
+<dl>
+<dt><code>-V</code></dt>
+
+<dd>Si vous êtes <code>root</code>, cette option permet d'afficher les
+options de compilation du programme <code>suexec</code>. Pour des
+raisons de sécurité, toutes les options de configuration ne sont
+modifiables qu'à la compilation.</dd>
+
+</dl>
+</section>
+
+</manualpage>