]> granicus.if.org Git - apache/commitdiff
XML updates.
authorLucien Gentis <lgentis@apache.org>
Thu, 5 Jul 2018 15:26:06 +0000 (15:26 +0000)
committerLucien Gentis <lgentis@apache.org>
Thu, 5 Jul 2018 15:26:06 +0000 (15:26 +0000)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1835146 13f79535-47bb-0310-9956-ffa450edef68

docs/manual/expr.xml.fr
docs/manual/howto/http2.xml.fr
docs/manual/mod/core.xml.fr
docs/manual/mod/mod_proxy.xml.fr

index 3960022ead539d9507c269a7df810df06b99e875..5b670cc0b876775191c0d93beae800621fbff560 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
 <?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
-<!-- English Revision: 1796727:1834256 (outdated) -->
+<!-- English Revision: 1834256 -->
 <!-- French translation : Lucien GENTIS -->
 <!-- Reviewed by : Vincent Deffontaines -->
 
@@ -240,8 +240,7 @@ listfunction ::= listfuncname "<strong>(</strong>" word "<strong>)</strong>"
         <td>Le nom d'hôte de l'hôte distant</td></tr>
     <tr><td><code>REMOTE_USER</code></td>
         <td>Le nom de l'utilisateur authentifié, s'il existe (non
-       disponible à l'intérieur d'un bloc <directive>&lt;If
-       &gt;</directive>)</td></tr>
+       disponible à l'intérieur d'un bloc <directive>&lt;If&gt;</directive>)</td></tr>
     <tr><td><code>REMOTE_IDENT</code></td>
         <td>Le nom de l'utilisateur défini par <module>mod_ident</module></td></tr>
     <tr><td><code>SERVER_NAME</code></td>
@@ -265,8 +264,7 @@ listfunction ::= listfuncname "<strong>(</strong>" word "<strong>)</strong>"
        "<code>basic</code>")</td></tr>
     <tr><td><code>CONTENT_TYPE</code></td>
         <td>Le type de contenu de la réponse (non
-       disponible à l'intérieur d'un bloc <directive>&lt;If
-       &gt;</directive>)</td></tr>
+       disponible à l'intérieur d'un bloc <directive>&lt;If&gt;</directive>)</td></tr>
     <tr><td><code>HANDLER</code></td>
         <td>Le nom du <a href="handler.html">gestionnaire</a> qui a
        généré la réponse</td></tr>
@@ -281,8 +279,7 @@ listfunction ::= listfuncname "<strong>(</strong>" word "<strong>)</strong>"
        "<code>off</code>" dans le cas contraire</td></tr>
     <tr><td><code>REQUEST_STATUS</code></td>
         <td>Le code d'erreur HTTP de la requête (non
-       disponible à l'intérieur d'un bloc <directive>&lt;If
-       &gt;</directive>)</td></tr>
+       disponible à l'intérieur d'un bloc <directive>&lt;If&gt;</directive>)</td></tr>
     <tr><td><code>REQUEST_LOG_ID</code></td>
         <td>L'identifiant du message d'erreur associé à la requête (voir
        la directive <directive
@@ -508,10 +505,14 @@ listfunction ::= listfuncname "<strong>(</strong>" word "<strong>)</strong>"
         <td>Identique à <code>req</code>, mais aucun nom d'en-tête n'est
        ajouté à l'en-tête Vary</td><td></td></tr>
     <tr><td><code>resp</code></td>
-        <td>Lit l'en-tête de réponse HTTP</td><td></td></tr>
+        <td>Lit l'en-tête de réponse HTTP (La plupart des en-têtes de la réponse
+       ne seront pas encore définis pendant le traitement de la directive
+       <directive>&lt;If&gt;</directive>)</td><td></td></tr>
     <tr><td><code>reqenv</code></td>
         <td>Recherche une variable d'environnement de requête (on
-       peut aussi utiliser le raccourci <code>v</code>).</td><td>ordonnancement</td></tr>
+       peut aussi utiliser le raccourci <code>v</code>).
+       </td>
+       <td>ordonnancement</td></tr>
     <tr><td><code>osenv</code></td>
         <td>Recherche une variable d'environnement du système
        d'exploitation</td><td></td></tr>
index 25925d310510229e555e9948240c4b68572cdd5e..37d9c0d37cbfccc663d23482a5e7c97eb449d197 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0' encoding='UTF-8' ?>
 <!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1798467:1834265 (outdated) -->
+<!-- English Revision: 1834265 -->
 <!-- French translation : Lucien GENTIS -->
 <!-- Reviewed by : Vincent Deffontaines -->
 
 
   <summary>
     <p>Ce document est le guide de l'utilisateur de l'implémentation de HTTP/2
-    dans Apache httpd. Cette fonctionnalité en est au stade de
-    <em>production</em>, et les interfaces et directives devraient
-    maintenant se stabiliser.
+    dans Apache httpd. Cette fonctionnalité en est au stade
+    <em>de production</em>, et les interfaces et directives devraient donc être
+    dorénavant relativement stables.
     </p>
   </summary>
-  <seealso><a href="../mod/mod_http2.html">mod_http2</a></seealso>
+  <seealso><module>mod_http2</module></seealso>
 
   <section id="protocol">
     <title>Le protocole HTTP/2</title>
@@ -96,7 +96,7 @@
   <section id="implementation">
     <title>HTTP/2 dans Apache httpd</title>
     <p>Le protocole HTTP/2 est implémenté dans Apache httpd via un module
-    propre, pertinemment nommé <a href="../mod/mod_http2.html">mod_http2</a>. Ce
+    propre, pertinemment nommé <module>mod_http2</module>. Ce
     module implémente toutes les fonctionnalités décrites par la RFC 7540 et
     supporte les connexions en texte pur (http:), ou sécurisées (https:).
     La variante texte pur se nomme '<code>h2c</code>', et la variante sécurisée
 
   <section id="building">
     <title>Compilation de httpd avec le support de HTTP/2</title>
-    <p><a href="../mod/mod_http2.html">mod_http2</a> se base sur la bibliothèque
+    <p><module>mod_http2</module> se base sur la bibliothèque
     de <a href="https://nghttp2.org">nghttp2</a> pour son implémentation. Pour
-    pouvoir compiler <code>mod_http2</code>, <code>libnghttp2</code> version
+    pouvoir compiler <module>mod_http2</module>, <code>libnghttp2</code> version
     1.2.1. ou supérieure doit être installée dans votre système.</p>
     <p>Pour déclencher la compilation de <code>mod_http2</code>, vous devez
     ajouter l'argument '<code>--enable-http2</code>' au script
     préféreront lier statiquement <code>nghttp2</code> à ce module. Pour ce
     faire, utilisez l'argument <code>--enable-nghttp2-staticlib-deps</code>.
     Cette méthode est pratiquement la même que celle utilisée pour lier
-    statiquement openssl à mod_ssl.</p>
+    statiquement openssl à <module>mod_ssl</module>.</p>
     <p>En parlant de SSL, vous devez savoir que la plupart des navigateurs ne
     communiqueront en HTTP/2 que sur des URLs sécurisées de type
     <code>https:</code> ; votre serveur doit donc supporter SSL. Mais de plus,
     <title>Configuration de base</title>
 
     <p>Maintenant que vous disposez d'un binaire <code>httpd</code> compilé avec le
-    module <code>mod_http2</code>, l'activation de ce dernier nécessite un
+    module <module>mod_http2</module>, l'activation de ce dernier nécessite un
     minimum de configuration supplémentaire. En premier lieu, comme pour tout
     module Apache, vous devez le charger :</p>
     <highlight language="config">
@@ -172,7 +172,7 @@ Protocols http/1.1
     <note><title>Utilisez une chaîne d'algorithmes de chiffrement forte</title>
     <p>La directive <directive module="mod_ssl">SSLCipherSuite</directive> doit
     être définie avec une chaîne d'algorithmes de chiffrement TLS forte. Même si
-    la version actuelle de mod_http2 n'impose pas d'algorithmes de chiffrement
+    la version actuelle de <module>mod_http2</module> n'impose pas d'algorithmes de chiffrement
     particuliers, la plupart des clients le font. Faire pointer un navigateur
     vers un serveur où <code>h2</code> est activé avec une chaîne d'algorithmes
     de chiffrement inappropriée entraînera un rejet et une retrogradation vers
@@ -209,11 +209,12 @@ ProtocolsHonorOrder Off
     <p>Avec cette directive, l'ordre des protocoles que <em>vous</em> avez
     défini devient caduque et seul l'ordre défini par le client sera pris en
     compte.</p>
-    <p>Une dernière chose : les protocoles que vous définissez ne sont pas vérifiés
-    quant à leurs validité ou orthographe. Vous pouvez très bien définir des
-    protocoles qui n'existent pas, et il n'est donc pas nécessaire de filtrer
-    les <code>Protocoles</code> avec des vérifications de type
-    <code>IfModule</code>.</p>
+    <p>Une dernière chose : les protocoles que vous définissez ne sont pas
+    vérifiés quant à leurs validité ou orthographe. Vous pouvez très bien
+    définir des protocoles qui n'existent pas, et il n'est donc pas nécessaire
+    de filtrer le contenu de la directive <directive
+    module="core">Protocols</directive> avec des vérifications de type
+    <directive type="section" module="core">IfModule</directive>.</p>
     <p>Pour des conseils plus avancés à propos de la configuration, voir la <a
     href="../mod/mod_http2.html">Documentation de mod_http2</a>, et en particulier
     la section à propos de la <a
@@ -227,24 +228,24 @@ ProtocolsHonorOrder Off
     <title>Configuration du MPM</title>
 
     <p>Tous les modules multiprocessus (MPM) fournis avec httpd supportent
-    HTTP/2. Cependant, si vous utilisez le MPM <code>prefork</code>, vous allez
+    HTTP/2. Cependant, si vous utilisez le MPM <module>prefork</module>, vous allez
     faire face à de sévères restrictions.</p>
-    <p>Avec le MPM <code>prefork</code>, <code>mod_http2</code> ne traitera
+    <p>Avec le MPM <module>prefork</module>, <module>mod_http2</module> ne traitera
     qu'une requête à la fois par connexion alors que les clients tels que les
     navigateurs internet envoient de nombreuses requêtes au même moment. Si
     l'une d'entre elles est longue à traiter (ou implique une longue
     interrogation), les autres requêtes seront mises en attente.</p>
-    <p>Par défaut, <code>mod_http2</code> ne passe pas outre cette limitation pour
-    la simple et bonne raison que le MPM <code>prefork</code> n'est aujourd'hui
+    <p>Par défaut, <module>mod_http2</module> ne passe pas outre cette limitation pour
+    la simple et bonne raison que le MPM <module>prefork</module> n'est aujourd'hui
     choisi que si vous exécutez des moteurs de traitement qui ne sont pas préparés
     pour le multithreading (par exemple qui se crashent lorsque plusieurs
     requêtes arrivent).</p>
     <p>Si votre plateforme et votre installation de httpd le supportent, la
     meilleur solution consiste actuellement à utiliser le MPM
-    <code>event</code>.
+    <module>event</module>.
     </p>
     <p>Si vous n'avez pas d'autre choix que d'utiliser le MPM
-    <code>prefork</code>, mais souhaitez tout de même traiter plusieurs requêtes
+    <module>prefork</module>, mais souhaitez tout de même traiter plusieurs requêtes
     simultanément, vous pouvez jouer avec la directive <directive
     module="mod_http2">H2MinWorkers</directive>, sans garantie que cela
     fonctionne.</p>
@@ -325,7 +326,7 @@ ProtocolsHonorOrder Off
     meilleur usage de cette fonctionnalité de HTTP/2 et tout le monde en est
     encore au stade de l'expérimentation. À ce titre, voici des conseils pour
     procéder vous-même à ces expérimentations :</p>
-    <p><code>mod_http2</code> inspecte l'en-tête de la réponse et recherche les
+    <p><module>mod_http2</module> inspecte l'en-tête de la réponse et recherche les
     en-têtes <code>Link</code> sous un certain format :</p>
     <highlight language="config">
 Link &lt;/xxx.css&gt;;rel=preload, &lt;/xxx.js&gt;; rel=preload
@@ -361,8 +362,64 @@ H2Push Off
     un stade très expérimental.</p>
     <p>L'<a href="https://tools.ietf.org/html/draft-ruellan-http-accept-push-policy-00">
     en-tête Accept-Push-Policy</a> est un autre dispositif expérimental
-    implémenté dans <code>mod_http2</code> ; il permet au client de définir pour
+    implémenté dans <module>mod_http2</module> ; il permet au client de définir pour
     chaque requête quels genres de PUSHes il accepte.</p>
+  
+
+    <p>
+    La fonctionnalité PUSH n'apportera pas toujours le gain de performances dans
+    l'obtention de réponses aux requêtes. Vous trouverez plusieurs études sur ce
+    sujet sur internet qui en expliquent les avantages et inconvénients et
+    comment les particularités des clients et du réseau en influencent le
+    fonctionnement. Par exemple, le seul fait que le serveur PUSHes une
+    ressource n'implique pas forcément que le navigateur l'utilisera.</p>
+    <p>Ce qui influence le plus la réponse PUSHed, c'est la requête qui a été
+    simulée. En effet, l'URL de la requête pour un PUSH est fournie par
+    l'application, mais d'où viennent les en-têtes ? Par exemple, La requête
+    PUSH requiert-elle un en-tête <code>accept-language</code> et si oui, quelle
+    sera sa valeur ?</p>
+    <p>httpd va consulter la requête originale (celle qui a déclenché le PUSH)
+    et copier les en-têtes suivants vers la requête PUSH :
+    <code>user-agent</code>, <code>accept</code>, <code>accept-encoding</code>,
+    <code>accept-language</code> et <code>cache-control</code>.</p>
+    <p>Tous les autres en-têtes sont ignorés. Les cookies eux non plus ne seront
+    pas copiés. PUSHer des ressources qui requièrent la présence d'un cookie ne
+    fonctionnera pas. Ceci peut être sujet à débat, mais tant que ce ne sera pas
+    clairement discuté avec les navigateurs, restons prudents et évitons
+    d'exposer les cookies là où ils ne sont pas censés être visibles.</p>
   </section>
 
+  <section id="earlyhints">
+    <title>Suggestions précoces</title>
+    <p>A l'instar des ressources PUSHées, une autre méthode consiste à envoyer
+    des en-têtes <code>Link</code> au client avant même que la réponse ne soit
+    prête. Cette méthode utilise la fonctionnalité appelée "Suggestions
+    précoces" (Early Hints) décrite dans la <a
+    href="https://tools.ietf.org/html/rfc8297">RFC 8297</a>.</p>
+    <p>Pour utiliser cette fonctionnalité, vous devez l'activer explicitement
+    sur le serveur via :</p>
+    <highlight language="config">
+H2EarlyHints on
+    </highlight>
+    <p>Elle n'est en effet pas activée par défaut car certains navigateurs
+    anciens perdent pied avec de telles réponses.</p>
+    <p>Une fois cette fonctionnalité activée, vous pouvez utiliser la directive
+    <directive module="mod_http2">H2PushResource</directive> pour déclencher les
+    suggestions précoces et les PUSHes de ressources :</p>
+    <highlight language="config">
+&lt;Location /xxx.html&gt;
+    H2PushResource /xxx.css
+    H2PushResource /xxx.js
+&lt;/Location&gt;
+    </highlight>
+    <p>Le serveur enverra alors au client une réponse <code>"103 Early
+    Hints"</code> dès qu'il <em>commencera</em> à traiter la requête. Selon
+    votre application web, cet envoi peut intervenir beaucoup plus tôt que le
+    moment où les premiers en-têtes de réponse auront été déterminés.</p>
+    <p>Si <directive module="mod_http2">H2Push</directive> est activé, ceci
+    déclenchera aussi le PUSH juste après la réponse 103. Mais si <directive
+    module="mod_http2">H2Push</directive> n'est pas activé, la réponse 103 sera
+    quand-même envoyée au client.</p>
+    </section>
+
 </manualpage>
index 593a640c290169bd616146f2cc9e1dda2dcf4619..cdba36b08c99327333524a3273e24664a91b5ce8 100644 (file)
@@ -1,7 +1,7 @@
 <?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: 1832623:1834777 (outdated) -->
+<!-- English Revision: 1834777 -->
 <!-- French translation : Lucien GENTIS -->
 <!-- Reviewed by : Vincent Deffontaines -->
 
index 4a6fd9db03cf1cec180fe1f347eb568a16cc900d..d1c91f11e0bacf2f65cd60d9567f05740989ed28 100644 (file)
@@ -1,7 +1,7 @@
 <?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: 1834093:1834524 (outdated) -->
+<!-- English Revision: 1834524 -->
 <!-- French translation : Lucien GENTIS -->
 <!-- Reviewed by : Vincent Deffontaines -->
 
@@ -912,7 +912,8 @@ charge</description>
 charge des mandataires et aux membres des groupes de répartition de
 charge</description>
 <syntax>ProxySet <var>url</var> <var>clé=valeur [clé=valeur ...]</var></syntax>
-<contextlist><context>directory</context>
+<contextlist><context>server config</context><context>virtual host</context>
+<context>directory</context>
 </contextlist>
 <compatibility>ProxySet n'est disponible que depuis la version 2.2
 du serveur HTTP Apache.</compatibility>
@@ -1625,16 +1626,20 @@ ProxyPass "/" "balancer://hotcluster/"
     <code>[P]</code>.</p>
 
     <p>Le mot-clé optionnel <var>interpolate</var>, en combinaison avec la directive
-    <directive>ProxyPassInterpolateEnv</directive>, permet à ProxyPass
+    <directive module="mod_proxy">ProxyPassInterpolateEnv</directive>, permet à ProxyPass
     d'interpoler les variables d'environnement à l'aide de la syntaxe
     <var>${VARNAME}</var>. Notez que de nombreuses variables
     d'environnement standard dérivées de CGI n'existeront pas lorsque
     l'interpolation se produit ; vous devrez alors encore avoir avoir
     recours à <module>mod_rewrite</module> pour des règles
-    complexes. Notez aussi que l'interpolation n'est pas supportée dans
-    la partie protocole d'une URL. La détermination dynamique du
-    protocole peut être effectuée à l'aide de
-    <module>mod_rewrite</module> comme dans l'exemple suivant :</p>
+    complexes. Notez aussi que l'interpolation n'est supportée dans
+    la partie protocole/hostname/port d'une URL que pour les variables qui sont
+    disponibles au moment où la directive est interprétée (comme pour la
+    directive <directive module="core">Define</directive>). La détermination
+    dynamique de ces champs peut être effectuée à l'aide de
+    <module>mod_rewrite</module>, et l'exemple suivant décrit comment utiliser
+    <module>mod_rewrite</module> pour définir dynamiquement le protocole à http
+    ou https :</p>
 
     <highlight language="config">
 RewriteEngine On
@@ -2309,8 +2314,18 @@ les configurations de mandataires inverses</description>
     de configuration par la valeur de la variable d'environnement
     <code>nom_var</code> (si l'option <var>interpolate</var> est
     spécifiée).</p>
-    <p>Conservez cette directive à off (pour les performances du
-    serveur), sauf si vous en avez réellement besoin.</p>
+    <p>La partie protocole/hostname/port de <directive>ProxyPass</directive>
+    peut contenir des variables, mais seulement celles qui sont accessibles au
+    moment où la directive est interprétée (similairement à la directive
+    <directive module="core">Define</directive>). Pour tous les autres cas,
+    utilisez plutôt <module>mod_rewrite</module>.</p> 
+    <note type="warning"><title>Avertissement concernant les performances</title>
+    <p>Laissez cette directive à off, à moins que vous n'en ayez réellemnt
+    besoin ! Par exemple, ajouter des variables à
+    <directive>ProxyPass</directive> peut entraîner l'utilisation des serveurs
+    d'arrière-plan de mod_proxy configurés par défaut, et ceux-ci ne permettent
+    pas un réglage fin comme la réutilisation des connexions, entre
+    autres...).</p> </note>
 </usage>
 </directivesynopsis>