From 92d315b8d6b8cc8dda2fb64bb23e7f917f08c57f Mon Sep 17 00:00:00 2001
From: Lucien Gentis 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
- production, et les interfaces et directives devraient
- maintenant se stabiliser.
+ dans Apache httpd. Cette fonctionnalité en est au stade
+ de production, et les interfaces et directives devraient donc être
+ dorénavant relativement stables.
Le protocole HTTP/2 est implémenté dans Apache httpd via un module
- propre, pertinemment nommé mod_http2. Ce
+ propre, pertinemment nommé mod_http2 se base sur la bibliothèque
+ Pour déclencher la compilation de 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
Maintenant que vous disposez d'un binaire La directive Avec cette directive, l'ordre des protocoles que vous avez
défini devient caduque et seul l'ordre défini par le client sera pris en
compte. 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 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 Pour des conseils plus avancés à propos de la configuration, voir la Documentation de mod_http2, et en particulier
la section à propos de la Configuration du MPM
Tous les modules multiprocessus (MPM) fournis avec httpd supportent
- HTTP/2. Cependant, si vous utilisez le MPM Avec le MPM Avec le MPM Par défaut, Par défaut, Si votre plateforme et votre installation de httpd le supportent, la
meilleur solution consiste actuellement à utiliser le MPM
- Si vous n'avez pas d'autre choix que d'utiliser le MPM
- Le nom d'hôte de l'hôte distant
+ disponible à l'intérieur d'un bloc REMOTE_USER
Le nom de l'utilisateur authentifié, s'il existe (non
- disponible à l'intérieur d'un bloc REMOTE_IDENT
Le nom de l'utilisateur défini par
@@ -265,8 +264,7 @@ listfunction ::= listfuncname "(" word ")"
"SERVER_NAME
basic
")
+ disponible à l'intérieur d'un bloc CONTENT_TYPE
Le type de contenu de la réponse (non
- disponible à l'intérieur d'un bloc
@@ -281,8 +279,7 @@ listfunction ::= listfuncname "(" word ")"
"HANDLER
Le nom du gestionnaire qui a
généré la réponse off
" dans le cas contraire
+ disponible à l'intérieur d'un bloc REQUEST_STATUS
Le code d'erreur HTTP de la requête (non
- disponible à l'intérieur d'un bloc REQUEST_LOG_ID
L'identifiant du message d'erreur associé à la requête (voir
la directive Identique à req
, mais aucun nom d'en-tête n'est
ajouté à l'en-tête Vary
+
- resp
Lit l'en-tête de réponse HTTP 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
+
+ peut aussi utiliser le raccourci reqenv
Recherche une variable d'environnement de requête (on
- peut aussi utiliser le raccourci v
).ordonnancement v
).
+
+ ordonnancement
diff --git a/docs/manual/howto/http2.xml.fr b/docs/manual/howto/http2.xml.fr
index 25925d3105..37d9c0d37c 100644
--- a/docs/manual/howto/http2.xml.fr
+++ b/docs/manual/howto/http2.xml.fr
@@ -1,7 +1,7 @@
-
+
@@ -29,12 +29,12 @@
osenv
Recherche une variable d'environnement du système
d'exploitation h2c
', et la variante sécurisée
@@ -109,9 +109,9 @@
mod_http2
, libnghttp2
version
+ pouvoir compiler libnghttp2
version
1.2.1. ou supérieure doit être installée dans votre système.mod_http2
, vous devez
ajouter l'argument '--enable-http2
' au script
@@ -124,7 +124,7 @@
préféreront lier statiquement nghttp2
à ce module. Pour ce
faire, utilisez l'argument --enable-nghttp2-staticlib-deps
.
Cette méthode est pratiquement la même que celle utilisée pour lier
- statiquement openssl à mod_ssl.https:
; votre serveur doit donc supporter SSL. Mais de plus,
@@ -137,7 +137,7 @@
httpd
compilé avec le
- module mod_http2
, l'activation de ce dernier nécessite un
+ module h2
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
Protocoles
avec des vérifications de type
- IfModule
.prefork
, vous allez
+ HTTP/2. Cependant, si vous utilisez le MPM prefork
, mod_http2
ne traitera
+ mod_http2
ne passe pas outre cette limitation pour
- la simple et bonne raison que le MPM prefork
n'est aujourd'hui
+ event
.
+ prefork
, mais souhaitez tout de même traiter plusieurs requêtes
+ mod_http2
inspecte l'en-tête de la réponse et recherche les
+ Link
sous un certain format :
L'
en-tête Accept-Push-Policy est un autre dispositif expérimental
- implémenté dans mod_http2
; il permet au client de définir pour
+ implémenté dans
+ 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.
+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 accept-language
et si oui, quelle
+ sera sa valeur ?
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 :
+ user-agent
, accept
, accept-encoding
,
+ accept-language
et cache-control
.
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.
+A l'instar des ressources PUSHées, une autre méthode consiste à envoyer
+ des en-têtes Link
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 RFC 8297.
Pour utiliser cette fonctionnalité, vous devez l'activer explicitement + sur le serveur via :
+Elle n'est en effet pas activée par défaut car certains navigateurs + anciens perdent pied avec de telles réponses.
+Une fois cette fonctionnalité activée, vous pouvez utiliser la directive
+
Le serveur enverra alors au client une réponse "103 Early
+ Hints"
dès qu'il commencera à 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.
Si
[P]
.
Le mot-clé optionnel interpolate, en combinaison avec la directive
-
nom_var
(si l'option interpolate est
spécifiée).
- Conservez cette directive à off (pour les performances du - serveur), sauf si vous en avez réellement besoin.
+La partie protocole/hostname/port de
Laissez cette directive à off, à moins que vous n'en ayez réellemnt
+ besoin ! Par exemple, ajouter des variables Ã
+