From: Lucien Gentis Ce module permet de déterminer le Ce module permet de déterminer le Ce module est dérivé d'une version libre de la commande Unix
+ Ce module est dérivé d'une version libre de la commande Unix
Le fichier contient du texte ASCII sur 4 à 5 colonnes. Les lignes
- vides sont autorisées mais ignorées. Toute ligne commençant par un
- dièse ( Le fichier contient du texte ASCII sur 4 Ã 5 colonnes. Les lignes
+ vides sont autorisées mais ignorées. Toute ligne commençant par un
+ dièse ( type de donnée à rechercher type de donnée à rechercher Par exemple, les lignes du fichier magique suivantes
- permettraient de reconnaître certains formats audio :file(1)
, à savoir en se basant sur les premiers octets
- du fichier. Il est conçu comme une "seconde ligne de défense" pour
- les cas où file(1)
, Ã savoir en se basant sur les premiers octets
+ du fichier. Il est conçu comme une "seconde ligne de défense" pour
+ les cas où file(1)
qui utilise des "nombres magiques" et autres
marques distinctives issus du contenu du fichier pour essayer de
- déterminer le type de contenu. Ce module n'est activé que si le
- fichier magique est spécifié par la directive #
) est un commentaire. Les autres lignes sont
- interprétées en colonnes comme suit :#
) est un commentaire. Les autres lignes sont
+ interprétées en colonnes comme suit :
Colonne Description
+ 1
- numéro de l'octet à partir duquel la vérification débute
- ">
" indique une dépendance par rapport à la
- dernière ligne non-">
"numéro de l'octet à partir duquel la vérification débute
+ ">
" indique une dépendance par rapport à la
+ dernière ligne non-">
"2
-
+
- byte
caractère unique caractère unique
short
entier sur 16 bits selon l'ordre de la machine long
entier sur 32 bits selon l'ordre de la machine
+
- string
chaîne de taille choisie chaîne de taille choisie
date
date au format entier long (secondes depuis le temps Unix epoch/1970)
@@ -91,7 +91,7 @@ octets de son contenu
beshort
+ 3
- contenu des données à rechercher contenu des données à rechercher
@@ -101,7 +101,7 @@ octets de son contenu
4
type MIME si correspondance
# Sun/NeXT audio data @@ -116,10 +116,10 @@ octets de son contenu >12 belong 23 audio/x-adpcm
Et celles-ci permettraient de reconnaître la différence entre les +
Et celles-ci permettraient de reconnaître la différence entre les
fichiers *.doc
qui contiennent des documents Microsoft
Word et les documents FrameMaker (ce sont des formats de fichiers
- incompatibles qui possèdent le même suffixe).
# Frame @@ -137,45 +137,45 @@ octets de son contenu 0 string \333\245-\0\0\0 application/msword
Un champ optionnel codage MIME peut être ajouté dans la cinquième - colonne. Par exemple, cette ligne permet de reconnaître les fichiers - compressés par gzip et définissent le type de codage.
+Un champ optionnel codage MIME peut être ajouté dans la cinquième + colonne. Par exemple, cette ligne permet de reconnaître les fichiers + compressés par gzip et définissent le type de codage.
# gzip (GNU zip, à ne pas confondre avec +# gzip (GNU zip, Ã ne pas confondre avec # l'archiveur zip [Info-ZIP/PKWARE]) 0 string \037\213 application/octet-stream x-gzip
Ce module n'est pas fait pour tous les systèmes. Si votre système - parvient à peine à supporter sa charge, ou si vous testez les - performances d'un serveur web, il est déconseillé d'utiliser ce - module car son fonctionnement a un prix en matière de ressources - consommées.
+Ce module n'est pas fait pour tous les systèmes. Si votre système + parvient à peine à supporter sa charge, ou si vous testez les + performances d'un serveur web, il est déconseillé d'utiliser ce + module car son fonctionnement a un prix en matière de ressources + consommées.
-Des efforts ont cependant été fournis pour améliorer les +
Des efforts ont cependant été fournis pour améliorer les
performances du code original de la commande file(1)
en
- l'adaptant pour fonctionner sur un serveur web à forte charge. Il a
- été conçu pour un serveur sur lequel des milliers d'utilisateurs
- publient leurs propres documents, ce qui est probablement très
- courant sur un intranet. Il s'avère souvent bénéfique qu'un serveur
- puisse prendre des décisions plus pertinentes à propos du contenu
+ l'adaptant pour fonctionner sur un serveur web à forte charge. Il a
+ été conçu pour un serveur sur lequel des milliers d'utilisateurs
+ publient leurs propres documents, ce qui est probablement très
+ courant sur un intranet. Il s'avère souvent bénéfique qu'un serveur
+ puisse prendre des décisions plus pertinentes à propos du contenu
d'un fichier que celles se basant sur le nom du fichier seul, ne
serait-ce que pour diminuer le nombre d'appels du type "pourquoi ma
page ne s'affiche-t-elle pas ?" survenant lorsque les utilisateurs
- nomment leurs fichiers incorrectement. Vous devez déterminer si la
- charge supplémentaire convient à votre environnement.
Les notes suivantes s'appliquent au module
Note de traduction : ces informations de type légal ne sont pas traductibles
+ conformité avec les restrictions de copyright des contributeurs + qui requièrent de les accepter. +Note de traduction : ces informations de type légal ne sont pas traductibles
mod_mime_magic: MIME type lookup via file magic numbers La directive
@@ -257,22 +257,22 @@ octets de son contenu
conf/magic
. Les chemins sans slash '/' de début sont
- relatifs au répertoire défini par la directive
Ce module active le chiffrement SSL sur un port spécifique. Il - s'appuie sur la fonctionnalité de chiffrement SSL intégrée au - système d'exploitation Netware.
+Ce module active le chiffrement SSL sur un port spécifique. Il + s'appuie sur la fonctionnalité de chiffrement SSL intégrée au + système d'exploitation Netware.
Cette directive permet de spécifier le port et le nom de - certificat de style eDirectory qui seront utilisés pour activer le - chiffrement SSL. En outre, un troisième paramètre optionnel permet +
Cette directive permet de spécifier le port et le nom de + certificat de style eDirectory qui seront utilisés pour activer le + chiffrement SSL. En outre, un troisième paramètre optionnel permet d'activer l'authentification mutuelle.
Cette directive permet de spécifier une liste de fichiers (au - format DER) contenant des certificats clients utilisés lors de - l'établissement d'une connexion SSL mandatée. Chaque certificat - client utilisé par un serveur doit être enregistré séparément dans +
Cette directive permet de spécifier une liste de fichiers (au
+ format DER) contenant des certificats clients utilisés lors de
+ l'établissement d'une connexion SSL mandatée. Chaque certificat
+ client utilisé par un serveur doit être enregistré séparément dans
son propre fichier .der
.
Cette directive permet de promouvoir une connexion établie sur
- l'adresse IP et/ou le port spécifiés au statut de connexion SSL à la
- demande du client. L'adresse et/ou le port doivent avoir été définis
- au préalable par une directive
Ce module nécessite le chargement de Protocole Apache
- JServ version 1.3
(nommé dans la suite de ce document
+ 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
+
Pour être en mesure d'exploiter le protocole AJP13
,
+ il est donc nécessaire de charger les modules
N'activez pas la fonctionnalité de mandataire avant d'avoir sécurisé votre serveur. Les +
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.
+ votre réseau, mais aussi pour l'Internet au sens large.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,
+ 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://
:
On peut aussi configurer un répartiteur de charge :
-On peut aussi configurer un répartiteur de charge :
+Notez qu'en général, la directive
La situation la plus courante dans laquelle la directive ajp://
URL)
+ 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 :
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 +
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.
Les variables d'environnement dont le nom possède le préfixe +
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é).
Le protocole AJP13
est orienté paquet. Le format
- binaire a été préféré, probablement pour des raisons de
+
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,
+ 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.
+ 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 + de servlets, celle-ci peut se trouver dans l'un des états suivants :
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 +
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 :
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.
+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.
Ce protocole hérite en partie de XDR, mais il diffère sur de +
Ce protocole hérite en partie de XDR, mais il diffère sur de nombreux points (pas d'alignement sur 4 bits, par exemple).
-AJP13 utilise les octets selon leur ordre d'arrivée par le réseau - pour tous les types de données.
-Le protocole comporte quatre types de données : octets, booléens, - entiers et chaînes de caractères.
+AJP13 utilise les octets selon leur ordre d'arrivée par le réseau + pour tous les types de données.
+Le protocole comporte quatre types de données : octets, booléens, + entiers et chaînes de caractères.
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..0 et 2^16 (32768)
, stocké
- sur 2 octets en débutant par l'octet de poids forts.0 et 2^16 (32768)
, stocké
+ sur 2 octets en débutant par l'octet de poids forts.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
+ 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
+ é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.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.
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.
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.
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.
Contenu | 0x12 | 0x34 | -Taille des données (n) | +Taille 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.
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 :
2 | -Fait suivre la requête | -Débute le cycle de traitement de la requête avec les données + | Fait suivre la requête | +Débute le cycle de traitement de la requête avec les données qui suivent. |
7 | -Arrêt | -Le serveur web demande au conteneur de s'arrêter. | +Arrêt | +Le serveur web demande au conteneur de s'arrêter. |
8 | Ping | -Le serveur web demande au conteneur de prendre le contrôle - (phase de connexion sécurisée). | +Le serveur web demande au conteneur de prendre le contrôle + (phase de connexion sécurisée). | |
10 | CPing | -Le serveur web demande au conteneur de répondre rapidement + | Le serveur web demande au conteneur de répondre rapidement avec un CPong. | |
none | -Données | -Taille (2 octets) et les données correspondantes. | +Données | +Taille (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
+
à 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 :
@@ -319,43 +319,43 @@ ProxyPassReverse "/apps/foo" "http://www.example.com/foo"Chacun des messages ci-dessus possède une structure interne - différente dont vous trouverez les détails ci-dessous.
+Chacun des messages ci-dessus possède une structure interne + différente dont vous trouverez les détails ci-dessous.
Pour les messages de type Faire suivre la requête depuis +requête +
Pour les messages de type Faire suivre la requête depuis le serveur vers le conteneur :
AJP13_FORWARD_REQUEST := @@ -373,18 +373,18 @@ AJP13_FORWARD_REQUEST := attributes *(attribut_name attribute_value) request_terminator (byte) OxFF
Les request_headers
possèdent la structure suivante
+
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 | (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
+
Les attributes
sont optionnels et possèdent la
structure suivante :
attribute_name := sc_a_name | (sc_a_req_attribute string) @@ -392,18 +392,18 @@ attribute_name := sc_a_name | (sc_a_req_attribute string) attribute_value := (string)
Un des en-têtes les plus importants est +
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.
Pour toutes les requêtes, ce préfixe est 2. Voir ci-dessus pour - les détails des autres codes de préfixes.
+Pour toutes les requêtes, ce préfixe est 2. Voir ci-dessus pour + les détails des autres codes de préfixes.
La méthode HTTP, encodée sous la forme d'un seul octet :
+La méthode HTTP, encodée sous la forme d'un seul octet :
Nom commande | Code |
OPTIONS | 1 |
BASELINE_CONTROL | 26 |
MKACTIVITY | 27 |
Les versions futures d'ajp13 pourront transmettre des méthodes - supplémentaires, même si elles ne font pas partie de cette +
Les versions futures d'ajp13 pourront transmettre des méthodes + supplémentaires, même si elles ne font pas partie de cette liste.
Les significations de ces éléments sont triviales. Ils sont tous - obligatoires et seront envoyés avec chaque requête.
+Les significations de ces éléments sont triviales. Ils sont tous + obligatoires et seront envoyés avec chaque requête.
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
+ : 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) :
sc_req_header_name
avec leurs codes se présente comme
+ suit (il sont tous sensibles à la casse) :
Nom | Valeur du code | Nom du code |
accept | 0xA001 | SC_REQ_ACCEPT |
referer | 0xA00D | SC_REQ_REFERER |
user-agent | 0xA00E | SC_REQ_USER_AGENT |
Le code Java qui lit ceci extrait l'entier représenté par les +
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
+ '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 à 0x9FFF (==0xA000 - 1)
, ce qui
+
Ceci ne peut fonctionner que si aucun nom d'en-tête ne possède
+ une taille supérieure à 0x9FFF (==0xA000 - 1)
, ce qui
est vraisemblable, bien qu'un peu arbitraire.
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
+ 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.
Les attributs préfixés par ?
(par exemple
+
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
+ 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
+ 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
:
Information | Valeur code | Type de valeur | Note |
?context | 0x01 | - | Non implémenté + |
?context | 0x01 | - | Non implémenté actuellement |
?servlet_path | 0x02 | - | Non implémenté + |
?servlet_path | 0x02 | - | Non implémenté actuellement |
?remote_user | 0x03 | String | |
are_done | 0xFF | - | 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
+ é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
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
Pour les messages que le conteneur peut renvoyer au serveur.
@@ -576,8 +576,8 @@ AJP13_SEND_HEADERS := 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 | (string) [voir ci-dessous pour la manière + dont ceci est interprété] sc_res_header_name := 0xA0 (byte) @@ -592,19 +592,19 @@ AJP13_GET_BODY_CHUNK := prefix_code 6 requested_length (integer)
Le tronçon se compose essentiellement de données binaires et est - renvoyé directement au navigateur.
+Le tronçon se compose essentiellement de données binaires et est + renvoyé directement au navigateur.
Les code et message d'état correspondent aux code et message HTTP
+ 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 ::
+ Les codes des en-têtes courants sont ::
Nom | Valeur code |
Content-Type | 0xA001 |
Status | 0xA00A |
WWW-Authenticate | 0xA00B |
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.
+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.
Signale la fin de ce cycle de traitement de requête. Si le
- drapeau Signale la fin de ce cycle de traitement de requête. Si le
+ drapeau reuse
est à true (toute valeur autre que
+
reuse
est à true (toute valeur autre que
0 en langage C pur)
, cette
- connexion TCP peut être réutilisée pour traiter de nouvelles
- requêtes entrantes. Si reuse
est à false
- (==0), la connexion sera fermée.reuse
est à false
+ (==0), la connexion sera fermée.
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
- 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
+ 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
+ dont la charge utile est de longueur 0 et se présentant sous la
forme (0x12,0x34,0x00,0x00)
.