]> granicus.if.org Git - apache/commitdiff
Introducing 3 new .fr translations
authorVincent Deffontaines <gryzor@apache.org>
Mon, 18 Dec 2017 18:35:13 +0000 (18:35 +0000)
committerVincent Deffontaines <gryzor@apache.org>
Mon, 18 Dec 2017 18:35:13 +0000 (18:35 +0000)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1818604 13f79535-47bb-0310-9956-ffa450edef68

docs/manual/mod/mod_crypto.xml.fr [new file with mode: 0644]
docs/manual/mod/mod_crypto.xml.meta
docs/manual/mod/mod_firehose.xml.fr [new file with mode: 0644]
docs/manual/mod/mod_firehose.xml.meta
docs/manual/mod/mod_http2.xml.fr [new file with mode: 0644]
docs/manual/mod/mod_http2.xml.meta

diff --git a/docs/manual/mod/mod_crypto.xml.fr b/docs/manual/mod/mod_crypto.xml.fr
new file mode 100644 (file)
index 0000000..62d2802
--- /dev/null
@@ -0,0 +1,292 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
+<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
+<!-- $LastChangedRevision: 1752104 $ -->
+<!-- English Revision : 1752104 -->
+<!-- French translation : Lucien GENTIS -->
+<!-- $LastChangedRevision: 2017021901 $ -->
+
+<!--
+ 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_crypto.xml.meta">
+
+<name>mod_crypto</name>
+<description>Support du chiffrement/d&eacute;chiffrement sym&eacute;trique</description>
+<status>Extension</status>
+<sourcefile>mod_crypto.c</sourcefile>
+<identifier>crypto_module</identifier>
+<compatibility>Disponible &agrave; partir de la version 2.5 du serveur HTTP Apache</compatibility>
+
+<summary>
+    <p>Ce module permet de <strong>chiffrer et d&eacute;chiffrer</strong> les donn&eacute;es au
+    niveau des piles de filtrage en entr&eacute;e et en sortie.</p>
+
+    <p>En particulier, il permet d'effectuer un <strong>chiffrement HLS &agrave; la
+    vol&eacute;e</strong> comme d&eacute;crit dans le document <a
+    href="http://www.ietf.org/id/draft-pantos-http-live-streaming-19.txt">draft-pantos-http-live-streaming-19</a>.</p>
+
+    <p>Mais il peut aussi assurer la livraison s&eacute;curis&eacute;e de donn&eacute;es via un CDN
+    non s&eacute;curis&eacute; aux clients qui le supportent.</p>
+
+    <p>Selon les besoins, on peut ajouter le filtre crypto &agrave; la pile de filtrage
+    en entr&eacute;e ou en sortie via les directives <directive
+    module="core">SetInputFilter</directive>, <directive
+    module="core">SetOutputFilter</directive>, <directive
+    module="mod_mime">AddOutputFilter</directive> ou <directive
+    module="mod_filter">AddOutputFilterByType</directive>.</p>
+
+</summary>
+<seealso><a href="../filter.html">Filtres</a></seealso>
+
+<section id="format">
+    <title>Format du flux de donn&eacute;es</title>
+
+    <p>Le flux de donn&eacute;es chiffr&eacute;es comporte un bloc IV optionnel suivi des
+    donn&eacute;es chiffr&eacute;es avec l'algorithme de chiffrement choisi. Le bloc final est
+    &eacute;ventuellement compl&eacute;t&eacute; par bourrage avant d'&ecirc;tre &eacute;crit. La taille des blocs
+    est d&eacute;termin&eacute;e par l'algorithme de chiffrement choisi.</p>
+
+    <p>Lorsque le bloc IV est sp&eacute;cifi&eacute; via la directive <directive
+    module="mod_crypto">CryptoIV</directive>, il est utilis&eacute;, mais n'est pas
+    inject&eacute; dans le flux d'entr&eacute;e/sortie.</p>
+
+</section>
+
+<section id="config">
+    <title>Cl&eacute;s et blocs IV</title>
+
+    <p>Les directives <directive module="mod_crypto">CryptoKey</directive> et
+    <directive module="mod_crypto">CryptoIV</directive> acceptent comme
+    arguments des valeurs binaires qui peuvent &ecirc;tre sp&eacute;cifi&eacute;es comme indiqu&eacute;
+    ci-apr&egrave;s. Les bits les plus significatifs de ces valeurs sont utilis&eacute;s, et
+    si les valeurs sont trop petites, elles sont compl&eacute;t&eacute;es par bourrage avec
+    des bits &agrave; 0 par la gauche.
+    </p>
+
+    <dl>
+    <dt>file:</dt><dd>La valeur est lue directement depuis le fichier sp&eacute;cifi&eacute;.</dd>
+    <dt>hex:</dt><dd>Interpr&egrave;te l'expression en tant que valeur hexad&eacute;cimale qui
+    peut contenir des caract&egrave;res ':' comme s&eacute;parateurs.</dd>
+    <dt>decimal:</dt><dd>Interpr&egrave;te l'expression en tant que valeur d&eacute;cimale.</dd>
+    <dt>base64:</dt><dd>Interpr&egrave;te l'expression en tant que valeur cod&eacute;e en
+    base64.</dd>
+    <dt>none</dt><dd>Aucune valeur n'est sp&eacute;cifi&eacute;e.</dd>
+    </dl>
+
+    <p>Si le IV n'est pas sp&eacute;cifi&eacute;, un IV al&eacute;atoire sera g&eacute;n&eacute;r&eacute; au cours du
+    chiffrement et &eacute;crit comme premier bloc. Lors du d&eacute;chiffrement, le premier
+    bloc sera interpr&eacute;t&eacute; en tant que IV.
+    </p>
+
+    <p>A l'exception du format file:, les directives <directive
+    module="mod_crypto">CryptoKey</directive> et <directive
+    module="mod_crypto">CryptoIV</directive> supportent la <a
+    href="../expr.html">syntaxe des expressions</a> qui fournit plus de
+    flexibilit&eacute; pour d&eacute;finir les valeurs. Les cl&eacute;s et IVs peuvent ainsi &ecirc;tre
+    initialis&eacute;es al&eacute;atoirement via des valeurs disponibles au niveau du serveur
+    web comme REMOTE_USER ou l'URL.
+    </p>
+
+</section>
+
+<section id="handler">
+    <title>Gestionnaire de cl&eacute; de chiffrement</title>
+
+    <p>Le gestionnaire <strong>crypto-key</strong> permet de fournir la cl&eacute; aux
+    clients autoris&eacute;s qui le supportent sans avoir &agrave; stocker cette derni&egrave;re dans
+    l'arborescence du serveur web. La m&ecirc;me <a href="../expr.html">syntaxe
+    d'expression</a> peut ainsi &ecirc;tre utilis&eacute;e afin d'obtenir la cl&eacute; pour les
+    clients et pour le contenu chiffr&eacute;.</p>
+
+    <example><title>Gestionnaire de cl&eacute; de chiffrement avec un fichier</title>
+      &lt;Location /key&gt;<br />
+      <indent>
+        SetHandler crypto-key<br />
+        CryptoCipher aes128<br />
+        CryptoKey file:/path/to/file.key<br />
+        AuthType basic<br />
+        ...<br />
+        </indent>
+      &lt;/Location&gt;<br />
+    </example>
+
+</section>
+
+<section id="hls">
+    <title>HTTP Live Streaming (HLS)</title>
+
+    <p>Le protocole HLS supporte les flux chiffr&eacute;s qui utilisent l'algorithme de
+    chiffrement AES-128 et une cl&eacute; correspondante. On autorise l'acc&egrave;s au flux
+    en partageant la cl&eacute; avec le client HLS en g&eacute;n&eacute;ral via une connexion
+    s&eacute;curis&eacute;e.</p>
+
+    <p>Le IV utilis&eacute; pour le chiffrement de chaque segment de media est sp&eacute;cifi&eacute;
+    dans HLS de deux mani&egrave;res :</p>
+
+    <ul>
+        <li>
+            Sp&eacute;cifi&eacute; explicitement via un attribut IV dans le tag EXT-X-KEY sous
+           la forme d'une valeur <strong>hexad&eacute;cimale</strong>.
+        </li>
+        <li>
+            Sp&eacute;cifi&eacute; implicitement en interpr&eacute;tant la valeur
+           <strong>d&eacute;cimale</strong> du tag EXT-X-MEDIA-SEQUENCE.
+        </li>
+    </ul>
+
+    <p>La valeur de la s&eacute;quence de media est en g&eacute;n&eacute;rale incorpor&eacute;e dans les
+    noms de segment de m&eacute;dia et peut &ecirc;tre recherch&eacute;e en utilisant des
+    expressions rationnelles nomm&eacute;es comme dans l'exemple ci-dessous.
+    </p>
+
+    <example><title>Exemple HLS - IV de la s&eacute;quence de m&eacute;dia</title>
+      &lt;LocationMatch (?&lt;SEQUENCE&gt;[\d]+)[^\d^/]+$&gt;<br />
+      <indent>
+        SetOutputFilter ENCRYPT<br />
+        CryptoCipher aes128<br />
+        CryptoKey file:/path/to/file.key<br />
+        CryptoIV decimal:%{env:MATCH_SEQUENCE}<br />
+        </indent>
+      &lt;/LocationMatch&gt;<br />
+    </example>
+
+</section>
+
+<directivesynopsis>
+<name>CryptoDriver</name>
+<description>Nom du pilote crypto &agrave; utiliser</description>
+<syntax>CryptoDriver name</syntax>
+<default>CryptoDriver openssl</default>
+<contextlist><context>server config</context>
+</contextlist>
+
+<usage>
+    <p>La directive <directive module="mod_crypto">CryptoDriver</directive>
+    permet de sp&eacute;cifier le nom du pilote crypto &agrave; utiliser. Un pilote recommand&eacute;
+    par d&eacute;faut est en g&eacute;n&eacute;ral d&eacute;fini pour chaque plateforme. Les pilotes
+    support&eacute;s sont <strong>openssl</strong>, <strong>commoncrypto</strong> et
+    <strong>nss</strong>.</p>
+</usage>
+</directivesynopsis>
+
+<directivesynopsis>
+<name>CryptoCipher</name>
+<description>L'algorithme de chiffrement que le filtre crypto doit utiliser</description>
+<syntax>CryptoCipher name</syntax>
+<default>CryptoCipher aes256</default>
+<contextlist><context>server config</context>
+<context>virtual host</context>
+<context>directory</context>
+<context>.htaccess</context>
+</contextlist>
+
+<usage>
+    <p>La directive <directive>CryptoCipher</directive> permet de sp&eacute;cifier
+    l'algorithme de chiffrement &agrave; utiliser au cours des phases de chiffrement et
+    de d&eacute;chiffrement. L'algorithme de chiffrement par d&eacute;faut est
+    <code>aes256</code>.</p>
+
+    <p>C'est le pilote crypto utilis&eacute; qui d&eacute;termine l'&eacute;tendue du choix des algorithmes de
+    chiffrement parmi les valeurs possibles suivantes :</p>
+
+    <ul><li>3des192</li><li>aes128</li><li>aes192</li><li>aes256</li></ul>
+
+</usage>
+</directivesynopsis>
+
+<directivesynopsis>
+<name>CryptoIV</name>
+<description>Le Vecteur d'Initialisation IV (Initialisation Vector) que le
+filtre crypto doit utiliser</description>
+<syntax>CryptoIV value</syntax>
+<default>CryptoIV none</default>
+<contextlist><context>server config</context>
+<context>virtual host</context>
+<context>directory</context>
+<context>.htaccess</context>
+</contextlist>
+
+<usage>
+    <p>La directive <directive>CryptoIV</directive> permet de sp&eacute;cifier le IV
+    (Initialisation Vector) pour l'espace d'URL consid&eacute;r&eacute;. Le IV peut &ecirc;tre lu &agrave;
+    partir d'un fichier ou d&eacute;fini via l'<a href="../expr.html">interpr&eacute;teur
+    d'expressions</a>, ce qui conf&egrave;re plus de souplesse aux sc&eacute;narios de
+    d&eacute;finition des cl&eacute;s.</p>
+
+    <p>Les valeurs possibles peuvent &ecirc;tre lues depuis un fichier ou exprim&eacute;es
+    sous une forme hexad&eacute;cimale, d&eacute;cimale ou en base64 en fonction des pr&eacute;fixes
+    suivants :</p>
+
+    <ul><li>file:</li><li>hex:</li><li>decimal:</li><li>base64:</li></ul>
+
+    <p>La valeur 'none' d&eacute;sactive la d&eacute;finition du IV. Dans ce cas, un IV
+    al&eacute;atoire sera g&eacute;n&eacute;r&eacute; durant le chiffrement et ins&eacute;r&eacute; en tant que premier
+    bloc ; au cours du d&eacute;chiffrement, le premier bloc sera interpr&eacute;t&eacute; comme bloc
+    IV.</p>
+</usage>
+</directivesynopsis>
+
+<directivesynopsis>
+<name>CryptoKey</name>
+<description>Cl&eacute; que le filtre crypto doit utiliser</description>
+<syntax>CryptoKey value</syntax>
+<default>CryptoKey none</default>
+<contextlist><context>server config</context>
+<context>virtual host</context>
+<context>directory</context>
+<context>.htaccess</context>
+</contextlist>
+
+<usage>
+    <p>La directive <directive>CryptoKey</directive> permet de sp&eacute;cifier la cl&eacute;
+    de chiffrement/d&eacute;chiffrement pour l'espace d'URL consid&eacute;r&eacute;. La cl&eacute; peut &ecirc;tre
+    lue depuis un fichier ou d&eacute;fini via l'<a href="../expr.html">interpr&eacute;teur
+    d'expressions</a>, ce qui conf&egrave;re plus de souplesse aux sc&eacute;narios de
+    d&eacute;finition des cl&eacute;s.</p>
+
+    <p>Les valeurs possibles peuvent &ecirc;tre lues depuis un fichier ou exprim&eacute;es
+    sous une forme hexad&eacute;cimale, d&eacute;cimale ou en base64 en fonction des pr&eacute;fixes
+    suivants :</p>
+
+    <ul><li>file:</li><li>hex:</li><li>decimal:</li><li>base64:</li></ul>
+
+    <p>La valeur 'none' d&eacute;sactive la cl&eacute;. Toute requ&ecirc;te pour obtenir sans cl&eacute; un fichier
+    via les filtres ENCRYPT ou DECRYPT se soldera alors par un &eacute;chec. </p>
+</usage>
+</directivesynopsis>
+
+<directivesynopsis>
+<name>CryptoSize</name>
+<description>Taille maximale en octets du tampon utilis&eacute; par le filtre crypto</description>
+<syntax>CryptoSize integer</syntax>
+<default>CryptoSize 131072</default>
+<contextlist><context>server config</context>
+<context>virtual host</context>
+<context>directory</context>
+<context>.htaccess</context>
+</contextlist>
+
+<usage>
+    <p>La directive <directive module="mod_crypto">CryptoSize</directive> permet
+    de sp&eacute;cifier la quantit&eacute; de donn&eacute;es en octets qui sera mise en tampon pour
+    chaque requ&ecirc;te avant d'&ecirc;tre chiffr&eacute;e ou d&eacute;chiffr&eacute;e. La valeur par d&eacute;faut est
+    128 Ko.</p>
+</usage>
+</directivesynopsis>
+
+</modulesynopsis>
index 6e247337bdde12e9176242f02204ac4c8025213c..4872ae3416b240ae8eb8b92fafbe853842433fed 100644 (file)
@@ -8,5 +8,6 @@
 
   <variants>
     <variant>en</variant>
+    <variant>fr</variant>
   </variants>
 </metafile>
diff --git a/docs/manual/mod/mod_firehose.xml.fr b/docs/manual/mod/mod_firehose.xml.fr
new file mode 100644 (file)
index 0000000..d0b7f54
--- /dev/null
@@ -0,0 +1,294 @@
+<?xml version="1.0"?>
+<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
+<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
+<!-- English Revision : 1673947 -->
+<!-- French translation : Lucien GENTIS -->
+<!-- $LastChangedRevision: 2015042601 $ -->
+
+<!--
+ 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_firehose.xml.meta">
+
+<name>mod_firehose</name>
+<description>Multiplexage des entr&eacute;es/sorties vers un fichier ou un pipe.</description>
+<status>Extension</status>
+<sourcefile>mod_firehose.c</sourcefile>
+<identifier>firehose_module</identifier>
+
+<summary>
+    <p><code>mod_firehose</code> fournit un m&eacute;canisme permettant
+    d'enregistrer les donn&eacute;es transmises entre le serveur httpd et le
+    client au niveau &eacute;l&eacute;mentaire de la connexion dans un fichier ou un
+    pipe, de fa&ccedil;on &agrave; ce que les donn&eacute;es puissent &ecirc;tre analys&eacute;es ou
+    rejou&eacute;es ult&eacute;rieurement par le serveur. Il s'apparente &agrave; un "tcpdump
+    pour httpd".</p>
+
+    <p>Les connexions sont enregistr&eacute;es apr&egrave;s d&eacute;codage de la couche SSL,
+    et peuvent ainsi &ecirc;tre utilis&eacute;es dans le cadre d'une r&eacute;quisition
+    l&eacute;gale.</p>
+
+    <p>L'utilitaire <program>firehose</program> permet en retour de
+    d&eacute;multiplexer le flux enregistr&eacute; dans des fichiers individuels pour
+    analyse ou rejeu via des outils tels que <code>netcat</code>.</p>
+
+    <note><title>AVERTISSEMENT</title>Ce module ignore tout m&eacute;canisme
+    invoqu&eacute; au niveau de la requ&ecirc;te pour rendre les donn&eacute;es priv&eacute;es. Il
+    est donc de la responsabilit&eacute; de l'administrateur de s'assurer que
+    les donn&eacute;es priv&eacute;es ne seront pas compromises par son utilisation.
+    </note>
+
+</summary>
+<seealso><program>firehose</program></seealso>
+
+<section id="enable">
+    <title>Activation de la "Lance &agrave; incendie" (Firehose)</title>
+
+    <p>Pour activer ce module, il doit &ecirc;tre compil&eacute; et charg&eacute; via la
+    configuration de votre instance httpd courante, et les directives
+    ci-dessous permettent de s&eacute;lectionner les donn&eacute;es que vous souhaitez
+    enregistrer.</p>
+    
+    <p>Il est possible d'enregistrer les donn&eacute;es entrantes et sortantes
+    dans le m&ecirc;me fichier, car la direction du flux est indiqu&eacute;e dans
+    chaque fragment.</p>
+
+    <p>Il est possible d'&eacute;crire vers des fichiers normaux ou des listes
+    fifos (pipes). Dans le cas des listes fifos, mod_firehose fait en
+    sorte que la taille des paquets ne d&eacute;passe pas la valeur de PIPE_BUF
+    afin de s'assurer que l'&eacute;criture de ces derniers s'effectue en une
+    seule fois.</p>
+
+    <p>Si une liste fifo sous forme de pipe doit &ecirc;tre utilis&eacute;e, pour que
+    cette derni&egrave;re soit ouverte en &eacute;criture, certaines donn&eacute;es doivent
+    en &ecirc;tre extraites avant le d&eacute;marrage de httpd. Si l'ouverture du
+    pipe &eacute;choue, mod_firehose ne sera pas activ&eacute;, et le serveur sera
+    lanc&eacute; normalement.</p>
+
+    <p>Par d&eacute;faut, toute tentative d'&eacute;criture bloque le serveur. Si le
+    serveur a &eacute;t&eacute; compil&eacute; avec APR version 2.0 ou sup&eacute;rieure, et si le
+    param&egrave;tre "nonblock" a &eacute;t&eacute; sp&eacute;cifi&eacute;, les &eacute;critures dans les fichiers
+    seront non blocantes, et tout d&eacute;passement de tampon entra&icirc;nera la
+    perte des donn&eacute;es de d&eacute;bogage. Dans ce cas, il est possible donner
+    la priorit&eacute; &agrave; l'ex&eacute;cution du serveur sur l'enregistrement des
+    donn&eacute;es firehose.</p>
+
+</section>
+
+<section id="format">
+    <title>Format du flux</title>
+
+    <p>En g&eacute;n&eacute;ral, le serveur g&egrave;re plusieurs connexions simultan&eacute;ment,
+    et de ce fait, les requ&ecirc;tes et les r&eacute;ponses doivent &ecirc;tre
+    multiplex&eacute;es avant d'&ecirc;tre &eacute;crites dans le firehose.</p>
+    
+    <p>Chaque fragment se pr&eacute;sente sous la forme d'un texte en clair
+    de fa&ccedil;on &agrave; ce qu'un firehose puisse &ecirc;tre ouvert et inspect&eacute; par un
+    &eacute;diteur de texte standard. Il est aussi possible d'utiliser
+    l'utilitaire <program>firehose</program> pour d&eacute;multiplexer le
+    firehose en requ&ecirc;tes ou connexions individuelles.</p>
+
+    <p>La taille maximale des fragments multiplex&eacute;s est d&eacute;finie par la
+    variable PIPE_BUF. Elle correspond &agrave; la taille maximale d'un
+    &eacute;l&eacute;ment que le syst&egrave;me peut &eacute;crire. Si la taille des fragments
+    multiplex&eacute;s reste en dessous de PIPE_BUF, le module garantit que les
+    contenus des diff&eacute;rents fragments ne se recouperont pas. La valeur
+    de PIPE_BUF varie en fonction du syst&egrave;me d'exploitation.</p>
+
+    <p>La BNF du format du fragment est la suivante :</p>
+
+    <pre>
+ stream = 0*(fragment)
+
+ fragment = header CRLF body CRLF
+
+ header = length SPC timestamp SPC ( request | response ) SPC uuid SPC count
+
+ length = &lt;longueur de fragment sur 16 octets hexad&eacute;cimaux>
+ timestamp = &lt;temps depuis 1970 en microsecondes sur 16 octets hexad&eacute;cimaux>
+ request = "&lt;"
+ response = ">"
+ uuid = &lt;uuid format&eacute; de la connexion>
+ count = &lt;num&eacute;ro hexad&eacute;cimal du fragment dans la connexion>
+
+ body = &lt;contenu binaire du fragment>
+
+ SPC = &lt;un espace>
+ CRLF = &lt;un retour chariot suivi d'une nouvelle ligne>
+    </pre>
+
+    <p>Tous les fragments d'une connexion ou d'une requ&ecirc;te partagent le
+    m&ecirc;me UUID, selon que les connexions ou les requ&ecirc;tes sont
+    enregistr&eacute;es ou non. Si les connexions sont enregistr&eacute;es, plusieurs
+    requ&ecirc;tes peuvent appara&icirc;tre dans la m&ecirc;me connexion. Un fragment de
+    longueur nulle indique la fin de la connexion.</p>
+
+    <p>Certains fragments peuvent manquer ou &ecirc;tre supprim&eacute;s si le
+    processus qui les lit est trop lent. Si cela se produit, il y aura
+    des trous dans le comptage des connections. Un avertissement
+    indiquant l'UUID et le num&eacute;ro du fragment supprim&eacute; sera enregistr&eacute;
+    dans le journal des erreurs.</p>
+
+    <p>En cas de crash ou d'arr&ecirc;t forc&eacute; du processus httpd, il est
+    possible que le fragment vide de terminaison n'apparaisse pas. Cela
+    peut aussi se produire si le processus qui lit les fragments n'est
+    pas assez rapide.</p>
+
+</section>
+
+<directivesynopsis>
+
+<name>FirehoseConnectionInput</name>
+<description>Capture le trafic entrant dans le serveur &agrave; chaque
+connexion.</description>
+<syntax>FirehoseConnectionInput <var>[ block | nonblock ]</var> <var>filename</var></syntax>
+<default>none</default>
+<contextlist><context>server config</context></contextlist>
+<compatibility>Disponible &agrave; partir de la version 2.5.0 du serveur HTTP
+Apache.</compatibility>
+
+<usage>
+    <p>Capture le trafic entrant dans le serveur &agrave; chaque connexion.
+    Plusieurs requ&ecirc;tes seront captur&eacute;es pour la m&ecirc;me connexion si les
+    connexions persistantes sont activ&eacute;es.</p>
+
+    <example><title>Exemple</title>
+    <highlight language="config">
+      FirehoseConnectionInput connection-input.firehose
+      </highlight>
+    </example>
+</usage>
+
+</directivesynopsis>
+
+<directivesynopsis>
+
+<name>FirehoseConnectionOutput</name>
+<description>Capture le trafic sortant du serveur &agrave; chaque connexion</description>
+<syntax>FirehoseConnectionOutput <var>[ block | nonblock ]</var> <var>filename</var></syntax>
+<default>none</default>
+<contextlist><context>server config</context></contextlist>
+<compatibility>Disponible &agrave; partir de la version 2.5.0 du serveur HTTP
+Apache.</compatibility>
+
+<usage>
+    <p>Capture le trafic sortant du serveur &agrave; chaque connexion.
+    Plusieurs requ&ecirc;tes seront captur&eacute;es pour la m&ecirc;me connexion si les
+    connexions persistantes sont activ&eacute;es.
+    </p>
+
+    <example><title>Exemple</title>
+    <highlight language="config">
+      FirehoseConnectionOutput connection-output.firehose
+      </highlight>
+    </example>
+</usage>
+
+</directivesynopsis>
+
+<directivesynopsis>
+
+<name>FirehoseRequestInput</name>
+<description>Capture le trafic entrant dans le serveur &agrave; chaque requ&ecirc;te</description>
+<syntax>FirehoseRequestInput <var>[ block | nonblock ]</var> <var>filename</var></syntax>
+<default>none</default>
+<contextlist><context>server config</context></contextlist>
+<compatibility>Disponible &agrave; partir de la version 2.5.0 du serveur HTTP
+Apache.</compatibility>
+
+<usage>
+    <p>Capture le trafic entrant dans le serveur &agrave; chaque requ&ecirc;te. Les
+    requ&ecirc;tes sont captur&eacute;es s&eacute;par&eacute;ment, que les connexions persistantes
+    soient activ&eacute;es ou non.</p>
+
+    <example><title>Exemple</title>
+    <highlight language="config">
+      FirehoseRequestInput request-input.firehose
+      </highlight>
+    </example>
+</usage>
+
+</directivesynopsis>
+
+<directivesynopsis>
+
+<name>FirehoseRequestOutput</name>
+<description>Capture le trafic sortant du serveur &agrave; chaque requ&ecirc;te</description>
+<syntax>FirehoseRequestOutput <var>[ block | nonblock ]</var> <var>filename</var></syntax>
+<default>none</default>
+<contextlist><context>server config</context></contextlist>
+<compatibility>Disponible &agrave; partir de la version 2.5.0 du serveur HTTP
+Apache.</compatibility>
+
+<usage>
+    <p>Capture le trafic sortant du serveur &agrave; chaque requ&ecirc;te. Les
+    requ&ecirc;tes sont captur&eacute;es s&eacute;par&eacute;ment, que les connexions persistantes
+    soient activ&eacute;es ou non.</p>
+
+    <example><title>Exemple</title>
+    <highlight language="config">
+      FirehoseRequestOutput request-output.firehose
+      </highlight>
+    </example>
+</usage>
+
+</directivesynopsis>
+
+<directivesynopsis>
+
+<name>FirehoseProxyConnectionInput</name>
+<description>Capture le trafic entrant dans mod_proxy</description>
+<syntax>FirehoseProxyConnectionInput <var>[ block | nonblock ]</var> <var>filename</var></syntax>
+<default>none</default>
+<contextlist><context>server config</context></contextlist>
+<compatibility></compatibility>
+
+<usage>
+    <p>Capture le trafic re&ccedil;u par mod_proxy.</p>
+
+    <example><title>Exemple</title>
+    <highlight language="config">
+      FirehoseProxyConnectionInput proxy-input.firehose
+      </highlight>
+    </example>
+</usage>
+
+</directivesynopsis>
+
+<directivesynopsis>
+
+<name>FirehoseProxyConnectionOutput</name>
+<description>Capture le trafic envoy&eacute; par mod_proxy</description>
+<syntax>FirehoseProxyConnectionOutput <var>[ block | nonblock ]</var> <var>filename</var></syntax>
+<default>none</default>
+<contextlist><context>server config</context></contextlist>
+<compatibility>Disponible &agrave; partir de la version 2.5.0 du serveur HTTP
+Apache.</compatibility>
+
+<usage>
+    <p>Capture le trafic envoy&eacute; par mod_proxy.</p>
+
+    <example><title>Exemple</title>
+    <highlight language="config">
+      FirehoseProxyConnectionOutput proxy-output.firehose
+      </highlight>
+    </example>
+</usage>
+
+</directivesynopsis>
+
+</modulesynopsis>
index af0e693035c0c3b5dc42539586df94a8b285ead1..a4d9b0666662d1d5d56f7e7a67d68f0f10386de3 100644 (file)
@@ -8,5 +8,6 @@
 
   <variants>
     <variant>en</variant>
+    <variant>fr</variant>
   </variants>
 </metafile>
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..7a6025d
--- /dev/null
@@ -0,0 +1,1201 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
+<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
+<!-- English Revision : 1793934 -->
+<!-- French translation : Lucien GENTIS -->
+<!-- $LastChangedRevision: 2017050601 $ -->
+
+<!--
+ 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 &agrave; 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&egrave;que <a
+       href="http://nghttp2.org/">libnghttp2</a> pour impl&eacute;menter le
+       moteur de base http/2.</p>
+
+        <note type="warning"><title>Avertissement</title>
+          <p>Ce module en est au stade exp&eacute;rimental. Ses comportements,
+         directives et valeurs par d&eacute;faut sont susceptibles d'&eacute;voluer
+         au fur et &agrave; mesure de la parution de ses futures diff&eacute;rentes
+         versions en relation avec les autres modules standards. Les
+         utilisateurs sont fortement encourag&eacute;s &agrave; consulter le fichier
+         "CHANGES" pour les &eacute;ventuelles mises &agrave; jour.</p>
+        </note>
+
+        <p>Pour mettre en oeuvre les fonctionnalit&eacute;s d&eacute;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&eacute;gociation HTTP/2 (h2) via TLS ALPN au sein d'un
+       <directive module="core" type="section">VirtualHost</directive>
+       s&eacute;curis&eacute;. La v&eacute;rification du pr&eacute;ambule HTTP/2 (mode direct, voir
+       <directive module="mod_http2">H2Direct</directive>) est d&eacute;sactiv&eacute;e par
+       d&eacute;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&eacute;gociation HTTP/2 (h2) via TLS ALPN au sein d'un
+       <directive module="core" type="section">VirtualHost</directive>
+       s&eacute;curis&eacute;. Permet aussi une n&eacute;gociation HTTP/2 en texte pur (h2c) en
+       effectuant une mise &agrave; jour depuis une connexion initiale HTTP/1.1 ou via
+       une v&eacute;rification du pr&eacute;ambule HTTP/2 (mode direct, voir
+       <directive module="mod_http2">H2Direct</directive>).</p>
+        </note>
+
+        <p>Si vous avez besoin d'informations suppl&eacute;mentaires &agrave; propos du
+       protocole, veuillez vous reporter &agrave; la <a
+       href="https://http2.github.io/faq">HTTP/2 FAQ</a>.</p>
+
+
+    </summary>
+
+    <section id="how-it-works"><title>Comment &ccedil;a marche ?</title>
+
+    <section id="dimensioning"><title>Quantification des ressources
+    suppl&eacute;mentaires n&eacute;cessaires &agrave; 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&egrave;s actif, il est
+           conseill&eacute; d'en prendre s&eacute;rieusement en compte les implications.
+        </p>
+        <p>
+            HTTP/2 attribue &agrave; chaque requ&ecirc;te qu'il re&ccedil;oit son propre <em>thread
+           de travail</em> pour son traitement, la collecte des r&eacute;sultats et
+           l'envoie de ces derniers au client. Pour y parvenir, il lui faut
+           lancer des threads suppl&eacute;mentaires, et ceci constituera le premier
+           effet notable de l'activation de HTTP/2.
+        </p>
+        <p>
+           Dans l'impl&eacute;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 &ecirc;tes famili&eacute;. 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&eacute;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&eacute;s par <module>mod_status</module>. De m&ecirc;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&eacute;faut la valeur de <directive
+           module="mpm_common">ThreadsPerChild</directive> si vous n'avez pas
+           sp&eacute;cifi&eacute; d'autres valeurs via <directive
+           module="mod_http2">H2MinWorkers</directive> et <directive
+           module="mod_http2">H2MaxWorkers</directive>.
+        </p>
+        <p>
+            Autre changement &agrave; surveiller : la consommation de m&eacute;moire. En
+           effet, comme HTTP/2 conserve plus d'informations sur le serveur pour
+           g&eacute;rer toutes les requ&ecirc;tes en cours, leurs priorit&eacute;s et
+           interd&eacute;pendances, il aura toujours besoin de plus de m&eacute;moire que
+           pour un traitement en HTTP/1.1. Trois directives permettent de
+           limiter l'empreinte m&eacute;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&ecirc;tes simultan&eacute;es qu'un client peut envoyer sur une
+           connexion HTTP/2. La valeur que vous allez d&eacute;finir d&eacute;pend de votre
+           site. La valeur par d&eacute;faut qui est de 100 est largement suffisante,
+           et &agrave; moins que vous ne soyez un peu juste en m&eacute;moire, je vous
+           conseille de ne pas la modifier. La plupart des requ&ecirc;tes qu'envoie
+           un client sont des requ&ecirc;tes de type GET sans corps qui n'utilisent
+           que tr&egrave;s peu de m&eacute;moire en attendant le d&eacute;marrage du traitement.
+
+        </p>
+        <p>
+            La directive <directive module="mod_http2">H2WindowSize</directive>
+           permet de d&eacute;finir la taille maximale que peut avoir le corps d'une
+           requ&ecirc;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&eacute;
+           de donn&eacute;es que le serveur peut stocker dans son tampon, valable pour
+           une requ&ecirc;te.
+        </p>
+        <p>
+           En outre, la directive <directive
+           module="mod_http2">H2StreamMaxMemSize</directive> permet de d&eacute;finir
+           la quantit&eacute; de donn&eacute;es de la r&eacute;ponse qui doit &ecirc;tre mise en tampon.
+           Chaque requ&ecirc;te &eacute;tant prise en charge par un thread H2Worker et
+           produisant des donn&eacute;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&eacute;es assez rapidement, la connexion les mettra en tampon et
+           interrompra l'ex&eacute;cution du thread H2Worker correspondant.
+        </p>
+
+    </section>
+
+    <section id="misdirected"><title>Serveurs virtuels et requ&ecirc;tes mal
+    redirig&eacute;es</title>
+        <p>
+            De nombreux site utilisent le m&ecirc;me certificat TLS pour plusieurs
+           serveurs virtuels. Ce certificat r&eacute;f&eacute;rence un nom de serveur
+           g&eacute;n&eacute;rique comme '*.example.org' ou plusieurs noms de serveur
+           diff&eacute;rents. Les navigateurs qui utilisent HTTP/2 d&eacute;tectent ce
+           comportement et r&eacute;utilisent une connexion d&eacute;j&agrave; ouverte pour ces
+           serveurs.
+        </p>
+        <p>
+            Ceci am&eacute;liore consid&eacute;rablement les performances, mais il y a un prix
+           &agrave; payer : il faut accorder un soin tout particulier &agrave; la
+           configuration de tels serveurs virtuels. Le probl&egrave;me r&eacute;side dans le
+           fait que plusieurs requ&ecirc;tes pour plusieurs serveurs virtuels vont se
+           partager la m&ecirc;me connexion TLS, et ceci emp&ecirc;che toute ren&eacute;gociation
+           car le standard HTTP/2 l'interdit.
+        </p>
+        <p>
+            Ainsi, lorsque plusieurs de vos serveurs virtuels utilisent le m&ecirc;me
+           certificat et si vous souhaitez utiliser HTTP/2 pour y acc&eacute;der, vous
+           devez vous assurer que tous vos serveurs virtuels poss&egrave;dent
+           exactement la m&ecirc;me configuration SSL. En particulier, ils doivent
+           utiliser les m&ecirc;mes protocole, algorithme de chiffrement et
+           configuration pour la v&eacute;rification du client.
+        </p>
+        <p>
+           Dans le cas contraire, Apache httpd le d&eacute;tectera et renverra au
+           client un code de r&eacute;ponse sp&eacute;cial, 421 Misdirected Request.
+        </p>
+    </section>
+
+    <section id="envvars"><title>Variables d'environnement</title>
+
+        <p>Ce module peut &ecirc;tre configur&eacute; pour fournir des informations en
+       rapport avec HTTP/2 sous la forme de variables d'environnement
+       suppl&eacute;mentaires dans l'espace de nommage SSI et CGI, ainsi que dans les
+       configurations personnalis&eacute;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&eacute;.</td></tr>
+            <tr><td><code>H2PUSH</code></td><td>drapeau</td><td>La
+           fonctionnalit&eacute; HTTP/2 Server Push est activ&eacute;e pour cette requ&ecirc;te et
+           support&eacute;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&icirc;ne</td><td>vide ou
+           <code>PUSHED</code> pour une requ&ecirc;te push&eacute;e par le serveur.</td></tr>
+            <tr><td><code>H2_PUSHED_ON</code></td><td>nombre</td><td>num&eacute;ro du
+           flux HTTP/2 qui a d&eacute;clench&eacute; le push de cette requ&ecirc;te.</td></tr>
+            <tr><td><code>H2_STREAM_ID</code></td><td>nombre</td><td>num&eacute;ro du
+           flux HTTP/2 de cette requ&ecirc;te.</td></tr>
+            <tr><td><code>H2_STREAM_TAG</code></td><td>cha&icirc;ne</td><td>identifiant
+           de flux unique du processus HTTP/2 compos&eacute; de l'identifiant de la
+           connexion et de l'identifiant du flux s&eacute;par&eacute;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&eacute;sactiver
+               l'utilisation du mode HTTP/2 Direct. Elle doit &ecirc;tre
+               situ&eacute;e dans une section <directive module="core"
+               type="section">VirtualHost</directive> afin d'activer la
+               communication directe HTTP/2 pour le serveur virtuel
+               consid&eacute;r&eacute;.
+            </p>
+            <p>
+                La notion de communication directe signifie que si les
+               premiers octets re&ccedil;us par le serveur correspondent &agrave; un
+               en-t&ecirc;te HTTP/2, le protocole HTTP/2 est utilis&eacute; sans
+               n&eacute;gociation suppl&eacute;mentaire. Ce mode est d&eacute;fini pour
+               les transmissions en clair (h2c) dans la RFC 7540. Son
+               utilisation avec les connexions TLS n'est pas
+               officiellement support&eacute;e.
+            </p>
+            <p>
+                Lorsque le protocole h2 ou h2c n'est pas activ&eacute; via la
+               directive <directive module="core">Protocols</directive>, la recherche d'un en-t&ecirc;te HTTP/2 n'est
+               jamais effectu&eacute;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&icirc;ner un
+               blocage d&eacute;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 &agrave; jour HTTP/1.1, ce qui entra&icirc;ne une am&eacute;lioration
+               des performances et &eacute;vite les restrictions sur les corps
+               de requ&ecirc;te suite &agrave; une mise &agrave; jour.
+            </p>
+            <p>
+                Cette directive rend aussi h2c plus attractif pour les
+               communications de serveur &agrave; serveur lorsque la connexion
+               est sure ou peut &ecirc;tre s&eacute;curis&eacute;e d'une mani&egrave;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&eacute;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 &agrave; partir de la version 2.4.18 du serveur HTTP
+       Apache.</compatibility>
+
+        <usage>
+            <p>
+                Cette directive permet d'activer/d&eacute;sactiver
+               l'utilisation de la fonctionnalit&eacute; server push du
+               protocole HTTP/2.
+            </p>
+            <p>
+                Lorsqu'un client demande une ressource particuli&egrave;re, le
+               protocole HTTP/2 permet au serveur de lui fournir des
+               ressources suppl&eacute;mentaires. Ceci s'av&egrave;re utile lorsque
+               ces ressources sont reli&eacute;es entre elles, ce qui peut
+               laisser supposer que le client va probablement les
+               demander dans un d&eacute;lai plus ou moins long. Le m&eacute;canisme
+               de pushing permet alors au client d'&eacute;conomiser le temps
+               qu'il lui aurait fallu pour demander ces ressources
+               suppl&eacute;mentaires lui-m&ecirc;me. Par contre, fournir au client
+               des ressources dont il n'a pas besoin ou qu'il poss&egrave;de
+               d&eacute;j&agrave; constitue une perte de bande passante.
+            </p>
+            <p>
+                Les server pushes sont d&eacute;tect&eacute;s en inspectant les
+               en-t&ecirc;tes <code>Link</code> des r&eacute;ponses (voir
+               https://tools.ietf.org/html/rfc5988 pour la
+               sp&eacute;cification). Lorsqu'un lien sp&eacute;cifi&eacute; de cette mani&egrave;re
+               poss&egrave;de l'attribut <code>rel=preload</code>, il est
+               consid&eacute;r&eacute; comme devant faire l'objet d'un push.
+            </p>
+            <p>
+                Les en-t&ecirc;tes link des r&eacute;ponses sont soit d&eacute;finis par
+               l'application, soit configur&eacute;s via
+               <module>mod_headers</module> comme suit :
+            </p>
+            <example><title>Exemple de configuration d'en-t&ecirc;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&ecirc;tes link que l'on souhaite &agrave; une r&eacute;ponse, ce qui d&eacute;clenchera
+               autant de pushes. Cette fonctionnalit&eacute; doit donc &ecirc;tre
+               utilis&eacute;e avec prudence car le module ne v&eacute;rifie pas si
+               une ressource n'a pas d&eacute;j&agrave; &eacute;t&eacute; "push&eacute;e" vers un client.
+            </p>
+            <p>
+                Les server pushes HTTP/2 sont activ&eacute;s par d&eacute;faut. Cette
+               directive permet de d&eacute;sactiver cette fonctionnalit&eacute; pour
+               le serveur virtuel ou non consid&eacute;r&eacute;.
+            </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&eacute;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&ecirc;me <em>autorit&eacute;</em> que celle de la
+               r&eacute;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 &agrave; partir de la version 2.4.19 du serveur HTTP
+       Apache.</compatibility>
+
+        <usage>
+            <p>
+                Cette directive permet de d&eacute;finir le nombre maximum de pushes
+               qui seront enregistr&eacute;s pour une connexion HTTP/2. Elle peut &ecirc;tre
+               plac&eacute;e dans une section <directive module="core"
+               type="section">VirtualHost</directive> afin de d&eacute;finir le nombre
+               de pushes pour le serveur virtuel consid&eacute;r&eacute;.
+            </p>
+            <p>
+                Le journal des pushes enregistre un condens&eacute; (sous la forme d'un
+               nombre de 64 bits) des ressources pr&eacute;charg&eacute;es (leurs URLs) afin
+               d'&eacute;viter les duplications de pushes pour une m&ecirc;me connexion.
+               Cependant, ces donn&eacute;es ne sont pas conserv&eacute;es, et les clients
+               qui ouvrent une nouvelle connexion se verront &agrave; nouveau affecter les
+               m&ecirc;mes pushes. A ce titre, une &eacute;tude est en cours pour permettre
+               au client de supprimer le condens&eacute; des ressources qu'il poss&egrave;de
+               d&eacute;j&agrave;, et par l&agrave;-m&ecirc;me de r&eacute;initialiser le journal des pushes &agrave;
+               chaque nouvelle connexion.
+            </p>
+            <p>
+                Si la taille maximale est atteinte, les nouvelles entr&eacute;es
+               remplacent les plus anciennes. Une entr&eacute;e du journal n&eacute;cessitant
+               8 octets, un journal de 256 entr&eacute;es consomme 2 Ko de m&eacute;moire.
+            </p>
+            <p>
+                Si cette directive est d&eacute;finie &agrave; 0, le journal des pushes est
+               d&eacute;sactiv&eacute;.
+            </p>
+        </usage>
+    </directivesynopsis>
+
+    <directivesynopsis>
+        <name>H2PushPriority</name>
+        <description>Priorit&eacute; 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 &agrave; partir de la version 2.4.18 du serveur HTTP
+       Apache. N&eacute;cessite la biblioth&egrave;que nghttp2 version 1.5.0 ou sup&eacute;rieure.</compatibility>
+
+        <usage>
+            <p>
+                Cette directive permet de d&eacute;finir une gestion de priorit&eacute; des
+               pushes en fonction du type de contenu de la r&eacute;ponse. Elle est en
+               g&eacute;n&eacute;ral d&eacute;finie au niveau du serveur principal, mais peut aussi
+               l'&ecirc;tre au niveau d'un serveur virtuel.
+            </p>
+            <p>
+                Les pushes HTTP/2 sont toujours li&eacute;s &agrave; une requ&ecirc;te client.
+               Chaque paire requ&ecirc;te/r&eacute;ponse de cette sorte, ou <em>flux</em>,
+               poss&egrave;de une d&eacute;pendance et un poids qui d&eacute;finissent la
+               <em>priorit&eacute;</em> du flux.
+            </p>
+            <p>
+                Lorsqu'un flux <em>d&eacute;pend</em> d'un autre, disons X d&eacute;pend de Y,
+               alors Y re&ccedil;oit toute la bande passante avant que X n'en re&ccedil;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&eacute;e &agrave; envoyer,
+               toute la bande passante qui lui est allou&eacute;e peut &ecirc;tre utilis&eacute;e
+               par X.
+            </p>
+            <p>
+                Lorsque plusieurs flux d&eacute;pendent d'un m&ecirc;me autre flux, disons X1
+               et X2 d&eacute;pendent tous deux de Y, le <em>poids</em> d&eacute;termine la
+               bande passante allou&eacute;e. Ainsi, si X1 et X2 poss&egrave;dent le m&ecirc;me
+               poids, ils recevront tous deux la moiti&eacute; de la bande passante
+               disponible. Si le poids de X1 est &eacute;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&eacute;pend du flux <em>racine</em> qui
+               re&ccedil;oit toute la bande passante disponible mais n'envoie jamais
+               de donn&eacute;es. Cette bande passante est ainsi r&eacute;partie entre les flux
+               enfants selon leur poids. Ces derniers l'utilisent alors pour
+               envoyer leurs donn&eacute;es ou pour la r&eacute;partir entre leurs propres
+               flux enfants, et ainsi de suite. Si aucun des flux enfants n'a
+               de donn&eacute;es &agrave; envoyer, la bande passante est attribu&eacute;e &agrave; d'autres
+               flux selon les m&ecirc;mes r&egrave;gles.
+            </p>
+            <p>
+                Ce syst&egrave;me de priorit&eacute;s a &eacute;t&eacute; con&ccedil;u de fa&ccedil;on a toujours pouvoir
+               utiliser la bande passante disponible tout en d&eacute;finissant des
+               priorit&eacute;s et en attribuant des poids aux diff&eacute;rents flux. Ainsi,
+               tous les flux sont en g&eacute;n&eacute;ral initialis&eacute;s par le client qui
+               lui-m&ecirc;me d&eacute;finit les priorit&eacute;s.
+            </p>
+            <p>
+                Seul le fait de savoir qu'un flux implique un PUSH permet au
+               serveur de d&eacute;cider quelle est la priorit&eacute; <em>initiale</em> d'un
+               tel flux. Dans les exemples ci-dessous, X est le flux client. Il
+               d&eacute;pend de Y et le serveur d&eacute;cide de "PUSHer" les flux P1 et P2
+               sur X.
+            </p>
+            <p>
+                La r&egrave;gle de priorit&eacute; par d&eacute;faut est :
+            </p>
+            <example><title>R&egrave;gle de priorit&eacute; par d&eacute;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&eacute;pendant du flux client avec le poids 16". P1 et
+               P2 seront alors envoy&eacute;s apr&egrave;s X, et comme leurs poids sont
+               identiques, il se verront allouer la m&ecirc;me quantit&eacute; de bande
+               passante.
+            </p>
+            <example><title>R&egrave;gle de priorit&eacute; entrelac&eacute;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&ecirc;me d&eacute;pendance et avec le m&ecirc;me poids que le flux client". Si le
+               type de contenu de P1 est "text/css", il d&eacute;pendra de Y (comme X)
+               et son poids effectif sera calcul&eacute; selon la formule : <code>P1ew
+               = Xw * (P1w / 256)</code>. Si P1w est de 256, Le poids effectif
+               de P1 sera le m&ecirc;me que celui de X. Si X et P1 ont des donn&eacute;es &agrave;
+               envoyer, il se verront allouer la m&ecirc;me quantit&eacute; de bande
+               passante.
+            </p>
+            <p>
+                Avec un Pw de 512, un flux entrelac&eacute; et PUSH&eacute; aura un poids
+               double de celui de X. Avec un poids de 128, son poids ne sera
+               que la moiti&eacute; de celui de X. Notez que les poids effectifs sont
+               toujours plafonn&eacute;s &agrave; 256.
+
+            </p>
+            <example><title>R&egrave;gle de priorit&eacute; Before</title>
+                <highlight language="config">
+                    H2PushPriority application/json Before
+                </highlight>
+            </example>
+            <p>
+                Dans cet exemple, tout flux PUSH&eacute; dont le contenu est de type
+               'application/json' sera envoy&eacute; <em>avant</em> X, ce qui rend P1
+               d&eacute;pendant de Y et X d&eacute;pendant de P1. Ainsi, X sera mis en
+               attente aussi longtemps que P1 aura des donn&eacute;es &agrave; envoyer. Le
+               poids effectif est h&eacute;rit&eacute; du flux client, et l'attribution d'un
+               poids sp&eacute;cifique n'est pas autoris&eacute;e.
+            </p>
+            <p>
+                Vous devez garder &agrave; l'esprit que les sp&eacute;cifications en mati&egrave;re
+               de priorit&eacute;s sont limit&eacute;es par les ressources disponibles du
+               serveur. Si un serveur ne dispose d'aucun processus/thread de
+               travail pour les flux PUSH&eacute;s, les donn&eacute;es du flux consid&eacute;r&eacute; ne
+               seront envoy&eacute;es que lorsque les autres flux auront termin&eacute;
+               l'envoi des leurs.
+            </p>
+            <p>
+                Enfin et surtout, il convient de tenir compte de certaines
+               particularit&eacute;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&eacute;pendance par d&eacute;faut est 'After'.</li>
+                <li>Il existe aussi des poids par d&eacute;faut : pour 'After' le poids
+               est de 16, alors que pour 'interleaved' il est de 256.
+                </li>
+            </ol>
+            <example><title>Exemples de r&egrave;gles</title>
+                <highlight language="config">
+H2PushPriority application/json 32         # une r&egrave;gle de priorit&eacute; 'After'
+H2PushPriority image/jpeg before           # poid h&eacute;rit&eacute;
+H2PushPriority text/css   interleaved      # poids de 256 par d&eacute;faut
+                </highlight>
+            </example>
+         </usage>
+     </directivesynopsis>
+
+    <directivesynopsis>
+        <name>H2Upgrade</name>
+        <description>Activation/D&eacute;sactivation du protocole de mise &agrave; 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&eacute;sactiver l'utilisation de la
+               m&eacute;thode de mise &agrave; jour pour passer de HTTP/1.1 &agrave; HTTP/2. Elle
+               doit &ecirc;tre plac&eacute;e dans une section <directive module="core"
+               type="section">VirtualHost</directive> afin d'activer la mise &agrave;
+               jour vers HTTP/2 pour le serveur virtuel consid&eacute;r&eacute;.
+            </p>
+            <p>
+                Cette m&eacute;thode de changement de protocole est d&eacute;finie dans
+               HTTP/1.1 et utilise l'en-t&ecirc;te "Upgrade" (d'o&ugrave; son nom) pour
+               indiquer l'intention d'utiliser un autre protocole. Cet en-t&ecirc;te
+               peut &ecirc;tre pr&eacute;sent dans toute requ&ecirc;te sur une connexion HTTP/1.1.
+            </p>
+            <p>
+                Elle activ&eacute;e par d&eacute;faut pour les transmissions en clair
+               (h2c), et d&eacute;sactiv&eacute;e avec TLS (h2), comme pr&eacute;conis&eacute; par la RFC
+               7540.
+            </p>
+            <p>
+                Sachez cependant que les mises &agrave; jour ne sont accept&eacute;es que pour
+               les requ&ecirc;tes qui ne poss&egrave;dent pas de corps. Le requ&ecirc;tes de type
+               POST et PUT avec un contenu ne feront jamais l'objet d'une mise
+               &agrave; jour vers HTTP/2. Se r&eacute;f&eacute;rer &agrave; la documentation de la
+               directive <directive module="mod_http2">H2Direct</directive> pour
+               envisager une alternative &agrave; Upgrade.
+            </p>
+            <p>
+                Cette directive n'a d'effet que si h2 ou h2c est activ&eacute; 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&eacute;finir le nombre maximal de flux
+               actifs par session (connexion) HTTP/2 accept&eacute; par le serveur.
+               Selon la RFC 7540, un flux est consid&eacute;r&eacute; comme actif s'il n'est
+               ni <code>en attente</code> ni <code>ferm&eacute;</code>.
+            </p>
+            <example><title>Exemple</title>
+                <highlight language="config">
+                    H2MaxSessionStreams 20
+                </highlight>
+            </example>
+        </usage>
+    </directivesynopsis>
+
+    <directivesynopsis>
+        <name>H2StreamMaxMemSize</name>
+        <description>Quantit&eacute; maximale de donn&eacute;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&eacute;finir la quantit&eacute; maximale de
+               donn&eacute;es en sortie mises en tampon m&eacute;moire pour un flux actif. Ce
+               tampon m&eacute;moire n'est pas allou&eacute; pour chaque flux en tant que
+               tel. Les quantit&eacute;s de m&eacute;moire sont d&eacute;finies en fonction de
+               cette limite lorsqu'elles sont sur le point d'&ecirc;tre allou&eacute;es. Le
+               flux s'arr&ecirc;te lorsque la limite a &eacute;t&eacute; atteinte, et ne reprendra
+               que lorsque les donn&eacute;es du tampon auront &eacute;t&eacute; 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&eacute;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&eacute;finir la taille maximale des paquets
+               de donn&eacute;es envoy&eacute;s par le client au serveur, et
+               limite la quantit&eacute; de donn&eacute;es que le serveur doit mettre en
+               tampon. Le client arr&ecirc;tera d'envoyer des donn&eacute;es sur un flux
+               lorsque cette limite sera atteinte jusqu'&agrave; ce que le serveur
+               indique qu'il dispose d'un espace suffisant (car il aura trait&eacute;
+               une partie des donn&eacute;es).
+            </p><p>
+                Cette limite n'affecte que les corps de requ&ecirc;tes, non les
+               m&eacute;tadonn&eacute;es comme les en-t&ecirc;tes. Par contre, elle n'affecte pas
+               les corps de r&eacute;ponses car la taille maximale de ces derniers est
+               g&eacute;r&eacute;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 &agrave; 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&eacute;finir le nombre minimal de threads &agrave;
+               lancer pour le traitement HTTP/2 de chaque processus enfant. Si
+               cette directive n'est pas d&eacute;finie, <module>mod_http2</module>
+               choisira une valeur appropri&eacute;e en fonction du module <code>mpm</code>
+               utilis&eacute;.
+            </p>
+            <example><title>Exemple</title>
+                <highlight language="config">
+                    H2MinWorkers 10
+                </highlight>
+            </example>
+        </usage>
+    </directivesynopsis>
+
+    <directivesynopsis>
+        <name>H2MaxWorkers</name>
+        <description>Nombre maximal de threads &agrave; 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&eacute;finir le nombre maximal de threads &agrave;
+               lancer pour le traitement HTTP/2 de chaque processus enfant. Si
+               cette directive n'est pas d&eacute;finie, <module>mod_http2</module>
+               choisira une valeur appropri&eacute;e en fonction du module <code>mpm</code>
+               utilis&eacute;.
+
+               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&eacute; de
+       traitement h2 pourra rester inactive sans &ecirc;tre arr&ecirc;t&eacute;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&eacute;finir le nombre maximal de secondes
+               pendant lequel une unit&eacute; de traitement h2 pourra rester inactive
+               avant de s'arr&ecirc;ter elle-m&ecirc;me. Cet arr&ecirc;t ne peut cependant se
+               produire que si le nombre d'unit&eacute;s de traitement h2 d&eacute;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&eacute;sactive la s&eacute;rialisation du traitement des
+       requ&ecirc;tes/r&eacute;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&eacute;finir si les requ&ecirc;tes HTTP/2 doivent
+               &ecirc;tre s&eacute;rialis&eacute;es au format HTTP/1.1 pour &ecirc;tre trait&eacute;es par le
+               noyau de <code>httpd</code>, ou si les donn&eacute;es binaires re&ccedil;ues
+               doivent &ecirc;tre pass&eacute;es directement aux <code>request_rec</code>s.
+            </p>
+            <p>
+                La s&eacute;rialisation d&eacute;grade les performances, mais garantit une
+               meilleure compatibilit&eacute; ascendante lorsque des filtres ou
+               programmes accroche personnalis&eacute;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 &agrave; partir de la version 2.4.18 du serveur HTTP
+       Apache.</compatibility>
+
+        <usage>
+            <p>
+                Cette directive permet de d&eacute;finir si les v&eacute;rifications de
+               s&eacute;curit&eacute; sur les connexions HTTP/2 doivent &ecirc;tre exclusivement en
+               mode TLS (https:). Elle peut &ecirc;tre plac&eacute;e au niveau du serveur
+               principal ou dans une section <directive module="core"
+               type="section">VirtualHost</directive>.
+            </p>
+            <p>
+                Les v&eacute;rifications de s&eacute;curit&eacute; n&eacute;cessitent TLSv1.2 au minimum et
+               l'absence de tout algorithme de chiffrement list&eacute; dans la RFC
+               7540, Appendix A. Ces v&eacute;rifications seront &eacute;tendues lorsque de
+               nouveaux pr&eacute;requis en mati&egrave;re de s&eacute;curit&eacute; seront mis en place.
+            </p>
+            <p>
+                Le nom provient des d&eacute;finitions Mozilla <a
+               href="https://wiki.mozilla.org/Security/Server_Side_TLS">Security/Server
+               Side TLS</a> o&ugrave; 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&egrave;re de s&eacute;curit&eacute; op&eacute;rationnelle, c'est une cible mouvante
+               susceptible d'&eacute;voluer dans le futur.
+            </p>
+            <p>
+                Un des buts de ces v&eacute;rifications dans <module>mod_http2</module> tend &agrave; imposer
+               ce niveau de s&eacute;curit&eacute; 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&eacute;gociations si les pr&eacute;requis ne sont pas respect&eacute;s.
+            </p>
+            <p>
+                En fin de compte, la s&eacute;curit&eacute; de la connexion TLS est d&eacute;termin&eacute;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 &agrave; partir de la version 2.4.18 du serveur HTTP
+       Apache.</compatibility>
+
+        <usage>
+            <p>
+                Cette directive permet de d&eacute;finir le nombre d'octets &agrave; 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 &ecirc;tre d&eacute;finie au niveau du serveur
+               principal ou pour des <directive module="core"
+               type="section">Serveurs virtuels</directive> sp&eacute;cifiques.
+            </p>
+            <p>
+                Les mesures effectu&eacute;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&ccedil;a du niveau du MTU afin de permettre
+               &agrave; la totatlit&eacute; d'un enregistrement d'entrer dans un paquet IP.
+            </p>
+            <p>
+                Comme TCP ajuste son contr&ocirc;le de flux et sa taille de fen&ecirc;tre,
+               des enregistrements TLS trop longs peuvent rester en file
+               d'attente ou m&ecirc;me &ecirc;tre perdus et devoir alors &ecirc;tre r&eacute;&eacute;mis. Ceci
+               est bien entendu vrai pour tous les paquets ; cependant, TLS a
+               besoin de la totalit&eacute; de l'enregistrement pour pouvoir le
+               d&eacute;chiffrer. Tout octet manquant rendra impossible l'utilisation
+               de ceux qui ont &eacute;t&eacute; re&ccedil;us.
+            </p>
+            <p>
+                Lorqu'un nombre suffisant d'octets a &eacute;t&eacute; transmis avec succ&egrave;s,
+               la connexion TCP est stable, et la taille maximale (16 ko) des
+               enregistrements TLS peut &ecirc;tre utilis&eacute;e pour des performances
+               optimales.
+            </p>
+            <p>
+                Dans les architectures o&ugrave; les serveurs sont atteints par des
+               machines locales ou pour les connexions de confiance seulement,
+               la valeur de cette directive peut &ecirc;tre d&eacute;finie &agrave; 0, ce qui a
+               pour effet de d&eacute;sactiver la "phase de chauffage".
+            </p>
+            <p>
+                Dans l'exemple suivant, la phase de chauffage est effectivement
+               d&eacute;sactiv&eacute;e en d&eacute;finissant la directive &agrave; 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 &agrave; partir de la version 2.4.18 du serveur HTTP
+       Apache.</compatibility>
+
+        <usage>
+            <p>
+                Cette directive permet de sp&eacute;cifier le nombre de secondes avant
+               lequel une connexion TLS inactive va diminuer
+               la taille des paquets de donn&eacute;es &agrave; une valeur inf&eacute;rieure (~1300
+               octets). Elle peut &ecirc;tre d&eacute;finie au niveau du serveur principal
+               ou pour un <directive module="core" type="section">serveur
+               virtuel</directive> sp&eacute;cifique.
+            </p>
+            <p>
+                Voir la directive <directive module="mod_http2">H2TLSWarmUpSize</directive> pour une description
+               du "pr&eacute;chauffage" de TLS. La directive <directive>H2TLSCoolDownSecs</directive> met en
+               lumi&egrave;re le fait que les connexions peuvent se d&eacute;t&eacute;riorer au bout
+               d'un certain temps (et au fur et &agrave; mesure des corrections du
+               flux TCP), et cela m&ecirc;me si elle sont inactives. Pour ne pas
+               d&eacute;t&eacute;riorer les performances d'une mani&egrave;re g&eacute;n&eacute;rale, il est par
+               cons&eacute;quent pr&eacute;f&eacute;rable de revenir &agrave; la phase de pr&eacute;chauffage
+               lorsqu'aucune donn&eacute;e n'a &eacute;t&eacute; transmise pendant un certain nombre
+               de secondes.
+            </p>
+            <p>
+                Dans les situations o&ugrave; les connexions peuvent &ecirc;tre consid&eacute;r&eacute;es
+               comme fiables, ce d&eacute;lai peut &ecirc;tre d&eacute;sactiv&eacute; en d&eacute;finissant cette
+               directive &agrave; 0.
+            </p>
+            <p>
+                Dans l'exemple suivant, la directive est d&eacute;finie &agrave; 0, ce qui
+               d&eacute;sactive tout retour &agrave; une phase de pr&eacute;chauffage des connexions
+               TLS. Les connexions TLS d&eacute;j&agrave; pr&eacute;chauff&eacute;es conservent donc toujours
+               leur taille de paquet de donn&eacute;es maximale.
+            </p>
+            <example><title>Exemple</title>
+                <highlight language="config">
+                    H2TLSCoolDownSecs 0
+                </highlight>
+            </example>
+        </usage>
+    </directivesynopsis>
+
+    <directivesynopsis>
+        <name>H2Timeout</name>
+        <description>D&eacute;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 &agrave; partir de la version 2.4.19 du serveur HTTP
+       Apache.</compatibility>
+
+        <usage>
+            <p>
+                Cette directive permet de d&eacute;finir un d&eacute;lai pour les op&eacute;rations
+               de lecture/&eacute;criture lorsqu'une connexion HTTP/2 a &eacute;t&eacute;
+               n&eacute;goci&eacute;e. Elle peut &ecirc;tre d&eacute;finie pour l'ensemble du serveur ou
+               pour un <directive module="core" type="section">serveur
+               virtuel</directive> sp&eacute;cifique.
+            </p>
+            <p>
+                Elle est similaire &agrave; 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&eacute;lai n'est impos&eacute;.
+            </p>
+        </usage>
+    </directivesynopsis>
+
+    <directivesynopsis>
+        <name>H2KeepAliveTimeout</name>
+        <description>Dur&eacute;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 &agrave; partir de la version 2.4.19 du serveur HTTP
+       Apache.</compatibility>
+
+        <usage>
+            <p>
+                Cette directive permet de d&eacute;finir la dur&eacute;e de vie des connexions
+               HTTP/2 inactives. Sa port&eacute;e peut s'&eacute;tendre &agrave; l'ensemble du
+               serveur, ou seulement &agrave; un <directive module="core"
+               type="section">VirtualHost</directive> sp&eacute;cifique.
+            </p>
+            <p>
+                Cette directive est &eacute;quivalente &agrave; 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&eacute;r&eacute;e comme inactive lorsqu'aucun flux n'est
+               ouvert, autrement dit lorsqu'aucune requ&ecirc;te n'est sur le point
+               d'&ecirc;tre trait&eacute;e.
+            </p>
+            <p>
+                Pour les MPMs non-asynch (prefork, worker), la dur&eacute;e de vie
+               sera par d&eacute;faut &eacute;gale &agrave; H2Timeout. Pour les MPMs async, il
+               semble qu'aucune action ne soit &agrave; entreprendre pour la dur&eacute;e de
+               vie des connexions HTTP/1.
+            </p>
+        </usage>
+    </directivesynopsis>
+
+    <directivesynopsis>
+        <name>H2StreamTimeout</name>
+        <description>Dur&eacute;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 &agrave; partir de la version 2.4.19 du serveur HTTP
+       Apache.</compatibility>
+
+        <usage>
+            <p>
+               Cette directive permet de d&eacute;finir la dur&eacute;e de vie des flux
+               HTTP/2 pour les requ&ecirc;tes individuelles. Sa port&eacute;e peut s'&eacute;tendre
+               &agrave; l'ensemble du serveur, ou seulement &agrave; un <directive
+               module="core" type="section">VirtualHost</directive> sp&eacute;cifique
+            </p>
+            <p>
+                De par la nature de HTTP/2 qui transmet plusieurs requ&ecirc;tes sur
+               une seule connexion et g&egrave;re une planification des priorit&eacute;s, les
+               flux individuels ne sont pas susceptibles de recevoir des
+               donn&eacute;es en entr&eacute;e beaucoup plus longtemps qu'une connexion
+               HTTP/1.1.
+            </p>
+            <p>
+                Si cette directive est d&eacute;finie &agrave; 0, la dur&eacute;e de vie des flux
+               HTTP/2 n'a aucune limite, et il peuvent attendre ind&eacute;finiment
+               l'arriv&eacute;e de donn&eacute;es &agrave; lire ou &eacute;crire. Cela expose cependant le
+               serveur &agrave; atteindre sa limite en nombre de threads.
+            </p>
+            <p>
+                Un site peut n&eacute;cessiter une augmentation de cette valeur en
+               fonction de votre gestion des flux PUSH&eacute;s, des priorit&eacute;s et de
+               la r&eacute;activit&eacute; g&eacute;n&eacute;rale. Par exemple, si vous PUSHez une
+               ressource de taille importante <em>avant</em> celle qui a fait
+               l'objet d'une requ&ecirc;te, le flux initiale n'effectuera aucune
+               &eacute;criture jusqu'&agrave; ce que la ressource PUSH&eacute;e ne soit envoy&eacute;e dans
+               son int&eacute;gralit&eacute;.
+            </p>
+        </usage>
+    </directivesynopsis>
+
+    <directivesynopsis>
+        <name>H2CopyFiles</name>
+        <description>Contr&ocirc;le la gestion des fichiers dans les r&eacute;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>
+       <override>FileInfo</override>
+        <compatibility>Disponible &agrave; partir de la version 2.4.24 du serveur HTTP
+       Apache.</compatibility>
+
+        <usage>
+            <p>
+                Cette directive permet de d&eacute;finir la mani&egrave;re de g&eacute;rer les
+               contenus de fichiers dans les r&eacute;ponses. Lorsqu'elle est &agrave; <code>off</code>
+               (sa valeur par d&eacute;faut), les descripteurs de fichiers sont
+               transmis par le processus de traitement de la requ&ecirc;te vers la
+               connexion principale en utilisant le syst&egrave;me habituel de mise en
+               r&eacute;serve d'Apache pour g&eacute;rer le dur&eacute;e de vie du fichier.
+            </p>
+            <p>
+                Lorsqu'elle est &agrave; <code>on</code>, le contenu du fichier est
+               recopier pendant le traitement de la requ&ecirc;te et ces donn&eacute;es
+               mises en tampon sont transmises vers la connexion principale, ce
+               qui s'av&egrave;re avantageux lorsqu'un module tiers injecte dans la
+               r&eacute;ponse des fichiers poss&eacute;dant des dur&eacute;es de vie diff&eacute;rentes.
+            </p>
+            <p>
+                Un exemple de ces modules tiers : <code>mod_wsgi</code> qui peut
+               injecter des descripteurs de fichiers dans la r&eacute;ponse. Ces
+               fichiers sont ferm&eacute;s lorsque Python estime que le traitement est
+               termin&eacute;, 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&eacute;clare des ressources &agrave; 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>
+       <override>FileInfo</override>
+        <compatibility>Disponible &agrave; partir de la version 2.4.24 du serveur HTTP
+       Apache.</compatibility>
+
+        <usage>
+            <p>
+                Lorsqu'il sont activ&eacute;s pour un r&eacute;pertoire, les PUSHes HTTP/2 seront
+               tent&eacute;s pour tous les chemins ajout&eacute;s via cette directive. Cette
+               derni&egrave;re peut &ecirc;tre utilis&eacute;e plusieurs fois pour le m&ecirc;me
+               r&eacute;pertoire.
+            </p>
+            <p>
+                Cette directive propose des ressources beaucoup plus t&ocirc;t que les
+               en-t&ecirc;tes <code>Link</code> de <module>mod_headers</module>.
+               <module>mod_http2</module> pr&eacute;sente ces ressources au client via
+               une r&eacute;ponse interm&eacute;diaire <code>103 Early Hints</code>. Ceci
+               implique que les clients qui ne supportent pas PUSH recevront
+               quand-m&ecirc;me rapidement des propositions de pr&eacute;chargement.
+            </p>
+            <p>
+                A la diff&eacute;rence de la d&eacute;finition d'en-t&ecirc;tes de r&eacute;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> &agrave; une telle
+               ressource, le serveur la traitera prioritairement, et une fois
+               les donn&eacute;es disponibles, ces derni&egrave;res seront envoy&eacute;es avant les
+               donn&eacute;es de la requ&ecirc;te principale.
+            </p>
+        </usage>
+    </directivesynopsis>
+
+    <directivesynopsis>
+        <name>H2EarlyHints</name>
+        <description>Contr&ocirc;le l'envoi de codes d'&eacute;tat 103</description>
+        <syntax>H2EarlyHints on|off</syntax>
+        <default>H2EarlyHints off</default>
+        <contextlist>
+            <context>server config</context>
+            <context>virtual host</context>
+        </contextlist>
+        <compatibility>Disponible &agrave; partir de la version 2.4.24 du serveur HTTP
+       Apache.</compatibility>
+
+        <usage>
+            <p>
+                Cette directive permet de d&eacute;finir si les r&eacute;ponses interm&eacute;diaires
+               contenant un code d'&eacute;tat HTTP 103 doivent &ecirc;tre envoy&eacute;es au
+               client ou non. Par d&eacute;faut ce n'est actuellement pas le cas car
+               certains clients ont encore des probl&egrave;mes avec les r&eacute;ponses
+               interm&eacute;diaires inattendues.
+            </p>
+            <p>
+                Lorsque cette directive est d&eacute;finie &agrave; <code>on</code>, les
+               ressources PUSH&eacute;es d&eacute;finie par la directive
+               <code>H2PushResource</code> d&eacute;clenchent une r&eacute;ponse
+               interm&eacute;diaire 103 avant la r&eacute;ponse finale. Cette r&eacute;ponse 103
+               comporte des en-t&ecirc;tes <code>Link</code> qui provoquent le
+               <code>pr&eacute;chargement</code> des ressources consid&eacute;r&eacute;es.
+            </p>
+        </usage>
+    </directivesynopsis>
+
+</modulesynopsis>
index 500e9da4cb1929083601f190a23b0216ca5d96df..0e02fed5055f9fe9ed3426a14d45aa8ee9348c09 100644 (file)
@@ -8,5 +8,6 @@
 
   <variants>
     <variant>en</variant>
+    <variant>fr</variant>
   </variants>
 </metafile>