From: Vincent Deffontaines Date: Wed, 2 Jan 2013 19:44:37 +0000 (+0000) Subject: Adding .fr translations for a number of module documentation files X-Git-Tag: 2.4.4~198 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=52fdff81ba14082fdc012ef772e0031fa231e5af;p=apache Adding .fr translations for a number of module documentation files git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1427969 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/docs/manual/mod/mod_allowmethods.html b/docs/manual/mod/mod_allowmethods.html index 30677e6892..5d30fcfc4b 100644 --- a/docs/manual/mod/mod_allowmethods.html +++ b/docs/manual/mod/mod_allowmethods.html @@ -3,3 +3,7 @@ URI: mod_allowmethods.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 + +URI: mod_allowmethods.html.fr +Content-Language: fr +Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/mod/mod_allowmethods.html.fr b/docs/manual/mod/mod_allowmethods.html.fr new file mode 100644 index 0000000000..a98da92186 --- /dev/null +++ b/docs/manual/mod/mod_allowmethods.html.fr @@ -0,0 +1,118 @@ + + + +mod_allowmethods - Serveur Apache HTTP + + + + + + + + +
<-
+
+Apache > Serveur HTTP > Documentation > Version 2.4 > Modules
+
+

Module Apache mod_allowmethods

+
+

Langues Disponibles:  en  | + fr 

+
+ + + +
Description:Ce module permet de restreindre aisément les méthodes HTTP +pouvant être utilisées sur le serveur
Statut:Expérimental
Identificateur de Module:allowmethods_module
Fichier Source:mod_allowmethods.c
+

Sommaire

+ +

Ce module permet de restreindre aisément les méthodes HTTP +pouvant être utilisées sur le serveur. La configuration la plus courante +est du style :

+ +
+<Location />
+   AllowMethods GET POST OPTIONS
+</Location>
+
+ + +
+

Directives

+ +
+ +
top
+

AllowMethods Directive

+ + + + + + + +
Description:Restreint l'accès aux méthodes HTTP spécifiées
Syntaxe:AllowMethods reset|HTTP-method +[HTTP-method]...
Défaut:AllowMethods reset
Contexte:répertoire
Statut:Expérimental
Module:mod_allowmethods
+ +

Les noms des méthodes HTTP sont sensibles à la casse, et sont en +général définis en majuscules, comme dans les RFCs. Les méthodes GET et +HEAD sont considérées comme équivalentes. Le mot-clé +reset permet de désactiver +mod_allowmethods dans les niveaux inférieurs +d'imbrication :

+ +
+<Location /svn>
+   AllowMethods reset
+</Location>
+
+ + +

Avertissement

+

La méthode TRACE ne peut pas être rejetée par ce module ; pour ce + faire, vous devez utiliser la directive TraceEnable.

+
+ +

Le module mod_allowmethods a été écrit pour +remplacer l'implémentation "bricolée" des directives Limit et LimitExcept.

+ +
+
+
+

Langues Disponibles:  en  | + fr 

+
top

Commentaires

Notice:
This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our mailing lists.
+
+ \ No newline at end of file diff --git a/docs/manual/mod/mod_allowmethods.xml.fr b/docs/manual/mod/mod_allowmethods.xml.fr new file mode 100644 index 0000000000..541572eaf3 --- /dev/null +++ b/docs/manual/mod/mod_allowmethods.xml.fr @@ -0,0 +1,95 @@ + + + + + + + + + + + + +mod_allowmethods +Ce module permet de restreindre aisément les méthodes HTTP +pouvant être utilisées sur le serveur +Experimental +mod_allowmethods.c +allowmethods_module + + + +

Ce module permet de restreindre aisément les méthodes HTTP +pouvant être utilisées sur le serveur. La configuration la plus courante +est du style :

+ + +<Location /> + AllowMethods GET POST OPTIONS +</Location> + + +
+ + +AllowMethods +Restreint l'accès aux méthodes HTTP spécifiées +AllowMethods reset|HTTP-method +[HTTP-method]... +AllowMethods reset +directory +Experimental + + + +

Les noms des méthodes HTTP sont sensibles à la casse, et sont en +général définis en majuscules, comme dans les RFCs. Les méthodes GET et +HEAD sont considérées comme équivalentes. Le mot-clé +reset permet de désactiver +mod_allowmethods dans les niveaux inférieurs +d'imbrication :

+ + +<Location /svn> + AllowMethods reset +</Location> + + +Avertissement +

La méthode TRACE ne peut pas être rejetée par ce module ; pour ce + faire, vous devez utiliser la directive TraceEnable.

+
+ +

Le module mod_allowmethods a été écrit pour +remplacer l'implémentation "bricolée" des directives Limit et LimitExcept.

+
+
+ +
+ diff --git a/docs/manual/mod/mod_allowmethods.xml.meta b/docs/manual/mod/mod_allowmethods.xml.meta index 52ebedb137..e7cf8b579b 100644 --- a/docs/manual/mod/mod_allowmethods.xml.meta +++ b/docs/manual/mod/mod_allowmethods.xml.meta @@ -8,5 +8,6 @@ en + fr diff --git a/docs/manual/mod/mod_authz_dbd.html b/docs/manual/mod/mod_authz_dbd.html index dc683bf7fd..ce414fc781 100644 --- a/docs/manual/mod/mod_authz_dbd.html +++ b/docs/manual/mod/mod_authz_dbd.html @@ -3,3 +3,7 @@ URI: mod_authz_dbd.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 + +URI: mod_authz_dbd.html.fr +Content-Language: fr +Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/mod/mod_authz_dbd.html.fr b/docs/manual/mod/mod_authz_dbd.html.fr new file mode 100644 index 0000000000..df55f431c3 --- /dev/null +++ b/docs/manual/mod/mod_authz_dbd.html.fr @@ -0,0 +1,292 @@ + + + +mod_authz_dbd - Serveur Apache HTTP + + + + + + + + +
<-
+
+Apache > Serveur HTTP > Documentation > Version 2.4 > Modules
+
+

Module Apache mod_authz_dbd

+
+

Langues Disponibles:  en  | + fr 

+
+ + + + +
Description:Autorisation en groupe et reconnaissance d'identité avec base +SQL
Statut:Extension
Identificateur de Module:authz_dbd_module
Fichier Source:mod_authz_dbd.c
Compatibilité:Disponible dans les versions 2.4 et supérieures +d'Apache
+

Sommaire

+ +

Ce module fournit des fonctionnalités d'autorisation permettant + d'accorder ou de refuser aux utilisateurs authentifiés l'accès à + certaines zones du site web en fonction de leur appartenance à tel + ou tel groupe. Les modules mod_authz_groupfile et + mod_authz_dbm fournissent une fonctionnalité + similaire, mais ici le module interroge une base de données SQL pour + déterminer si un utilisateur appartient ou non à tel ou tel groupe.

+

Ce module propose également des fonctionnalités de connexion + utilisateur s'appuyant sur une base de données, ce qui peut se révéler + particulièrement utile lorsque le module est utilisé conjointement avec + mod_authn_dbd.

+

Ce module s'appuie sur mod_dbd pour spécifier le + pilote de la base de données sous-jacente et les paramètres de + connexion, et gérer les connexions à la base de données.

+
+ +
top
+
+

Reconnaissance d'identité s'appuyant sur une base de données

+ +

+Outre sa fonction d'autorisation standard consistant à vérifier +l'appartenance à des groupes, ce module permet aussi de gérer des +sessions utilisateur côté serveur grâce à sa fonctionnalité de connexion utilisateur +en s'appuyant sur une base de données. En particulier, il peut mettre à +jour le statut de session de l'utilisateur dans la base de données +chaque fois que celui-ci visite certaines URLs (sous réserve bien +entendu que l'utilisateur fournissent les informations de connexion +nécessaires).

+

Pour cela, il faut definir deux directives Require spéciales : Require +dbd-login et Require dbd-logout. Pour les détails de +leur utilisation, voir l'exemple de configuration ci-dessous.

+
top
+
+

Reconnaissance d'identité côté client

+ +

Certains administrateurs peuvent vouloir implémenter une gestion de +session côté client fonctionnant de concert avec les fonctionnalités de +connexion/déconnexion des utilisateurs côté serveur offertes par ce module, en +définissant ou en annulant par exemple un cookie HTTP ou un jeton +similaire lorsqu'un utilisateur se connecte ou se déconnecte. Pour +supporter une telle intégration, mod_authz_dbd exporte +un programme à déclenchement optionnel (hook) qui sera lancé chaque fois +que le statut d'un utilisateur sera mis à jour dans la base de données. +D'autres modules de gestion de session pourront alors utiliser ce +programme pour implémenter des fonctions permettant d'ouvrir et de +fermer des sessions côté client.

+
top
+
+

Exemple de configuration

+ +
+# configuration de mod_dbd
+DBDriver pgsql
+DBDParams "dbname=apacheauth user=apache pass=xxxxxx"
+
+DBDMin  4
+DBDKeep 8
+DBDMax  20
+DBDExptime 300
+
+<Directory /usr/www/mon.site/team-private/>
+  # configuration de mod_authn_core et mod_auth_basic
+  # pour mod_authn_dbd
+  AuthType Basic
+  AuthName Team
+  AuthBasicProvider dbd
+
+  # requête SQL de mod_authn_dbd pour authentifier un utilisateur qui se
+  # connecte
+  AuthDBDUserPWQuery \
+    "SELECT password FROM authn WHERE user = %s AND login = 'true'"
+
+  # configuration de mod_authz_core pour mod_authz_dbd
+  Require dbd-group team
+
+  # configuration de mod_authz_dbd
+  AuthzDBDQuery "SELECT group FROM authz WHERE user = %s"
+
+  # lorsqu'un utilisateur échoue dans sa tentative d'authentification ou
+  # d'autorisation, on l'invite à se connecter ; cette page doit
+  # contenir un lien vers /team-private/login.html
+  ErrorDocument 401 /login-info.html
+
+  <Files login.html>
+    # il n'est pas nécessaire que l'utilisateur soit déjà connecté !
+    AuthDBDUserPWQuery "SELECT password FROM authn WHERE user = %s"
+
+    # le processus de connexion dbd exécute une requête pour enregistrer
+    # la connexion de l'utilisateur
+    Require dbd-login
+    AuthzDBDQuery "UPDATE authn SET login = 'true' WHERE user = %s"
+
+    # redirige l'utilisateur vers la page d'origine (si elle existe)
+    # après une connexion réussie
+    AuthzDBDLoginToReferer On
+  </Files>
+
+  <Files logout.html>
+    # le processus de déconnexion dbd exécute une requête pour
+    # enregistrer la déconnexion de l'utilisateur
+    Require dbd-logout
+    AuthzDBDQuery "UPDATE authn SET login = 'false' WHERE user = %s"
+  </Files>
+</Directory>
+
+ +
+
top
+

AuthzDBDLoginToReferer Directive

+ + + + + + + +
Description:Définit si le client doit être redirigé vers la page +d'origine en cas de connexion ou de déconnexion réussie si un en-tête +de requête Referer est présent
Syntaxe:AuthzDBDLoginToReferer On|Off
Défaut:AuthzDBDLoginToReferer Off
Contexte:répertoire
Statut:Extension
Module:mod_authz_dbd
+

Utilisée en conjonction avec Require dbd-login ou + Require dbd-logout, cette directive permet de rediriger + le client vers la page d'origine (l'URL contenue dans l'en-tête + de requête HTTP Referer, s'il est présent). En + l'absence d'en-tête Referer, la définition + AuthzDBDLoginToReferer On sera ignorée.

+ +
+
top
+

AuthzDBDQuery Directive

+ + + + + + +
Description:Définit la requête SQL pour l'opération requise
Syntaxe:AuthzDBDQuery requête
Contexte:répertoire
Statut:Extension
Module:mod_authz_dbd
+

La directive AuthzDBDQuery permet de + spécifier une requête SQL à exécuter. Le but de cette requête dépend + de la directive Require en cours de + traitement.

+
    +
  • Avec la directive Require dbd-group, elle spécifie + une requête permettant de rechercher les groupes d'appartenance de + l'utilisateur courant. Ceci correspond à la fonctionnalité standard + d'autres modules d'autorisation comme + mod_authz_groupfile et + mod_authz_dbm. + La première colonne de chaque enregistrement renvoyé par la requête + doit contenir une chaîne de caractères correspondant à un nom de + groupe. La requête peut renvoyer zéro, un ou plusieurs + enregistrements. +
    +Require dbd-group
    +AuthzDBDQuery "SELECT group FROM groups WHERE user = %s"
    +
    + +
  • +
  • Avec la directive Require dbd-login ou + Require dbd-logout, elle ne refusera jamais l'accès, + mais au contraire exécutera une requête SQL permettant d'enregistrer + la connexion ou la déconnexion de l'utilisateur. Ce dernier doit + être déjà authentifié avec mod_authn_dbd. +
    +Require dbd-login
    +AuthzDBDQuery "UPDATE authn SET login = 'true' WHERE user = %s"
    +
    + +
  • +
+

Dans tous les cas, l'identifiant utilisateur sera transmis comme + paramètre sous la forme d'une simple chaîne lorsque la requête SQL + sera exécutée. Il y sera fait référence dans la requête en utilisant + le spécificateur de format %s.

+ +
+
top
+

AuthzDBDRedirectQuery Directive

+ + + + + + +
Description:Définit une requête pour rechercher une page vers laquelle +rediriger l'utilisateur après une connexion réussie
Syntaxe:AuthzDBDRedirectQuery requête
Contexte:répertoire
Statut:Extension
Module:mod_authz_dbd
+

Spécifie une requête SQL optionnelle à utiliser après une + connexion (ou une déconnexion) réussie pour rediriger l'utilisateur + vers une URL, qui peut être spécifique à l'utilisateur. + L'identifiant utilisateur sera transmis comme paramètre sous la + forme d'une simple chaîne lorsque la requête SQL sera exécutée. Il y + sera fait référence dans la requête en utilisant le spécificateur de + format %s.

+
+AuthzDBDRedirectQuery "SELECT userpage FROM userpages WHERE user = %s"
+
+ +

La première colonne du premier enregistrement renvoyé par la + requête doit contenir une chaîne de caractères correspondant à une + URL vers laquelle rediriger le client. Les enregistrements suivants + sont ignorés. Si aucun enregistrement n'est renvoyé, le client ne + sera pas redirigé.

+

Notez que AuthzDBDLoginToReferer l'emporte + sur cette directive si les deux sont définies.

+ +
+
+
+

Langues Disponibles:  en  | + fr 

+
top

Commentaires

Notice:
This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our mailing lists.
+
+ \ No newline at end of file diff --git a/docs/manual/mod/mod_authz_dbd.xml.fr b/docs/manual/mod/mod_authz_dbd.xml.fr new file mode 100644 index 0000000000..b61d9fae1b --- /dev/null +++ b/docs/manual/mod/mod_authz_dbd.xml.fr @@ -0,0 +1,244 @@ + + + + + + + + + + + +mod_authz_dbd +Autorisation en groupe et reconnaissance d'identité avec base +SQL +Extension +mod_authz_dbd.c +authz_dbd_module +Disponible dans les versions 2.4 et supérieures +d'Apache + + +

Ce module fournit des fonctionnalités d'autorisation permettant + d'accorder ou de refuser aux utilisateurs authentifiés l'accès à + certaines zones du site web en fonction de leur appartenance à tel + ou tel groupe. Les modules mod_authz_groupfile et + mod_authz_dbm fournissent une fonctionnalité + similaire, mais ici le module interroge une base de données SQL pour + déterminer si un utilisateur appartient ou non à tel ou tel groupe.

+

Ce module propose également des fonctionnalités de connexion + utilisateur s'appuyant sur une base de données, ce qui peut se révéler + particulièrement utile lorsque le module est utilisé conjointement avec + mod_authn_dbd.

+

Ce module s'appuie sur mod_dbd pour spécifier le + pilote de la base de données sous-jacente et les paramètres de + connexion, et gérer les connexions à la base de données.

+
+ +Require + + AuthDBDUserPWQuery + +DBDriver +DBDParams + +
+Reconnaissance d'identité s'appuyant sur une base de données +

+Outre sa fonction d'autorisation standard consistant à vérifier +l'appartenance à des groupes, ce module permet aussi de gérer des +sessions utilisateur côté serveur grâce à sa fonctionnalité de connexion utilisateur +en s'appuyant sur une base de données. En particulier, il peut mettre à +jour le statut de session de l'utilisateur dans la base de données +chaque fois que celui-ci visite certaines URLs (sous réserve bien +entendu que l'utilisateur fournissent les informations de connexion +nécessaires).

+

Pour cela, il faut definir deux directives Require spéciales : Require +dbd-login et Require dbd-logout. Pour les détails de +leur utilisation, voir l'exemple de configuration ci-dessous.

+
+ +
+Reconnaissance d'identité côté client +

Certains administrateurs peuvent vouloir implémenter une gestion de +session côté client fonctionnant de concert avec les fonctionnalités de +connexion/déconnexion des utilisateurs côté serveur offertes par ce module, en +définissant ou en annulant par exemple un cookie HTTP ou un jeton +similaire lorsqu'un utilisateur se connecte ou se déconnecte. Pour +supporter une telle intégration, mod_authz_dbd exporte +un programme à déclenchement optionnel (hook) qui sera lancé chaque fois +que le statut d'un utilisateur sera mis à jour dans la base de données. +D'autres modules de gestion de session pourront alors utiliser ce +programme pour implémenter des fonctions permettant d'ouvrir et de +fermer des sessions côté client.

+
+ +
+Exemple de configuration + +# configuration de mod_dbd +DBDriver pgsql +DBDParams "dbname=apacheauth user=apache pass=xxxxxx" + +DBDMin 4 +DBDKeep 8 +DBDMax 20 +DBDExptime 300 + +<Directory /usr/www/mon.site/team-private/> + # configuration de mod_authn_core et mod_auth_basic + # pour mod_authn_dbd + AuthType Basic + AuthName Team + AuthBasicProvider dbd + + # requête SQL de mod_authn_dbd pour authentifier un utilisateur qui se + # connecte + AuthDBDUserPWQuery \ + "SELECT password FROM authn WHERE user = %s AND login = 'true'" + + # configuration de mod_authz_core pour mod_authz_dbd + Require dbd-group team + + # configuration de mod_authz_dbd + AuthzDBDQuery "SELECT group FROM authz WHERE user = %s" + + # lorsqu'un utilisateur échoue dans sa tentative d'authentification ou + # d'autorisation, on l'invite à se connecter ; cette page doit + # contenir un lien vers /team-private/login.html + ErrorDocument 401 /login-info.html + + <Files login.html> + # il n'est pas nécessaire que l'utilisateur soit déjà connecté ! + AuthDBDUserPWQuery "SELECT password FROM authn WHERE user = %s" + + # le processus de connexion dbd exécute une requête pour enregistrer + # la connexion de l'utilisateur + Require dbd-login + AuthzDBDQuery "UPDATE authn SET login = 'true' WHERE user = %s" + + # redirige l'utilisateur vers la page d'origine (si elle existe) + # après une connexion réussie + AuthzDBDLoginToReferer On + </Files> + + <Files logout.html> + # le processus de déconnexion dbd exécute une requête pour + # enregistrer la déconnexion de l'utilisateur + Require dbd-logout + AuthzDBDQuery "UPDATE authn SET login = 'false' WHERE user = %s" + </Files> +</Directory> + +
+ + +AuthzDBDQuery +Définit la requête SQL pour l'opération requise +AuthzDBDQuery requête +directory + + +

La directive AuthzDBDQuery permet de + spécifier une requête SQL à exécuter. Le but de cette requête dépend + de la directive Require en cours de + traitement.

+
    +
  • Avec la directive Require dbd-group, elle spécifie + une requête permettant de rechercher les groupes d'appartenance de + l'utilisateur courant. Ceci correspond à la fonctionnalité standard + d'autres modules d'autorisation comme + mod_authz_groupfile et + mod_authz_dbm. + La première colonne de chaque enregistrement renvoyé par la requête + doit contenir une chaîne de caractères correspondant à un nom de + groupe. La requête peut renvoyer zéro, un ou plusieurs + enregistrements. + +Require dbd-group +AuthzDBDQuery "SELECT group FROM groups WHERE user = %s" + +
  • +
  • Avec la directive Require dbd-login ou + Require dbd-logout, elle ne refusera jamais l'accès, + mais au contraire exécutera une requête SQL permettant d'enregistrer + la connexion ou la déconnexion de l'utilisateur. Ce dernier doit + être déjà authentifié avec mod_authn_dbd. + +Require dbd-login +AuthzDBDQuery "UPDATE authn SET login = 'true' WHERE user = %s" + +
  • +
+

Dans tous les cas, l'identifiant utilisateur sera transmis comme + paramètre sous la forme d'une simple chaîne lorsque la requête SQL + sera exécutée. Il y sera fait référence dans la requête en utilisant + le spécificateur de format %s.

+
+
+ + +AuthzDBDRedirectQuery +Définit une requête pour rechercher une page vers laquelle +rediriger l'utilisateur après une connexion réussie +AuthzDBDRedirectQuery requête +directory + + +

Spécifie une requête SQL optionnelle à utiliser après une + connexion (ou une déconnexion) réussie pour rediriger l'utilisateur + vers une URL, qui peut être spécifique à l'utilisateur. + L'identifiant utilisateur sera transmis comme paramètre sous la + forme d'une simple chaîne lorsque la requête SQL sera exécutée. Il y + sera fait référence dans la requête en utilisant le spécificateur de + format %s.

+ +AuthzDBDRedirectQuery "SELECT userpage FROM userpages WHERE user = %s" + +

La première colonne du premier enregistrement renvoyé par la + requête doit contenir une chaîne de caractères correspondant à une + URL vers laquelle rediriger le client. Les enregistrements suivants + sont ignorés. Si aucun enregistrement n'est renvoyé, le client ne + sera pas redirigé.

+

Notez que AuthzDBDLoginToReferer l'emporte + sur cette directive si les deux sont définies.

+
+
+ + +AuthzDBDLoginToReferer +Définit si le client doit être redirigé vers la page +d'origine en cas de connexion ou de déconnexion réussie si un en-tête +de requête Referer est présent +AuthzDBDLoginToReferer On|Off +AuthzDBDLoginToReferer Off +directory + + +

Utilisée en conjonction avec Require dbd-login ou + Require dbd-logout, cette directive permet de rediriger + le client vers la page d'origine (l'URL contenue dans l'en-tête + de requête HTTP Referer, s'il est présent). En + l'absence d'en-tête Referer, la définition + AuthzDBDLoginToReferer On sera ignorée.

+
+
+ +
diff --git a/docs/manual/mod/mod_authz_dbd.xml.meta b/docs/manual/mod/mod_authz_dbd.xml.meta index a9213b18ea..691db29ca9 100644 --- a/docs/manual/mod/mod_authz_dbd.xml.meta +++ b/docs/manual/mod/mod_authz_dbd.xml.meta @@ -8,5 +8,6 @@ en + fr diff --git a/docs/manual/mod/mod_authz_dbm.html b/docs/manual/mod/mod_authz_dbm.html index 1f8698ac94..ce23dc1d0e 100644 --- a/docs/manual/mod/mod_authz_dbm.html +++ b/docs/manual/mod/mod_authz_dbm.html @@ -4,6 +4,10 @@ URI: mod_authz_dbm.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 +URI: mod_authz_dbm.html.fr +Content-Language: fr +Content-type: text/html; charset=ISO-8859-1 + URI: mod_authz_dbm.html.ko.euc-kr Content-Language: ko Content-type: text/html; charset=EUC-KR diff --git a/docs/manual/mod/mod_authz_dbm.html.fr b/docs/manual/mod/mod_authz_dbm.html.fr new file mode 100644 index 0000000000..83831e6841 --- /dev/null +++ b/docs/manual/mod/mod_authz_dbm.html.fr @@ -0,0 +1,172 @@ + + + +mod_authz_dbm - Serveur Apache HTTP + + + + + + + + +
<-
+
+Apache > Serveur HTTP > Documentation > Version 2.4 > Modules
+
+

Module Apache mod_authz_dbm

+
+

Langues Disponibles:  en  | + fr  | + ko 

+
+ + + + +
Description:Autorisation basée sur les groupes à l'aide de fichiers +DBM
Statut:Extension
Identificateur de Module:authz_dbm_module
Fichier Source:mod_authz_dbm.c
Compatibilité:Disponible depuis les versions 2.1 et supérieures +d'Apache
+

Sommaire

+ +

Ce module permet d'autoriser ou d'interdire l'accès à certaines + zones du site web aux utilisateurs authentifiés en fonction de leur + appartenance à un groupe spécifié. Le module + mod_authz_groupfile fournit une fonctionnalité + similaire.

+
+

Directives

+ +

Voir aussi

+
+ +
top
+

AuthDBMGroupFile Directive

+ + + + + + + +
Description:Définit le nom du fichier de base de données contenant la +liste des groupes d'utilisateurs permettant de définir les +autorisations des utilisateurs
Syntaxe:AuthDBMGroupFile chemin-fichier
Contexte:répertoire, .htaccess
AllowOverride:AuthConfig
Statut:Extension
Module:mod_authz_dbm
+

La directive AuthDBMGroupFile sert à + définir le nom d'un fichier DBM contenant la liste des groupes + d'utilisateurs. Les utilisateurs peuvent dès lors se voir autoriser ou + refuser leurs accès selon l'appartenance à tel ou tel groupe. + chemin-fichier est le chemin absolu du + fichier de groupes.

+ +

La clé du fichier de groupes est le nom d'utilisateur. La valeur + de chaque clé est la liste des groupes, séparés par des virgules, + auxquels l'utilisateur appartient. Cette liste ne doit comporter + ni espace, ni caractère ':'.

+ +

Sécurité

+

Le fichier spécifié par la directive +AuthDBMGroupFile doit être situé en dehors de +l'arborescence des documents du serveur web. Ne le placez +surtout pas dans le répertoire qu'il protège, faute +de quoi, les clients pourraient le télécharger, en l'abscence de +protection supplémentaire.

+
+ +

Utilisation combinée de fichiers DBM de groupes et de mots de + passe : dans certains cas, il est plus simple de gérer une seule + base de données contenant les groupes et mots de passe de chaque + utilisateur. L'écriture de programmes de support en est ainsi + simplifiée car ils n'ont plus qu'un seul fichier DBM à gérer et + à verrouiller. Pour ce faire, on attribue le même nom de fichier + DBM aux fichiers de groupes et de mots de passe :

+ +
+AuthDBMGroupFile /www/userbase
+AuthDBMUserFile /www/userbase
+    
+ + +

La clé du fichier DBM unique est le nom d'utilisateur. La + valeur associée à la clé contient :

+ +

+ Mot de passe chiffré : Liste de groupes [ : (ignoré) ] +

+ +

La partie mot de passe contient comme d'habitude le mot de + passe chiffré. Viennent ensuite le caractère ':' et la liste des + groupes séparés par des virgules. Il est possible d'ajouter + d'autres données en fin de ligne après un autre caractère ':', + mais elles seront ignorées par le module d'autorisation. Il s'agit + du format utilisé par www.telescope.org pour sa base de données + combinée groupes et mots de passe.

+ +
+
top
+

AuthzDBMType Directive

+ + + + + + + + +
Description:Définit le type de fichier de base de données contenant +la liste des groupes d'utilisateurs
Syntaxe:AuthzDBMType default|SDBM|GDBM|NDBM|DB
Défaut:AuthzDBMType default
Contexte:répertoire, .htaccess
AllowOverride:AuthConfig
Statut:Extension
Module:mod_authz_dbm
+

Définit le type de fichier de base de données contenant la + liste des groupes d'utilisateurs. Le type de base de données par + défaut est déterminé à la compilation. Les autres types de bases + de données disponibles dépendent aussi de la + configuration de la + compilation.

+ +

Quel que soit le programme que vous utilisez pour créer votre + fichier de groupes, il est impératif que celui-ci soit configuré + pour utiliser le même type de base de données.

+ +
+
+
+

Langues Disponibles:  en  | + fr  | + ko 

+
top

Commentaires

Notice:
This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our mailing lists.
+
+ \ No newline at end of file diff --git a/docs/manual/mod/mod_authz_dbm.xml.fr b/docs/manual/mod/mod_authz_dbm.xml.fr new file mode 100644 index 0000000000..bd35782bce --- /dev/null +++ b/docs/manual/mod/mod_authz_dbm.xml.fr @@ -0,0 +1,132 @@ + + + + + + + + + + + +mod_authz_dbm +Autorisation basée sur les groupes à l'aide de fichiers +DBM +Extension +mod_authz_dbm.c +authz_dbm_module +Disponible depuis les versions 2.1 et supérieures +d'Apache + + +

Ce module permet d'autoriser ou d'interdire l'accès à certaines + zones du site web aux utilisateurs authentifiés en fonction de leur + appartenance à un groupe spécifié. Le module + mod_authz_groupfile fournit une fonctionnalité + similaire.

+
+ +Require + + +AuthDBMGroupFile +Définit le nom du fichier de base de données contenant la +liste des groupes d'utilisateurs permettant de définir les +autorisations des utilisateurs +AuthDBMGroupFile chemin-fichier +directory.htaccess + +AuthConfig + + +

La directive AuthDBMGroupFile sert à + définir le nom d'un fichier DBM contenant la liste des groupes + d'utilisateurs. Les utilisateurs peuvent dès lors se voir autoriser ou + refuser leurs accès selon l'appartenance à tel ou tel groupe. + chemin-fichier est le chemin absolu du + fichier de groupes.

+ +

La clé du fichier de groupes est le nom d'utilisateur. La valeur + de chaque clé est la liste des groupes, séparés par des virgules, + auxquels l'utilisateur appartient. Cette liste ne doit comporter + ni espace, ni caractère ':'.

+ + Sécurité +

Le fichier spécifié par la directive +AuthDBMGroupFile doit être situé en dehors de +l'arborescence des documents du serveur web. Ne le placez +surtout pas dans le répertoire qu'il protège, faute +de quoi, les clients pourraient le télécharger, en l'abscence de +protection supplémentaire.

+
+ +

Utilisation combinée de fichiers DBM de groupes et de mots de + passe : dans certains cas, il est plus simple de gérer une seule + base de données contenant les groupes et mots de passe de chaque + utilisateur. L'écriture de programmes de support en est ainsi + simplifiée car ils n'ont plus qu'un seul fichier DBM à gérer et + à verrouiller. Pour ce faire, on attribue le même nom de fichier + DBM aux fichiers de groupes et de mots de passe :

+ + +AuthDBMGroupFile /www/userbase +AuthDBMUserFile /www/userbase + + +

La clé du fichier DBM unique est le nom d'utilisateur. La + valeur associée à la clé contient :

+ + + Mot de passe chiffré : Liste de groupes [ : (ignoré) ] + + +

La partie mot de passe contient comme d'habitude le mot de + passe chiffré. Viennent ensuite le caractère ':' et la liste des + groupes séparés par des virgules. Il est possible d'ajouter + d'autres données en fin de ligne après un autre caractère ':', + mais elles seront ignorées par le module d'autorisation. Il s'agit + du format utilisé par www.telescope.org pour sa base de données + combinée groupes et mots de passe.

+
+
+ + +AuthzDBMType +Définit le type de fichier de base de données contenant +la liste des groupes d'utilisateurs +AuthzDBMType default|SDBM|GDBM|NDBM|DB +AuthzDBMType default +directory.htaccess + +AuthConfig + + +

Définit le type de fichier de base de données contenant la + liste des groupes d'utilisateurs. Le type de base de données par + défaut est déterminé à la compilation. Les autres types de bases + de données disponibles dépendent aussi de la + configuration de la + compilation.

+ +

Quel que soit le programme que vous utilisez pour créer votre + fichier de groupes, il est impératif que celui-ci soit configuré + pour utiliser le même type de base de données.

+
+
+ +
diff --git a/docs/manual/mod/mod_authz_dbm.xml.meta b/docs/manual/mod/mod_authz_dbm.xml.meta index a7d8373537..c1c330875b 100644 --- a/docs/manual/mod/mod_authz_dbm.xml.meta +++ b/docs/manual/mod/mod_authz_dbm.xml.meta @@ -8,6 +8,7 @@ en + fr ko diff --git a/docs/manual/mod/mod_authz_groupfile.html b/docs/manual/mod/mod_authz_groupfile.html index d9289ad207..f0ae9677b7 100644 --- a/docs/manual/mod/mod_authz_groupfile.html +++ b/docs/manual/mod/mod_authz_groupfile.html @@ -4,6 +4,10 @@ URI: mod_authz_groupfile.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 +URI: mod_authz_groupfile.html.fr +Content-Language: fr +Content-type: text/html; charset=ISO-8859-1 + URI: mod_authz_groupfile.html.ja.utf8 Content-Language: ja Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/mod/mod_authz_groupfile.html.fr b/docs/manual/mod/mod_authz_groupfile.html.fr new file mode 100644 index 0000000000..b2deda87f7 --- /dev/null +++ b/docs/manual/mod/mod_authz_groupfile.html.fr @@ -0,0 +1,125 @@ + + + +mod_authz_groupfile - Serveur Apache HTTP + + + + + + + + +
<-
+
+Apache > Serveur HTTP > Documentation > Version 2.4 > Modules
+
+

Module Apache mod_authz_groupfile

+
+

Langues Disponibles:  en  | + fr  | + ja  | + ko 

+
+ + + + +
Description:Autorisation basée sur les groupes à l'aide de fichiers +textes
Statut:Base
Identificateur de Module:authz_groupfile_module
Fichier Source:mod_authz_groupfile.c
Compatibilité:Disponible depuis les versions 2.1 et supérieures +d'Apache
+

Sommaire

+ +

Ce module permet d'autoriser ou d'interdire l'accès à +certaines zones du site web aux utilisateurs authentifiés en +fonction de leur appartenance à un groupe spécifié. Le module +mod_authz_dbm fournit une fonctionnalité similaire.

+
+

Directives

+ +

Voir aussi

+
+ +
top
+

AuthGroupFile Directive

+ + + + + + + +
Description:Définit le nom d'un fichier texte contenant la liste des +groupes d'utilisateurs permettant de définir les autorisations des +utilisateurs
Syntaxe:AuthGroupFile chemin-fichier
Contexte:répertoire, .htaccess
AllowOverride:AuthConfig
Statut:Base
Module:mod_authz_groupfile
+

La directive AuthGroupFile permet de définir +le nom d'un fichier texte contenant la liste des groupes d'utilisateurs. +L'appartenance d'un utilisateur à tel ou tel groupe pourra dès lors être utilisée +pour définir les permissions d'accès de l'utilisateur. +chemin-fichier est le chemin du fichier de groupes. S'il n'est +pas absolu, ce chemin est considéré comme relatif au répertoire défini par +la directive ServerRoot.

+ +

Chaque ligne du fichier de groupes contient un nom de groupe +suivi du caractère ':' et des noms des utilisateurs membres du groupe +séparés par des espaces.

+ +

Exemple :

+ mon-groupe : bob joe anne +

+ +

Notez que la recherche dans de grands fichiers textes est +très inefficace ; la directive AuthDBMGroupFile fournit de bien meilleures + performances.

+ +

Sécurité

+

Le fichier AuthGroupFile ne doit pas +être stocké dans l'arborescence des documents du site web ; ne le placez +surtout pas dans le répertoire qu'il protège, faute de quoi les +clients pourraient le télécharger.

+
+ +
+
+
+

Langues Disponibles:  en  | + fr  | + ja  | + ko 

+
top

Commentaires

Notice:
This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our mailing lists.
+
+ \ No newline at end of file diff --git a/docs/manual/mod/mod_authz_groupfile.xml.fr b/docs/manual/mod/mod_authz_groupfile.xml.fr new file mode 100644 index 0000000000..8f3f605e93 --- /dev/null +++ b/docs/manual/mod/mod_authz_groupfile.xml.fr @@ -0,0 +1,86 @@ + + + + + + + + + + + +mod_authz_groupfile +Autorisation basée sur les groupes à l'aide de fichiers +textes +Base +mod_authz_groupfile.c +authz_groupfile_module +Disponible depuis les versions 2.1 et supérieures +d'Apache + + +

Ce module permet d'autoriser ou d'interdire l'accès à +certaines zones du site web aux utilisateurs authentifiés en +fonction de leur appartenance à un groupe spécifié. Le module +mod_authz_dbm fournit une fonctionnalité similaire.

+
+ +Require + + +AuthGroupFile +Définit le nom d'un fichier texte contenant la liste des +groupes d'utilisateurs permettant de définir les autorisations des +utilisateurs +AuthGroupFile chemin-fichier +directory.htaccess + +AuthConfig + + +

La directive AuthGroupFile permet de définir +le nom d'un fichier texte contenant la liste des groupes d'utilisateurs. +L'appartenance d'un utilisateur à tel ou tel groupe pourra dès lors être utilisée +pour définir les permissions d'accès de l'utilisateur. +chemin-fichier est le chemin du fichier de groupes. S'il n'est +pas absolu, ce chemin est considéré comme relatif au répertoire défini par +la directive ServerRoot.

+ +

Chaque ligne du fichier de groupes contient un nom de groupe +suivi du caractère ':' et des noms des utilisateurs membres du groupe +séparés par des espaces.

+ + Exemple : + mon-groupe : bob joe anne + + +

Notez que la recherche dans de grands fichiers textes est +très inefficace ; la directive AuthDBMGroupFile fournit de bien meilleures + performances.

+ + Sécurité +

Le fichier AuthGroupFile ne doit pas +être stocké dans l'arborescence des documents du site web ; ne le placez +surtout pas dans le répertoire qu'il protège, faute de quoi les +clients pourraient le télécharger.

+
+
+
+ +
diff --git a/docs/manual/mod/mod_authz_groupfile.xml.meta b/docs/manual/mod/mod_authz_groupfile.xml.meta index 53a4573b4d..89964f81c0 100644 --- a/docs/manual/mod/mod_authz_groupfile.xml.meta +++ b/docs/manual/mod/mod_authz_groupfile.xml.meta @@ -8,6 +8,7 @@ en + fr ja ko diff --git a/docs/manual/mod/mod_proxy_ajp.html b/docs/manual/mod/mod_proxy_ajp.html index 676c871467..2cebf6f27a 100644 --- a/docs/manual/mod/mod_proxy_ajp.html +++ b/docs/manual/mod/mod_proxy_ajp.html @@ -4,6 +4,10 @@ URI: mod_proxy_ajp.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 +URI: mod_proxy_ajp.html.fr +Content-Language: fr +Content-type: text/html; charset=ISO-8859-1 + URI: mod_proxy_ajp.html.ja.utf8 Content-Language: ja Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/mod/mod_proxy_ajp.html.fr b/docs/manual/mod/mod_proxy_ajp.html.fr new file mode 100644 index 0000000000..6d6ea932b5 --- /dev/null +++ b/docs/manual/mod/mod_proxy_ajp.html.fr @@ -0,0 +1,690 @@ + + + +mod_proxy_ajp - Serveur Apache HTTP + + + + + + + + +
<-
+
+Apache > Serveur HTTP > Documentation > Version 2.4 > Modules
+
+

Module Apache mod_proxy_ajp

+
+

Langues Disponibles:  en  | + fr  | + ja 

+
+ + + + +
Description:Module de support AJP pour +mod_proxy
Statut:Extension
Identificateur de Module:proxy_ajp_module
Fichier Source:mod_proxy_ajp.c
Compatibilité:Disponible depuis la version 2.1 d'Apache
+

Sommaire

+ +

Ce module nécessite le chargement de mod_proxy. Il fournit le support du Protocole Apache + JServ version 1.3 (nommé dans la suite de ce document + AJP13).

+ +

Pour être en mesure d'exploiter le protocole AJP13, + il est donc nécessaire de charger les modules + mod_proxy et mod_proxy_ajp.

+ +

Avertissement

+

N'activez pas la fonctionnalité de mandataire avant d'avoir sécurisé votre serveur. Les + serveurs mandataires ouverts sont dangereux non seulement pour + votre réseau, mais aussi pour l'Internet au sens large.

+
+
+ +
top
+
+

Utilisation

+

Ce module permet de mandater en inverse un serveur d'application + d'arrière-plan (comme Apache Tomcat) qui utilise le protocole AJP13. + Son utilisation est similaire à celle d'un mandataire inverse HTTP, + mais s'appuie sur le prefixe ajp:// :

+ +

Mandataire inverse simple

+    ProxyPass /app ajp://backend.example.com:8009/app
+    
+
+ +

On peut aussi configurer un répartiteur de charge :

+

Mandataire inverse avec répartiteur de charge

+<Proxy balancer://cluster>
+    BalancerMember ajp://app1.example.com:8009 loadfactor=1
+    BalancerMember ajp://app2.example.com:8009 loadfactor=2
+    ProxySet lbmethod=bytraffic
+</Proxy>
+ProxyPass /app balancer://cluster/app
+      
+
+ +

Notez qu'en général, la directive ProxyPassReverse n'est pas + nécessaire. La requête AJP inclut l'en-tête host original fourni + au mandataire, et le serveur d'application est sensé générer des + en-têtes auto-référençants relatifs à cet hôte ; aucune réécriture + n'est donc nécessaire.

+ +

La situation la plus courante dans laquelle la directive ProxyPassReverse est nécessaire se + rencontre lorsque le chemin de l'URL au niveau du mandataire est + différente de celle du serveur d'arrière-plan. Dans ce cas, un + en-tête redirect peut être réécrit relativement à l'URL de l'hôte + original (et non du serveur d'arrière-plan ajp:// URL) + ; par exemple :

+

Réécriture d'un chemin mandaté

+ProxyPass /apps/foo ajp://backend.example.com:8009/foo
+ProxyPassReverse /apps/foo http://www.example.com/foo
+    
+
+

Il est cependant préférable en général de déployer l'application + sur le serveur d'arrière-plan avec le même chemin que sur le + mandataire. +

+
top
+
+

Variables d'environnement

+

Les variables d'environnement dont le nom possède le préfixe + AJP_ sont transmises au serveur original en tant + qu'attributs de requête AJP (le préfixe AJP_ étant supprimé du nom + de la clé).

+
top
+
+

Vue d'ensemble du protocole

+

Le protocole AJP13 est orienté paquet. Le format + binaire a été préféré, probablement pour des raisons de + performances, au format texte pourtant plus lisible. Le serveur web + communique avec le conteneur de servlets sur une connexion TCP. Pour + diminuer la charge induite par le processus de création de socket, + le serveur web va tenter d'utiliser des connexions TCP persistantes + avec le conteneur de servlets, et de réutiliser les connexions + pendant plusieurs cycles requêtes/réponse.

+

Lorsqu'une connexion a été assignée à une requête particulière, + elle ne sera utilisée pour aucune autre jusqu'à ce que le cycle de + traitement de la requête se soit terminé. En d'autres termes, il n'y + a pas de multiplexage des requêtes sur une connexion. Ceci se + traduit par un code beaucoup plus simple à chaque extrémité de la + connexion, un nombre plus important de connexions étant cependant + ouvertes en même temps.

+

Lorsque le serveur web a ouvert une connexion vers le conteneur + de servlets, celle-ci peut se trouver dans l'un des états suivants + :

+
    +
  • Idle
    Aucune requête n'est traitée sur cette + connexion.
  • +
  • Assigned
    La connexion fait l'objet d'un traitement de + requête.
  • +
+

Lorsqu'une connexion est assignée au traitement d'une requête + particulière, les informations de base de cette dernière (comme les + en-têtes HTTP, etc...) sont envoyées sur la connexion sous une forme + très condensée (par exemple les chaînes courantes sont codées sous + forme d'entiers). Vous trouverez des détails sur ce format plus + loin dans la structure des paquets de requête. Si la requête possède + un corps (content-length > 0), il est envoyé dans un + paquet séparé immédiatement après.

+

A ce moment, le conteneur est probablement prêt à traiter la + requête. Au cours de ce traitement, il peut renvoyer les messages + suivants au serveur web :

+
    +
  • SEND_HEADERS
    Renvoie un jeu d'en-têtes au navigateur.
  • +
  • SEND_BODY_CHUNK
    Renvoie un tronçon de corps de requête au + navigateur. +
  • +
  • GET_BODY_CHUNK
    Reçoit un autre tronçon de données de la + requête si elle n'a pas encore été transmise intégralement. Ce type + de transmission est nécessaire car les paquets possèdent une taille + maximale fixe, et des quantités quelconques de données peuvent être + contenues dans le corps de la requête (pour un chargement de + fichier, par exemple). Notez que cela n'a rien à voir avec le + transfert HTTP fractionné.
  • +
  • END_RESPONSE
    Termine le cycle du traitement de la + requête.
  • +
+

Chaque message est associé à un paquet de données formaté + différemment. Voir plus loin les structures des paquets de réponses + pour plus de détails.

+
top
+
+

Structure de base des paquets

+

Ce protocole hérite en partie de XDR, mais il diffère sur de + nombreux points (pas d'alignement sur 4 bits, par exemple).

+

Ordre des octets : je ne suis pas sûr du type endian des octets + individuels. Je suppose qu'ils sont de type little-endian, car cela + correspond à la spécification XDR, et je suppose aussi que la + bibliothèque sys/socket fonctionne ainsi automatiquement (du point + de vue du langage C). Il serait souhaitable que quelqu'un possèdant + une meilleure connaissance des appels socket puisse prendre le + relai.

+

Le protocole comporte quatre types de données : octets, booléens, + entiers et chaînes de caractères.

+
+
Octet
Un seul octet.
+
Booléen
+
Un seul octet, 1 = vrai, 0 = faux. + L'utilisation d'autres valeurs non nulles (dans le style C) peut + fonctionner dans certains cas, mais pas dans certains autres..
+
Entier
+
Un nombre compris entre 0 et 2^16 (32768), stocké + sur 2 octets en débutant par l'octet de poids forts.
+
Chaîne
+
Une chaîne de taille variable (longueur limitée à 2^16). Elle + est codée comme suit : les deux premiers octets représentent la + longueur de la chaîne, les octets suivants constituent la chaîne + proprement dite (y compris le '\0' final). Notez que la longueur + encodée dans les deux premiers octets ne prend pas en compte le + '\0' final, de la même manière que strlen. Cela peut + prêter à confusion du point de vue de Java qui est surchargé de + déclarations d'autoincrémentation étranges destinées à traiter + ces terminateurs. Je suppose que le but dans lequel cela a + été conçu ainsi était de permettre au code C d'être plus efficace + lors de la lecture de chaînes en provenance du conteneur de + servlets -- avec le caractère \0 final, le code C peut transmettre + des références dans un seul tampon, sans avoir à effectuer de + copie. En l'absence du caractère \0 final, le code C doit + effectuer une copie afin de pouvoir tenir compte de sa notion de + chaîne.
+
+ +

Taille du paquet

+

Selon la majorité du code, la taille maximale du paquet est de + 8 * 1024 bytes (8K). La taille réelle du paquet est + encodée dans l'en-tête.

+ +

En-têtes de paquet

+

Les paquets envoyés par le serveur vers le conteneur commencent + par 0x1234. Les paquets envoyés par le conteneur vers + le serveur commencent par AB (c'est à dire le code + ASCII de A suivi du code ASCII de B). Ensuite, vient un entier (codé + comme ci-dessus) représentant la longueur des données transmises. + Bien que ceci puisse faire croire que la taille maximale des données + est de 2^16, le code définit en fait ce maximum à 8K.

+ + + + + + + + + + + + + + + + + + + +
Format du paquet (Serveur->Conteneur)
Octet01234...(n+3)
Contenu0x120x34Taille des données (n)Data
+ + + + + + + + + + + + + + + + + + + +
Format du paquet (Conteneur->Serveur)
Octet01234...(n+3)
ContenuABTaille des données (n)Data
+

Pour la plupart des paquets, le premier octet de la charge utile + encode le type de message, à l'exception des paquets contenant un + corps de requête envoyés du serveur vers le conteneur -- ils + comportent un en-tête standard (0x1234 suivi de la taille + du paquet), mais celui-ci n'est suivi d'aucun préfixe.

+

Le serveur web peut envoyer les messages suivants au conteneur + de servlets :

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CodeType de paquetSignification
2Fait suivre la requêteDébute le cycle de traitement de la requête avec les données + qui suivent.
7ArrêtLe serveur web demande au conteneur de s'arrêter.
8PingLe serveur web demande au conteneur de prendre le contrôle + (phase de connexion sécurisée).
10CPingLe serveur web demande au conteneur de répondre rapidement + avec un CPong. +
noneDonnéesTaille (2 octets) et les données correspondantes.
+

À des fins de sécurité, le conteneur n'effectuera réellement son + Arrêt que si la demande provient de la machine par + laquelle il est hébergé.

+

Le premier paquet Données est envoyé immédiatement + après le paquet Faire suivre la requête par le serveur + web.

+

Le conteneur de servlets peut envoyer les types de messages + suivants au serveur web :

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CodeType de paquetSignification
3Envoi d'un tronçon de corpsEnvoi d'un tronçon de corps depuis le conteneur de servlets + vers le serveur web (et probablement vers le navigateur).
4Envoie les en-têtesEnvoi des en-têtes de réponse depuis le conteneur de + servlets vers le serveur web (et probablement vers le + navigateur).
5Fin de la réponseMarque la fin de la réponse (et par conséquent du cycle de + traitement de la requête). +
6Réception du tronçon de corps suivantRéception de la suite des données de la requête si elles + n'ont pas encore été entièrement transmises.
9Réponse CPongLa réponse à une requête CPing
+

Chacun des messages ci-dessus possède une structure interne + différente dont vous trouverez les détails ci-dessous.

+ +
top
+
+

Structure des paquets de +requête

+

Pour les messages de type Faire suivre la requête depuis + le serveur vers le conteneur :

+
+AJP13_FORWARD_REQUEST :=
+    prefix_code      (byte) 0x02 = JK_AJP13_FORWARD_REQUEST
+    method           (byte)
+    protocol         (string)
+    req_uri          (string)
+    remote_addr      (string)
+    remote_host      (string)
+    server_name      (string)
+    server_port      (integer)
+    is_ssl           (boolean)
+    num_headers      (integer)
+    request_headers *(req_header_name req_header_value)
+    attributes      *(attribut_name attribute_value)
+    request_terminator (byte) OxFF
+    
+

Les request_headers possèdent la structure suivante + : +

+req_header_name :=
+    sc_req_header_name | (string)  [voir ci-dessous pour la manière dont
+    ceci est interprété]
+
+sc_req_header_name := 0xA0xx (integer)
+
+req_header_value := (string)
+
+

Les attributes sont optionnels et possèdent la + structure suivante :

+
+attribute_name := sc_a_name | (sc_a_req_attribute string)
+
+attribute_value := (string)
+
+    
+

Un des en-têtes les plus importants est + content-length, car il indique si le conteneur doit ou + non attendre un autre paquet immédiatement.

+

Description détaillée de la requête que le serveur + fait suivre vers le conteneur +

+

Préfixe de la requête

+

Pour toutes les requêtes, ce préfixe est 2. Voir ci-dessus pour + les détails des autres codes de préfixes.

+ +

Méthode

+

La méthode HTTP, encodée sous la forme d'un seul octet :

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Nom commandeCode
OPTIONS1
GET2
HEAD3
POST4
PUT5
DELETE6
TRACE7
PROPFIND8
PROPPATCH9
MKCOL10
COPY11
MOVE12
LOCK13
UNLOCK14
ACL15
REPORT16
VERSION-CONTROL17
CHECKIN18
CHECKOUT19
UNCHECKOUT20
SEARCH21
MKWORKSPACE22
UPDATE23
LABEL24
MERGE25
BASELINE_CONTROL26
MKACTIVITY27
+

Les versions futures d'ajp13 pourront transmettre des méthodes + supplémentaires, même si elles ne font pas partie de cette + liste.

+ +

protocol, req_uri, remote_addr, remote_host, server_name, + server_port, is_ssl

+

Les significations de ces éléments sont triviales. Ils sont tous + obligatoires et seront envoyés avec chaque requête.

+ +

En-têtes

+

La structure de request_headers est la suivante + : tout d'abord, le nombre d'en-têtes num_headers est + encodé, suivi d'une liste de paires nom d'en-tête + req_header_name / valeur req_header_value. + Les noms d'en-têtes courants sont codés sous forme d'entiers afin de + gagner de la place. Si le nom d'en-tête ne fait partie de la liste + des en-têtes courants, il est encodé normalement (une chaîne de + caractères préfixée par la taille). La liste des en-têtes courants + sc_req_header_name avec leurs codes se présente comme + suit (il sont tous sensibles à la casse) :

+ + + + + + + + + + + + + + + + + + + +
NomValeur du codeNom du code
accept0xA001SC_REQ_ACCEPT
accept-charset0xA002SC_REQ_ACCEPT_CHARSET +
accept-encoding0xA003SC_REQ_ACCEPT_ENCODING +
accept-language0xA004SC_REQ_ACCEPT_LANGUAGE +
authorization0xA005SC_REQ_AUTHORIZATION
connection0xA006SC_REQ_CONNECTION
content-type0xA007SC_REQ_CONTENT_TYPE
content-length0xA008SC_REQ_CONTENT_LENGTH
cookie0xA009SC_REQ_COOKIE
cookie20xA00ASC_REQ_COOKIE2
host0xA00BSC_REQ_HOST
pragma0xA00CSC_REQ_PRAGMA
referer0xA00DSC_REQ_REFERER
user-agent0xA00ESC_REQ_USER_AGENT
+

Le code Java qui lit ceci extrait l'entier représenté par les + deux premiers octets, et si le premier octet est + '0xA0', il utilise l'entier représenté par le deuxième + octet comme index d'un tableau de noms d'en-têtes. Si le premier + octet n'est pas 0xA0, l'entier représenté par les deux + octets est considéré comme la longueur d'une chaîne qui est alors + lue.

+

Ceci ne peut fonctionner que si aucun nom d'en-tête ne possède + une taille supérieure à 0x9999 (==0xA000 - 1), ce qui + est vraisemblable, bien qu'un peu arbitraire.

+

Note:

+ L'en-tête content-length est extrêmement important. + S'il est présent et non nul, le conteneur considère que la requête + possède un corps (une requête POST, par exemple), et lit + immédiatement le paquet suivant dans le flux d'entrée pour extraire + ce corps. +
+ +

Attributs

+

Les attributs préfixés par ? (par exemple + ?context) sont tous optionnels. Chacun d'eux est + représenté par un octet correspondant au type de l'attribut et par + sa valeur (chaîne ou entier). Ils peuvent être envoyés dans un ordre + quelconque (bien que le code C les envoie dans l'ordre ci-dessous). + Un code de terminaison spécial est envoyé pour signaler la fin de la + liste des attributs optionnels. La liste des codes est la suivante + :

+ + + + + + + + + + + + + + +
InformationValeur codeType de valeurNote
?context0x01-Non implémenté + actuellement +
?servlet_path0x02-Non implémenté + actuellement +
?remote_user0x03String
?auth_type0x04String
?query_string0x05String
?jvm_route0x06String
?ssl_cert0x07String
?ssl_cipher0x08String
?ssl_session0x09String
?req_attribute0x0AStringNom (le + nom de l'attribut vient ensuite)
?ssl_key_size0x0BInteger
are_done0xFF-request_terminator
+

context et servlet_path ne sont pas + définis actuellement par le code C, et la majorité du code Java + ignore complètement ce qui est envoyé par l'intermédiaire de ces + champs (il va même parfois s'interrompre si une chaîne est + envoyée après un de ces codes). Je ne sais pas si c'est une bogue ou + une fonctionnalité non implémentée, ou tout simplement du code + obsolète, mais en tout cas, il n'est pris en charge par aucune des + deux extrémités de la connexion.

+

remote_user et auth_type concernent + probablement l'authentification au niveau HTTP, et contiennent le + nom de l'utilisateur distant ainsi que le type d'authentification + utilisée pour établir son identité (à savoir Basic, Digest).

+

query_string, ssl_cert, + ssl_cipher et ssl_session contiennent les + éléments HTTP et HTTPS correspondants.

+

jvm_route est utilisé dans le cadre des sessions + persistantes, en associant une session utilisateur à une instance + Tomcat particulière en présence de plusieurs répartiteurs de + charge.

+

Au delà de cette liste de base, tout autre attribut + supplémentaire peut être envoyé via le code + req_attribute 0x0A. Une paire de chaînes + représentant le nom et la valeur de l'attribut est envoyée + immédiatement après chaque instance de ce code. Les variables + d'environnement sont transmises par cette méthode.

+

Enfin, lorsque tous les attributs ont été transmis, le + terminateur d'attributs, 0xFF, est envoyé. Ce dernier + indique à la fois la fin de la liste d'attributs et la fin du paquet + de la requête

+ +
top
+
+

Structure du paquet de la +réponse

+

Pour les messages que le conteneur peut renvoyer au + serveur.

+
+AJP13_SEND_BODY_CHUNK :=
+  prefix_code   3
+  chunk_length  (integer)
+  chunk        *(byte)
+  chunk_terminator (byte) Ox00
+
+
+AJP13_SEND_HEADERS :=
+  prefix_code       4
+  http_status_code  (integer)
+  http_status_msg   (string)
+  num_headers       (integer)
+  response_headers *(res_header_name header_value)
+
+res_header_name :=
+    sc_res_header_name | (string)   [voir ci-dessous pour la manière
+    dont ceci est interprété]
+
+sc_res_header_name := 0xA0 (byte)
+
+header_value := (string)
+
+AJP13_END_RESPONSE :=
+  prefix_code       5
+  reuse             (boolean)
+
+
+AJP13_GET_BODY_CHUNK :=
+  prefix_code       6
+  requested_length  (integer)
+    
+

Détails:

+

Envoi d'un tronçon de corps

+

Le tronçon se compose essentiellement de données binaires et est + renvoyé directement au navigateur.

+ +

Envoi des en-têtes

+

Les code et message d'état correspondent aux code et message HTTP + habituels (par exemple 200 et OK). Les + noms d'en-têtes de réponses sont codés de la même façon que les noms + d'en-têtes de requêtes. Voir ci-dessus le codage des en-têtes pour + plus de détails à propos de la manière dont les codes se distinguent + des chaînes.
+ Les codes des en-têtes courants sont ::

+ + + + + + + + + + + + + +
NomValeur code
Content-Type0xA001
Content-Language0xA002
Content-Length0xA003
Date0xA004
Last-Modified0xA005
Location0xA006
Set-Cookie0xA007
Set-Cookie20xA008
Servlet-Engine0xA009
Status0xA00A
WWW-Authenticate0xA00B
+

La valeur de l'en-tête est codée immédiatement après le code ou + la chaîne du nom d'en-tête.

+ +

Fin de la réponse

+

Signale la fin de ce cycle de traitement de requête. Si le + drapeau reuse est à true (==1), cette + connexion TCP peut être réutilisée pour traiter de nouvelles + requêtes entrantes. Si reuse est à false (toute autre + valeur que 1 dans le véritable code C), la connexion sera + fermée.

+ +

Réception d'un tronçon de corps

+

Le conteneur réclame la suite des données de la requête (dans le + cas où la taille du corps était trop importante pour pouvoir être + contenue dans le premier paquet envoyé, où lorsque la requête est + fractionnée). Le serveur va alors envoyer un paquet contenant une + quantité de données correspondant au minimum de la + request_length, la taille maximale de corps envoyée + (8186 (8 Koctets - 6)), et le nombre réel d'octets + restants à envoyer pour ce corps de requête.
+ S'il ne reste plus de données à transmettre pour ce corps de requête + (c'est à dire si le conteneur de servlets tente de lire au delà de + la fin du corps), le serveur va renvoyer un paquet vide + dont la charge utile est de longueur 0 et se présentant sous la + forme (0x12,0x34,0x00,0x00).

+ +
+
+
+

Langues Disponibles:  en  | + fr  | + ja 

+
top

Commentaires

Notice:
This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our mailing lists.
+
+ \ No newline at end of file diff --git a/docs/manual/mod/mod_proxy_ajp.xml.fr b/docs/manual/mod/mod_proxy_ajp.xml.fr new file mode 100644 index 0000000000..09a599611f --- /dev/null +++ b/docs/manual/mod/mod_proxy_ajp.xml.fr @@ -0,0 +1,651 @@ + + + + + + + + + + + +mod_proxy_ajp +Module de support AJP pour +mod_proxy +Extension +mod_proxy_ajp.c +proxy_ajp_module +Disponible depuis la version 2.1 d'Apache + + +

Ce module nécessite le chargement de mod_proxy. Il fournit le support du Protocole Apache + JServ version 1.3 (nommé dans la suite de ce document + AJP13).

+ +

Pour être en mesure d'exploiter le protocole AJP13, + il est donc nécessaire de charger les modules + mod_proxy et mod_proxy_ajp.

+ + Avertissement +

N'activez pas la fonctionnalité de mandataire avant d'avoir sécurisé votre serveur. Les + serveurs mandataires ouverts sont dangereux non seulement pour + votre réseau, mais aussi pour l'Internet au sens large.

+
+
+ +mod_proxy +Documentation sur les variables +d'environnement + +
Utilisation +

Ce module permet de mandater en inverse un serveur d'application + d'arrière-plan (comme Apache Tomcat) qui utilise le protocole AJP13. + Son utilisation est similaire à celle d'un mandataire inverse HTTP, + mais s'appuie sur le prefixe ajp:// :

+ + Mandataire inverse simple + + ProxyPass /app ajp://backend.example.com:8009/app + + + +

On peut aussi configurer un répartiteur de charge :

+ Mandataire inverse avec répartiteur de charge + +<Proxy balancer://cluster> + BalancerMember ajp://app1.example.com:8009 loadfactor=1 + BalancerMember ajp://app2.example.com:8009 loadfactor=2 + ProxySet lbmethod=bytraffic +</Proxy> +ProxyPass /app balancer://cluster/app + + + +

Notez qu'en général, la directive ProxyPassReverse n'est pas + nécessaire. La requête AJP inclut l'en-tête host original fourni + au mandataire, et le serveur d'application est sensé générer des + en-têtes auto-référençants relatifs à cet hôte ; aucune réécriture + n'est donc nécessaire.

+ +

La situation la plus courante dans laquelle la directive ProxyPassReverse est nécessaire se + rencontre lorsque le chemin de l'URL au niveau du mandataire est + différente de celle du serveur d'arrière-plan. Dans ce cas, un + en-tête redirect peut être réécrit relativement à l'URL de l'hôte + original (et non du serveur d'arrière-plan ajp:// URL) + ; par exemple :

+ Réécriture d'un chemin mandaté + +ProxyPass /apps/foo ajp://backend.example.com:8009/foo +ProxyPassReverse /apps/foo http://www.example.com/foo + + +

Il est cependant préférable en général de déployer l'application + sur le serveur d'arrière-plan avec le même chemin que sur le + mandataire. +

+
+ +
Variables d'environnement +

Les variables d'environnement dont le nom possède le préfixe + AJP_ sont transmises au serveur original en tant + qu'attributs de requête AJP (le préfixe AJP_ étant supprimé du nom + de la clé).

+
+ +
Vue d'ensemble du protocole +

Le protocole AJP13 est orienté paquet. Le format + binaire a été préféré, probablement pour des raisons de + performances, au format texte pourtant plus lisible. Le serveur web + communique avec le conteneur de servlets sur une connexion TCP. Pour + diminuer la charge induite par le processus de création de socket, + le serveur web va tenter d'utiliser des connexions TCP persistantes + avec le conteneur de servlets, et de réutiliser les connexions + pendant plusieurs cycles requêtes/réponse.

+

Lorsqu'une connexion a été assignée à une requête particulière, + elle ne sera utilisée pour aucune autre jusqu'à ce que le cycle de + traitement de la requête se soit terminé. En d'autres termes, il n'y + a pas de multiplexage des requêtes sur une connexion. Ceci se + traduit par un code beaucoup plus simple à chaque extrémité de la + connexion, un nombre plus important de connexions étant cependant + ouvertes en même temps.

+

Lorsque le serveur web a ouvert une connexion vers le conteneur + de servlets, celle-ci peut se trouver dans l'un des états suivants + :

+
    +
  • Idle
    Aucune requête n'est traitée sur cette + connexion.
  • +
  • Assigned
    La connexion fait l'objet d'un traitement de + requête.
  • +
+

Lorsqu'une connexion est assignée au traitement d'une requête + particulière, les informations de base de cette dernière (comme les + en-têtes HTTP, etc...) sont envoyées sur la connexion sous une forme + très condensée (par exemple les chaînes courantes sont codées sous + forme d'entiers). Vous trouverez des détails sur ce format plus + loin dans la structure des paquets de requête. Si la requête possède + un corps (content-length > 0), il est envoyé dans un + paquet séparé immédiatement après.

+

A ce moment, le conteneur est probablement prêt à traiter la + requête. Au cours de ce traitement, il peut renvoyer les messages + suivants au serveur web :

+
    +
  • SEND_HEADERS
    Renvoie un jeu d'en-têtes au navigateur.
  • +
  • SEND_BODY_CHUNK
    Renvoie un tronçon de corps de requête au + navigateur. +
  • +
  • GET_BODY_CHUNK
    Reçoit un autre tronçon de données de la + requête si elle n'a pas encore été transmise intégralement. Ce type + de transmission est nécessaire car les paquets possèdent une taille + maximale fixe, et des quantités quelconques de données peuvent être + contenues dans le corps de la requête (pour un chargement de + fichier, par exemple). Notez que cela n'a rien à voir avec le + transfert HTTP fractionné.
  • +
  • END_RESPONSE
    Termine le cycle du traitement de la + requête.
  • +
+

Chaque message est associé à un paquet de données formaté + différemment. Voir plus loin les structures des paquets de réponses + pour plus de détails.

+
+ +
Structure de base des paquets +

Ce protocole hérite en partie de XDR, mais il diffère sur de + nombreux points (pas d'alignement sur 4 bits, par exemple).

+

Ordre des octets : je ne suis pas sûr du type endian des octets + individuels. Je suppose qu'ils sont de type little-endian, car cela + correspond à la spécification XDR, et je suppose aussi que la + bibliothèque sys/socket fonctionne ainsi automatiquement (du point + de vue du langage C). Il serait souhaitable que quelqu'un possèdant + une meilleure connaissance des appels socket puisse prendre le + relai.

+

Le protocole comporte quatre types de données : octets, booléens, + entiers et chaînes de caractères.

+
+
Octet
Un seul octet.
+
Booléen
+
Un seul octet, 1 = vrai, 0 = faux. + L'utilisation d'autres valeurs non nulles (dans le style C) peut + fonctionner dans certains cas, mais pas dans certains autres..
+
Entier
+
Un nombre compris entre 0 et 2^16 (32768), stocké + sur 2 octets en débutant par l'octet de poids forts.
+
Chaîne
+
Une chaîne de taille variable (longueur limitée à 2^16). Elle + est codée comme suit : les deux premiers octets représentent la + longueur de la chaîne, les octets suivants constituent la chaîne + proprement dite (y compris le '\0' final). Notez que la longueur + encodée dans les deux premiers octets ne prend pas en compte le + '\0' final, de la même manière que strlen. Cela peut + prêter à confusion du point de vue de Java qui est surchargé de + déclarations d'autoincrémentation étranges destinées à traiter + ces terminateurs. Je suppose que le but dans lequel cela a + été conçu ainsi était de permettre au code C d'être plus efficace + lors de la lecture de chaînes en provenance du conteneur de + servlets -- avec le caractère \0 final, le code C peut transmettre + des références dans un seul tampon, sans avoir à effectuer de + copie. En l'absence du caractère \0 final, le code C doit + effectuer une copie afin de pouvoir tenir compte de sa notion de + chaîne.
+
+ +
Taille du paquet +

Selon la majorité du code, la taille maximale du paquet est de + 8 * 1024 bytes (8K). La taille réelle du paquet est + encodée dans l'en-tête.

+
+
En-têtes de paquet +

Les paquets envoyés par le serveur vers le conteneur commencent + par 0x1234. Les paquets envoyés par le conteneur vers + le serveur commencent par AB (c'est à dire le code + ASCII de A suivi du code ASCII de B). Ensuite, vient un entier (codé + comme ci-dessus) représentant la longueur des données transmises. + Bien que ceci puisse faire croire que la taille maximale des données + est de 2^16, le code définit en fait ce maximum à 8K.

+ + + + + + + + + + + + + + + + + + + +
Format du paquet (Serveur->Conteneur)
Octet01234...(n+3)
Contenu0x120x34Taille des données (n)Data
+ + + + + + + + + + + + + + + + + + + +
Format du paquet (Conteneur->Serveur)
Octet01234...(n+3)
ContenuABTaille des données (n)Data
+

Pour la plupart des paquets, le premier octet de la charge utile + encode le type de message, à l'exception des paquets contenant un + corps de requête envoyés du serveur vers le conteneur -- ils + comportent un en-tête standard (0x1234 suivi de la taille + du paquet), mais celui-ci n'est suivi d'aucun préfixe.

+

Le serveur web peut envoyer les messages suivants au conteneur + de servlets :

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CodeType de paquetSignification
2Fait suivre la requêteDébute le cycle de traitement de la requête avec les données + qui suivent.
7ArrêtLe serveur web demande au conteneur de s'arrêter.
8PingLe serveur web demande au conteneur de prendre le contrôle + (phase de connexion sécurisée).
10CPingLe serveur web demande au conteneur de répondre rapidement + avec un CPong. +
noneDonnéesTaille (2 octets) et les données correspondantes.
+

À des fins de sécurité, le conteneur n'effectuera réellement son + Arrêt que si la demande provient de la machine par + laquelle il est hébergé.

+

Le premier paquet Données est envoyé immédiatement + après le paquet Faire suivre la requête par le serveur + web.

+

Le conteneur de servlets peut envoyer les types de messages + suivants au serveur web :

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CodeType de paquetSignification
3Envoi d'un tronçon de corpsEnvoi d'un tronçon de corps depuis le conteneur de servlets + vers le serveur web (et probablement vers le navigateur).
4Envoie les en-têtesEnvoi des en-têtes de réponse depuis le conteneur de + servlets vers le serveur web (et probablement vers le + navigateur).
5Fin de la réponseMarque la fin de la réponse (et par conséquent du cycle de + traitement de la requête). +
6Réception du tronçon de corps suivantRéception de la suite des données de la requête si elles + n'ont pas encore été entièrement transmises.
9Réponse CPongLa réponse à une requête CPing
+

Chacun des messages ci-dessus possède une structure interne + différente dont vous trouverez les détails ci-dessous.

+
+
+
Structure des paquets de +requête +

Pour les messages de type Faire suivre la requête depuis + le serveur vers le conteneur :

+
+AJP13_FORWARD_REQUEST :=
+    prefix_code      (byte) 0x02 = JK_AJP13_FORWARD_REQUEST
+    method           (byte)
+    protocol         (string)
+    req_uri          (string)
+    remote_addr      (string)
+    remote_host      (string)
+    server_name      (string)
+    server_port      (integer)
+    is_ssl           (boolean)
+    num_headers      (integer)
+    request_headers *(req_header_name req_header_value)
+    attributes      *(attribut_name attribute_value)
+    request_terminator (byte) OxFF
+    
+

Les request_headers possèdent la structure suivante + : +

+req_header_name :=
+    sc_req_header_name | (string)  [voir ci-dessous pour la manière dont
+    ceci est interprété]
+
+sc_req_header_name := 0xA0xx (integer)
+
+req_header_value := (string)
+
+

Les attributes sont optionnels et possèdent la + structure suivante :

+
+attribute_name := sc_a_name | (sc_a_req_attribute string)
+
+attribute_value := (string)
+
+    
+

Un des en-têtes les plus importants est + content-length, car il indique si le conteneur doit ou + non attendre un autre paquet immédiatement.

+
Description détaillée de la requête que le serveur + fait suivre vers le conteneur +
+
Préfixe de la requête +

Pour toutes les requêtes, ce préfixe est 2. Voir ci-dessus pour + les détails des autres codes de préfixes.

+
+
Méthode +

La méthode HTTP, encodée sous la forme d'un seul octet :

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Nom commandeCode
OPTIONS1
GET2
HEAD3
POST4
PUT5
DELETE6
TRACE7
PROPFIND8
PROPPATCH9
MKCOL10
COPY11
MOVE12
LOCK13
UNLOCK14
ACL15
REPORT16
VERSION-CONTROL17
CHECKIN18
CHECKOUT19
UNCHECKOUT20
SEARCH21
MKWORKSPACE22
UPDATE23
LABEL24
MERGE25
BASELINE_CONTROL26
MKACTIVITY27
+

Les versions futures d'ajp13 pourront transmettre des méthodes + supplémentaires, même si elles ne font pas partie de cette + liste.

+
+
protocol, req_uri, remote_addr, remote_host, server_name, + server_port, is_ssl +

Les significations de ces éléments sont triviales. Ils sont tous + obligatoires et seront envoyés avec chaque requête.

+
+
En-têtes +

La structure de request_headers est la suivante + : tout d'abord, le nombre d'en-têtes num_headers est + encodé, suivi d'une liste de paires nom d'en-tête + req_header_name / valeur req_header_value. + Les noms d'en-têtes courants sont codés sous forme d'entiers afin de + gagner de la place. Si le nom d'en-tête ne fait partie de la liste + des en-têtes courants, il est encodé normalement (une chaîne de + caractères préfixée par la taille). La liste des en-têtes courants + sc_req_header_name avec leurs codes se présente comme + suit (il sont tous sensibles à la casse) :

+ + + + + + + + + + + + + + + + + + + +
NomValeur du codeNom du code
accept0xA001SC_REQ_ACCEPT
accept-charset0xA002SC_REQ_ACCEPT_CHARSET +
accept-encoding0xA003SC_REQ_ACCEPT_ENCODING +
accept-language0xA004SC_REQ_ACCEPT_LANGUAGE +
authorization0xA005SC_REQ_AUTHORIZATION
connection0xA006SC_REQ_CONNECTION
content-type0xA007SC_REQ_CONTENT_TYPE
content-length0xA008SC_REQ_CONTENT_LENGTH
cookie0xA009SC_REQ_COOKIE
cookie20xA00ASC_REQ_COOKIE2
host0xA00BSC_REQ_HOST
pragma0xA00CSC_REQ_PRAGMA
referer0xA00DSC_REQ_REFERER
user-agent0xA00ESC_REQ_USER_AGENT
+

Le code Java qui lit ceci extrait l'entier représenté par les + deux premiers octets, et si le premier octet est + '0xA0', il utilise l'entier représenté par le deuxième + octet comme index d'un tableau de noms d'en-têtes. Si le premier + octet n'est pas 0xA0, l'entier représenté par les deux + octets est considéré comme la longueur d'une chaîne qui est alors + lue.

+

Ceci ne peut fonctionner que si aucun nom d'en-tête ne possède + une taille supérieure à 0x9999 (==0xA000 - 1), ce qui + est vraisemblable, bien qu'un peu arbitraire.

+ Note: + L'en-tête content-length est extrêmement important. + S'il est présent et non nul, le conteneur considère que la requête + possède un corps (une requête POST, par exemple), et lit + immédiatement le paquet suivant dans le flux d'entrée pour extraire + ce corps. + +
+
Attributs +

Les attributs préfixés par ? (par exemple + ?context) sont tous optionnels. Chacun d'eux est + représenté par un octet correspondant au type de l'attribut et par + sa valeur (chaîne ou entier). Ils peuvent être envoyés dans un ordre + quelconque (bien que le code C les envoie dans l'ordre ci-dessous). + Un code de terminaison spécial est envoyé pour signaler la fin de la + liste des attributs optionnels. La liste des codes est la suivante + :

+ + + + + + + + + + + + + + +
InformationValeur codeType de valeurNote
?context0x01-Non implémenté + actuellement +
?servlet_path0x02-Non implémenté + actuellement +
?remote_user0x03String
?auth_type0x04String
?query_string0x05String
?jvm_route0x06String
?ssl_cert0x07String
?ssl_cipher0x08String
?ssl_session0x09String
?req_attribute0x0AStringNom (le + nom de l'attribut vient ensuite)
?ssl_key_size0x0BInteger
are_done0xFF-request_terminator
+

context et servlet_path ne sont pas + définis actuellement par le code C, et la majorité du code Java + ignore complètement ce qui est envoyé par l'intermédiaire de ces + champs (il va même parfois s'interrompre si une chaîne est + envoyée après un de ces codes). Je ne sais pas si c'est une bogue ou + une fonctionnalité non implémentée, ou tout simplement du code + obsolète, mais en tout cas, il n'est pris en charge par aucune des + deux extrémités de la connexion.

+

remote_user et auth_type concernent + probablement l'authentification au niveau HTTP, et contiennent le + nom de l'utilisateur distant ainsi que le type d'authentification + utilisée pour établir son identité (à savoir Basic, Digest).

+

query_string, ssl_cert, + ssl_cipher et ssl_session contiennent les + éléments HTTP et HTTPS correspondants.

+

jvm_route est utilisé dans le cadre des sessions + persistantes, en associant une session utilisateur à une instance + Tomcat particulière en présence de plusieurs répartiteurs de + charge.

+

Au delà de cette liste de base, tout autre attribut + supplémentaire peut être envoyé via le code + req_attribute 0x0A. Une paire de chaînes + représentant le nom et la valeur de l'attribut est envoyée + immédiatement après chaque instance de ce code. Les variables + d'environnement sont transmises par cette méthode.

+

Enfin, lorsque tous les attributs ont été transmis, le + terminateur d'attributs, 0xFF, est envoyé. Ce dernier + indique à la fois la fin de la liste d'attributs et la fin du paquet + de la requête

+
+
+ +
Structure du paquet de la +réponse +

Pour les messages que le conteneur peut renvoyer au + serveur.

+
+AJP13_SEND_BODY_CHUNK :=
+  prefix_code   3
+  chunk_length  (integer)
+  chunk        *(byte)
+  chunk_terminator (byte) Ox00
+
+
+AJP13_SEND_HEADERS :=
+  prefix_code       4
+  http_status_code  (integer)
+  http_status_msg   (string)
+  num_headers       (integer)
+  response_headers *(res_header_name header_value)
+
+res_header_name :=
+    sc_res_header_name | (string)   [voir ci-dessous pour la manière
+    dont ceci est interprété]
+
+sc_res_header_name := 0xA0 (byte)
+
+header_value := (string)
+
+AJP13_END_RESPONSE :=
+  prefix_code       5
+  reuse             (boolean)
+
+
+AJP13_GET_BODY_CHUNK :=
+  prefix_code       6
+  requested_length  (integer)
+    
+
Détails:
+
Envoi d'un tronçon de corps +

Le tronçon se compose essentiellement de données binaires et est + renvoyé directement au navigateur.

+
+
Envoi des en-têtes +

Les code et message d'état correspondent aux code et message HTTP + habituels (par exemple 200 et OK). Les + noms d'en-têtes de réponses sont codés de la même façon que les noms + d'en-têtes de requêtes. Voir ci-dessus le codage des en-têtes pour + plus de détails à propos de la manière dont les codes se distinguent + des chaînes.
+ Les codes des en-têtes courants sont ::

+ + + + + + + + + + + + + +
NomValeur code
Content-Type0xA001
Content-Language0xA002
Content-Length0xA003
Date0xA004
Last-Modified0xA005
Location0xA006
Set-Cookie0xA007
Set-Cookie20xA008
Servlet-Engine0xA009
Status0xA00A
WWW-Authenticate0xA00B
+

La valeur de l'en-tête est codée immédiatement après le code ou + la chaîne du nom d'en-tête.

+
+
Fin de la réponse +

Signale la fin de ce cycle de traitement de requête. Si le + drapeau reuse est à true (==1), cette + connexion TCP peut être réutilisée pour traiter de nouvelles + requêtes entrantes. Si reuse est à false (toute autre + valeur que 1 dans le véritable code C), la connexion sera + fermée.

+
+
Réception d'un tronçon de corps +

Le conteneur réclame la suite des données de la requête (dans le + cas où la taille du corps était trop importante pour pouvoir être + contenue dans le premier paquet envoyé, où lorsque la requête est + fractionnée). Le serveur va alors envoyer un paquet contenant une + quantité de données correspondant au minimum de la + request_length, la taille maximale de corps envoyée + (8186 (8 Koctets - 6)), et le nombre réel d'octets + restants à envoyer pour ce corps de requête.
+ S'il ne reste plus de données à transmettre pour ce corps de requête + (c'est à dire si le conteneur de servlets tente de lire au delà de + la fin du corps), le serveur va renvoyer un paquet vide + dont la charge utile est de longueur 0 et se présentant sous la + forme (0x12,0x34,0x00,0x00).

+
+
+ + +
diff --git a/docs/manual/mod/mod_proxy_ajp.xml.meta b/docs/manual/mod/mod_proxy_ajp.xml.meta index 4c9c620beb..21fdf5389b 100644 --- a/docs/manual/mod/mod_proxy_ajp.xml.meta +++ b/docs/manual/mod/mod_proxy_ajp.xml.meta @@ -8,6 +8,7 @@ en + fr ja diff --git a/docs/manual/mod/mod_substitute.html b/docs/manual/mod/mod_substitute.html index 4d0f620a72..e54d340aa5 100644 --- a/docs/manual/mod/mod_substitute.html +++ b/docs/manual/mod/mod_substitute.html @@ -3,3 +3,7 @@ URI: mod_substitute.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 + +URI: mod_substitute.html.fr +Content-Language: fr +Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/mod/mod_substitute.html.fr b/docs/manual/mod/mod_substitute.html.fr new file mode 100644 index 0000000000..bf73768660 --- /dev/null +++ b/docs/manual/mod/mod_substitute.html.fr @@ -0,0 +1,179 @@ + + + +mod_substitute - Serveur Apache HTTP + + + + + + + + +
<-
+
+Apache > Serveur HTTP > Documentation > Version 2.4 > Modules
+
+

Module Apache mod_substitute

+
+

Langues Disponibles:  en  | + fr 

+
+ + + + +
Description:Effectue des opérations de recherche/remplacement sur les +corps de réponses
Statut:Extension
Identificateur de Module:substitute_module
Fichier Source:mod_substitute.c
Compatibilité:Disponible depuis la version 2.2.7 +du serveur HTTP Apache
+

Sommaire

+ +

mod_substitute fournit un mécanisme permettant + d'effectuer des substitutions de chaînes fixes ou d'expressions + rationnelles sur les corps de réponses.

+
+

Directives

+ +
+ +
top
+

Substitute Directive

+ + + + + + + +
Description:Modèle de substition dans le contenu de la +réponse
Syntaxe:Substitute s/modèle/substitution/[infq]
Contexte:répertoire, .htaccess
AllowOverride:FileInfo
Statut:Extension
Module:mod_substitute
+

La directive Substitute permet de + spécifier un modèle de recherche/remplacement à appliquer au corps + de la réponse.

+ +

La signification du modèle peut être modifiée via toute + combinaison de ces drapeaux :

+ +
+
i
+
Effectue une comparaison sans tenir compte de la casse.
+
n
+
Par défaut, le modèle est traité en tant qu'expression + rationnelle. Le drapeau n force le traitement du + modèle en tant que chaîne fixe.
+
f
+ +
Avec le drapeau f, mod_substitute met à plat le + résultat d'une substitution (les conteneurs ou buckets ne sont + pas dissociés), ce qui permet à d'éventuelles substitutions + ultérieures de s'effectuer sur cette dernière. C'est le + comportement par défaut.
+
q
+ +
Avec le drapeau q, mod_substitute dissocie les + conteneurs (ou buckets) après chaque substitution. Ceci peut + améliorer la rapidité de la réponse et diminuer la quantité de + mémoire utilisée, mais ne doit être utilisé que s'il n'existe + aucune possibilité pour que le résultat d'une substitution ne + corresponde au modèle ou à l'expression rationnelle d'une + substitution ultérieure.
+
+ +

Exemple

+<Location />
+    AddOutputFilterByType SUBSTITUTE text/html
+    Substitute s/foo/bar/ni
+</Location>
+        
+
+ +

Si le modèle ou la chaîne de substitution contient un caractère + slash '/', il faut utiliser un autre délimiteur :

+ +

Exemple d'utilisation d'un délimiteur + alternatif

+<Location />
+    AddOutputFilterByType SUBSTITUTE text/html
+    Substitute "s|<BR */?>|<br />|i"
+</Location>
+        
+
+ +

Lorsqu'on utilise des expressions rationnelles, on peut insérer + des références arrières dans les opérations de comparaison et de + substitution, comme illustré dans l'exemple suivant :

+

Exemple d'utilisation de références arrières et de captures

+<Location />
+    AddOutputFilterByType SUBSTITUTE text/html
+    # "foo=k,bar=k" -> "foo/bar=k"
+    Substitute "s|foo=(\w+),bar=\1|foo/bar=$1"
+</Location>
+    
+
+ +

Un scénario courant d'utilisation de mod_substitute + est la situation où un serveur frontal mandate des requêtes pour un + serveur d'arrière-plan qui renvoie des documents HTML contenant des + URLs intégrées codées en dur qui font référence à ce serveur + d'arrière-plan. Ces URLs ne fonctionnent pas pour l'utilisateur + final car le serveur d'arrière-plan est hors d'atteinte.

+ +

On peut, dans ce cas, utiliser mod_substutite pour + réécrire ces URLs afin qu'elles soit utilisables dans la partie + située derrière le mandataire :

+ +

Réécriture des URLs intégrées à un contenu mandaté

+ProxyPass /blog/ http://internal.blog.example.com
+ProxyPassReverse /blog/ http://internal.blog.example.com/
+
+Substitute "s|http://internal.blog.example.com/|http://www.example.com/blog/|i"
+    
+
+ +

La directive ProxyPassReverse modifie tout en-tête + Location (redirection) envoyé par le serveur + d'arrière-plan et, dans cet exemple, la directive + Substitute se charge à son tour de la modification de + la réponse HTML.

+ + +
+
+
+

Langues Disponibles:  en  | + fr 

+
top

Commentaires

Notice:
This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our mailing lists.
+
+ \ No newline at end of file diff --git a/docs/manual/mod/mod_substitute.xml.fr b/docs/manual/mod/mod_substitute.xml.fr new file mode 100644 index 0000000000..d2ea40ced3 --- /dev/null +++ b/docs/manual/mod/mod_substitute.xml.fr @@ -0,0 +1,151 @@ + + + + + + + + + + + +mod_substitute +Effectue des opérations de recherche/remplacement sur les +corps de réponses +Extension +mod_substitute.c +substitute_module +Disponible depuis la version 2.2.7 +du serveur HTTP Apache + + +

mod_substitute fournit un mécanisme permettant + d'effectuer des substitutions de chaînes fixes ou d'expressions + rationnelles sur les corps de réponses.

+
+ + +Substitute +Modèle de substition dans le contenu de la +réponse +Substitute s/modèle/substitution/[infq] +directory +.htaccess +FileInfo + + +

La directive Substitute permet de + spécifier un modèle de recherche/remplacement à appliquer au corps + de la réponse.

+ +

La signification du modèle peut être modifiée via toute + combinaison de ces drapeaux :

+ +
+
i
+
Effectue une comparaison sans tenir compte de la casse.
+
n
+
Par défaut, le modèle est traité en tant qu'expression + rationnelle. Le drapeau n force le traitement du + modèle en tant que chaîne fixe.
+
f
+ +
Avec le drapeau f, mod_substitute met à plat le + résultat d'une substitution (les conteneurs ou buckets ne sont + pas dissociés), ce qui permet à d'éventuelles substitutions + ultérieures de s'effectuer sur cette dernière. C'est le + comportement par défaut.
+
q
+ +
Avec le drapeau q, mod_substitute dissocie les + conteneurs (ou buckets) après chaque substitution. Ceci peut + améliorer la rapidité de la réponse et diminuer la quantité de + mémoire utilisée, mais ne doit être utilisé que s'il n'existe + aucune possibilité pour que le résultat d'une substitution ne + corresponde au modèle ou à l'expression rationnelle d'une + substitution ultérieure.
+
+ + Exemple + +<Location /> + AddOutputFilterByType SUBSTITUTE text/html + Substitute s/foo/bar/ni +</Location> + + + +

Si le modèle ou la chaîne de substitution contient un caractère + slash '/', il faut utiliser un autre délimiteur :

+ + Exemple d'utilisation d'un délimiteur + alternatif + +<Location /> + AddOutputFilterByType SUBSTITUTE text/html + Substitute "s|<BR */?>|<br />|i" +</Location> + + + +

Lorsqu'on utilise des expressions rationnelles, on peut insérer + des références arrières dans les opérations de comparaison et de + substitution, comme illustré dans l'exemple suivant :

+ Exemple d'utilisation de références arrières et de captures + +<Location /> + AddOutputFilterByType SUBSTITUTE text/html + # "foo=k,bar=k" -> "foo/bar=k" + Substitute "s|foo=(\w+),bar=\1|foo/bar=$1" +</Location> + + + +

Un scénario courant d'utilisation de mod_substitute + est la situation où un serveur frontal mandate des requêtes pour un + serveur d'arrière-plan qui renvoie des documents HTML contenant des + URLs intégrées codées en dur qui font référence à ce serveur + d'arrière-plan. Ces URLs ne fonctionnent pas pour l'utilisateur + final car le serveur d'arrière-plan est hors d'atteinte.

+ +

On peut, dans ce cas, utiliser mod_substutite pour + réécrire ces URLs afin qu'elles soit utilisables dans la partie + située derrière le mandataire :

+ + Réécriture des URLs intégrées à un contenu mandaté + +ProxyPass /blog/ http://internal.blog.example.com +ProxyPassReverse /blog/ http://internal.blog.example.com/ + +Substitute "s|http://internal.blog.example.com/|http://www.example.com/blog/|i" + + + +

La directive ProxyPassReverse modifie tout en-tête + Location (redirection) envoyé par le serveur + d'arrière-plan et, dans cet exemple, la directive + Substitute se charge à son tour de la modification de + la réponse HTML.

+ +
+
+ +
diff --git a/docs/manual/mod/mod_substitute.xml.meta b/docs/manual/mod/mod_substitute.xml.meta index f9dbd2933f..c991ba2149 100644 --- a/docs/manual/mod/mod_substitute.xml.meta +++ b/docs/manual/mod/mod_substitute.xml.meta @@ -8,5 +8,6 @@ en + fr