<?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: 1850544 -->
<!-- French translation : Lucien GENTIS -->

<!--
 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>Experimental</status>
<sourcefile>mod_proxy_http2.c</sourcefile>
<identifier>proxy_http2_module</identifier>
<compatibility>Disponible à partir de la version 2.4.19 du serveur HTTP Apache</compatibility>

<summary>
    <p><module>mod_proxy_http2</module> ne
    supporte que HTTP/2 et ne permet pas de r&eacute;trogradation vers HTTP/1.1. Cela
    signifie que le serveur d'arri&egrave;re-plan doit supporter HTTP/2 car HTTP/1.1 ne
    pourra alors pas &ecirc;tre utilis&eacute;.</p>

    <p>Ce module <em>n&eacute;cessite</em> la pr&eacute;sence de <module>mod_proxy</module> ;
    pour pouvoir traiter les requ&ecirc;tes mandat&eacute;es HTTP/2,
    <module>mod_proxy</module> et <module>mod_proxy_http2</module> doivent donc
    &ecirc;tre charg&eacute;s par le serveur.</p>

    <p><module>mod_proxy_http2</module> travaille avec des requ&ecirc;tes entrantes en
    HTTP/1.1 ou HTTP/2. Dans les deux cas, les requ&ecirc;tes vers le m&ecirc;me serveur
    d'arri&egrave;re-plan sont envoy&eacute;es
    via une seule connexion TCP, dans la mesure du possible (autrement dit
    lorsque la connexion peut &ecirc;tre r&eacute;utilis&eacute;e).</p>

    <p>Avertissement : il ne sera effectu&eacute; aucune tentative de fusion de
    plusieurs requ&ecirc;tes entrantes HTTP/1 (devant &ecirc;tre mandat&eacute;es vers le m&ecirc;me
    serveur d'arri&egrave;re-plan) vers des flux HTTP/2 appartenant &agrave; la m&ecirc;me requ&ecirc;te
    HTTP/2.  Chaque requ&ecirc;te HTTP/1 entrante sera mandat&eacute;e vers le serveur
    d'arri&egrave;re-plan en utilisant une requ&ecirc;te HTTP/2 s&eacute;par&eacute;e (tout en r&eacute;utilisant
    si possible la m&ecirc;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&eacute;rimental. Ses comportement, directives et valeurs par d&eacute;fauts sont
    donc susceptibles de modifications d'une version &agrave; l'autre plus fr&eacute;quentes
    que pour les autres modules. A ce titre, il est fortement conseill&eacute; 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&eacute;curis&eacute; votre serveur</a>. Les serveurs
      mandataires ouverts sont dangereux non seulement pour votre propre r&eacute;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&egrave;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&eacute;curis&eacute;)</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&egrave;mes habituels
      <code>https</code> et respectivement
      <code>http</code> qui sont connus et utilis&eacute;s par l'agent utilisateur.</p>
    </note>
    </section> <!-- /examples -->

<section id="notes"><title>Informations sur les requ&ecirc;tes</title>
    <p><module>mod_proxy_http</module> fournit les informations sur les requ&ecirc;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&eacute;ro de port local utilis&eacute; pour la connexion vers le serveur
	d'arri&egrave;re-plan.</dd>
        <dt>proxy-status</dt>
        <dd>Le statut HTTP/2 en provenance du serveur d'arri&egrave;re-plan.</dd>
    </dl>
</section>

<section id="h2push"><title>HTTP/2 PUSH</title>
    <p>Ce module ne supporte pas la fonctionnalité HTTP/2 PUSH. Les serveurs
    d'arrière-plan qui veulent indiquer des ressources à précharger doivent
    envoyer les en-têtes <code>Link</code> appropriés.</p>
    <p>En cas de besoin, il peuvent le faire en utilisant les réponses
    intermédiaires <code>"103 Early Hints"</code> comme indiqué dans la <a
    href="https://tools.ietf.org/html/rfc8297">RFC 8297</a>, ce qui fournira
    les meilleures performances. Si le client comprend aussi le langage HTTP/2,
    il en résultera un PUSH de la part de httpd vers le celui-ci ou un simple
    transfert de la réponse 103.</p>
    
</section>

</modulesynopsis>
