Serveur Apache HTTP Version 2.4

| Description: | Personnalisation des en-t�tes de requ�tes et de r�ponses HTTP |
|---|---|
| Statut: | Extension |
| Identificateur�de�Module: | headers_module |
| Fichier�Source: | mod_headers.c |
Ce module fournit des directives permettant de contr�ler et modifier les en-t�tes de requ�tes et de r�ponses HTTP. Les en-t�tes peuvent �tre fusionn�s, remplac�s ou supprim�s.
Les directives fournies par mod_headers peuvent
s'ins�rer presque partout dans la configuration du serveur, et on
peut limiter leur port�e en les pla�ant dans des sections de configuration.
La chronologie du traitement est importante et est affect�e par l'ordre d'apparition des directives dans le fichier de configuration et par leur placement dans les sections de configuration. Ainsi, ces deux directives ont un effet diff�rent si leur ordre est invers� :
RequestHeader append MirrorID "mirror 12"
RequestHeader unset MirrorID
Dans cet ordre, l'en-t�te MirrorID n'est pas d�fini.
Si l'ordre des directives �tait invers�, l'en-t�te
MirrorID serait d�fini � "mirror 12".
mod_headers peut agir soir pr�cocement, soit
tardivement au niveau de la requ�te. Le mode normal est le mode
tardif, lorsque les en-t�tes de requ�te sont d�finis, imm�diatement
avant l'ex�cution du g�n�rateur de contenu, et pour les en-t�tes de
r�ponse, juste au moment o� la r�ponse est envoy�e sur le r�seau.
Utilisez toujours le mode tardif sur un serveur en production.
Le mode pr�coce a �t� con�u � des fins d'aide aux tests et au
d�bogage pour les d�veloppeurs. Les directives d�finies en utilisant
le mot-cl� early sont cens�es agir au tout d�but du
traitement de la requ�te. Cela signifie que l'on peut les utiliser
pour simuler diff�rentes requ�tes et d�finir des situations de test,
tout en gardant � l'esprit que les en-t�tes peuvent �tre modifi�s �
tout moment par d'autres modules avant que le r�ponse ne soit
g�n�r�e.
Comme les directives pr�coces sont trait�es avant que le
chemin de la requ�te ne soit parcouru, les en-t�tes
pr�coces ne peuvent �tre d�finis que dans un contexte de serveur
principal ou de serveur virtuel. Les directives pr�coces ne peuvent
pas d�pendre d'un chemin de requ�te, si bien qu'elles �choueront
dans des contextes tels que <Directory> ou
<Location>.
Header echo ^TS
mon-en-t�te, qui
contient un horodatage permettant de d�terminer le moment o� la
requ�te a �t� re�ue, et le temps qui s'est �coul� jusqu'� ce que
la requ�te ait commenc� � �tre servie. Cet en-t�te peut �tre
utilis� par le client pour estimer la charge du serveur ou
isoler les goulets d'�tranglement entre le client et le
serveur.
Header set mon-en-t�te "%D %t"
le r�sultat est l'ajout � la r�ponse d'un en-t�te du type :
mon-en-t�te: D=3775428 t=991424704447256
Header set mon-en-t�te "Bonjour Joe. Il a fallu %D microsecondes \
� Apache pour servir cette requ�te."
le r�sultat est l'ajout � la r�ponse d'un en-t�te du type :
Header set MyHeader "Bonjour Joe. Il a fallu D=3775428 microsecondes � Apache
pour servir cette requ�te."
mon-en-t�te � la r�ponse si et
seulement si l'en-t�te mon-en-t�te-requ�te est
pr�sent dans la requ�te. Ceci peut s'av�rer utile pour g�n�rer
des en-t�tes de r�ponse "� la t�te du client". Notez que cet
exemple n�cessite les services du module
mod_setenvif.
SetEnvIf MyRequestHeader myvalue HAVE_MyRequestHeader
Header set MyHeader "%D %t mytext" env=HAVE_MyRequestHeader
Si l'en-t�te mon-en-t�te-requ�te: mavaleur est
pr�sent dans la requ�te HTTP, la r�ponse contiendra un en-t�te
du type :
mon-en-t�te: D=3775428 t=991424704447256 montexte
RequestHeader edit Destination ^https: http: early
CGI,
NO_CACHE et NO_STORE existent pour la
requ�te) :
Header merge Cache-Control no-cache env=CGI
Header merge Cache-Control no-cache env=NO_CACHE
Header merge Cache-Control no-store env=NO_STORE
alors, la r�ponse contiendra l'en-t�te suivant :
Cache-Control: no-cache, no-store
Si append avait �t� utilis� � la place de
merge, la r�ponse aurait contenu l'en-t�te suivant
:
Cache-Control: no-cache, no-cache, no-store
Header set Set-Cookie testcookie "expr=-z %{req:Cookie}"
| Description: | Configure les en-t�tes d'une r�ponse HTTP |
|---|---|
| Syntaxe: | Header [condition] add|append|echo|edit|edit*|merge|set|unset|note
en-t�te [valeur] [remplacement]
[early|env=[!]variable]|expr=expression]
|
| Contexte: | configuration du serveur, serveur virtuel, r�pertoire, .htaccess |
| AllowOverride: | FileInfo |
| Statut: | Extension |
| Module: | mod_headers |
| Compatibilit�: | La condition par d�faut est temporairement pass�e � "always" dans les version 2.3.9 et 2.3.10 |
Cette directive permet de remplacer, fusionner, ou supprimer des en-t�tes de r�ponse HTTP. L'en-t�te est modifi� juste apr�s que le gestionnaire de contenu et les filtres en sortie ne s'ex�cutent, ce qui permet la modification des en-t�tes sortants.
L'argument optionnel condition permet de d�terminer
sur quelle table interne d'en-t�tes de r�ponses cette directive va
op�rer. D'autres composants du serveur peuvent avoir stock� leurs
en-t�tes de r�ponses dans la table correspondant �
onsuccess ou dans celle correspondant �
always. Dans ce contexte, "Always" fait r�f�rence au
choix d'envoyer les en-t�tes que vous ajoutez aux r�ponses, qu'elle
soient avec succ�s ou �chou�es ; par contre, si votre action est une
fonction d'un en-t�te existant, vous devrez lire la documentation de
mani�re plus approfondie car dans ce cas, les choses se compliquent.
Vous pouvez avoir � changer la valeur par d�faut
onsuccess en always dans des circonstances
similaires � celles expos�es plus loin. Notez aussi que la r�p�tition
de cette directive avec les deux conditions peut �tre pertinente
dans certains sc�narios, car always n'englobe pas
onsuccess en ce qui concerne les en-t�tes existants :
always est utilis�e dans la r�ponse
d�finitive.always et non dans la table par
d�faut.onsuccess.L'action que cette directive provoque est d�termin�e par le premier argument (ou par le second argument si une condition est sp�cifi�e). Il peut prendre une des valeurs suivantes :
addset, append ou merge.appendechoeditedit*edit n'effectuera une
recherche/remplacement qu'une seule fois dans la valeur de
l'en-t�te, alors que la forme edit* en effectuera autant
que le nombre d'apparition de la cha�ne � remplacer.mergesetsetifemptyunsetnoteCet argument est suivi d'un nom d'en-t�te qui peut se
terminer par un caract�re ':', mais ce n'est pas obligatoire. La
casse est ignor�e avec set, append,
merge, add, unset et
edit. Le nom d'en-t�te est sensible � la
casse pour echo et peut �tre une expression rationnelle.
Avec set, append, merge et
add, une valeur est sp�cifi�e comme
argument suivant. Si valeur contient des espaces, elle
doit �tre entour�e de guillemets. valeur peut �tre une
cha�ne de caract�res, une cha�ne contenant des sp�cificateurs de
format, ou une combinaison des deux. valeur supporte les
sp�cificateurs de format suivants :
| Format | Description |
|---|---|
%% |
Le caract�re pourcentage |
%t |
Le moment de r�ception de la requ�te en temps
universel coordonn� depuis le temps epoch (Jan. 1, 1970) et
exprim� en microsecondes. La valeur est pr�c�d�e de
t=. |
%D |
Le temps �coul� entre la r�ception de la requ�te et l'envoi
des en-t�tes sur le r�seau. Il s'agit de la dur�e de traitement
de la requ�te. La valeur est pr�c�d�e de D=. La
valeur est exprim�e en microsecondes. |
%l |
La charge courante du serveur. Ce sont les valeurs fournies
par getloadavg() qui repr�sentent la charge
courante, ainsi que la charge moyenne pendant les cinq et les
quinze derni�res minutes. Chaque valeur est pr�c�d�e de
l= et s�par�e des autres par un slash
/.
|
%i |
Le pourcentage de disponibilit� de httpd (0 � 100) bas� sur
le nombre de threads et de processus disponibles. La valeur est
pr�c�d�e de i=.
|
%b |
Le pourcentage d'utilisation de httpd (0 � 100) bas� sur
le nombre de threads et de processus disponibles. La valeur est
pr�c�d�e de b=.
|
%{NOM_VARIABLE}e |
Le contenu de la variable
d'environnement NOM_VARIABLE. |
%{NOM_VARIABLE}s |
Le contenu de la variable
d'environnement SSL NOM_VARIABLE, si
mod_ssl est activ�. |
Le sp�cificateur de format %s est disponible
depuis la version 2.1 d'Apache ; il peut �tre utilis� � la place
de %e pour �viter de devoir sp�cifier
SSLOptions +StdEnvVars. Cependant, si
SSLOptions +StdEnvVars doit tout de m�me �tre
sp�cifi� pour une raison quelconque, %e sera plus
efficace que %s.
editn�cessite les deux arguments
valeur, qui est une expression
rationnelle, et une cha�ne additionnelle
remplacement. Depuis la version 2.4.7, la cha�ne de
remplacement peut aussi contenir des sp�cificateurs de format.
La directive Header peut �tre suivie d'un
argument additionnel qui peut prendre les valeurs suivantes :
earlyenv=[!]variablevariable existe. Un ! devant
variable inverse le test, et la directive ne
s'appliquera alors que si variable n'est pas d�finie.expr=expressionExcept� le cas du mode pr�coce, les
directives Header sont trait�es juste avant
l'envoi de la r�ponse sur le r�seau. Cela signifie qu'il est
possible de d�finir et/ou modifier la plupart des en-t�tes, �
l'exception de ceux qui sont ajout�s par le filtre HTTP
d'en-t�te, comme Content-Type.
| Description: | Configure les en-t�tes d'une requ�te HTTP |
|---|---|
| Syntaxe: | RequestHeader add|append|edit|edit*|merge|set|unset
en-t�te [valeur] [remplacement]
[early|env=[!]variable]|expr=expression]
|
| Contexte: | configuration du serveur, serveur virtuel, r�pertoire, .htaccess |
| AllowOverride: | FileInfo |
| Statut: | Extension |
| Module: | mod_headers |
Cette directive permet de remplacer, fusionner, modifier ou supprimer des en-t�tes de requ�te HTTP. L'en-t�te est modifi� juste avant que le gestionnaire de contenu ne s'ex�cute, ce qui permet la modification des en-t�tes entrants. L'action effectu�e est d�termin�e par le premier argument. Ce dernier accepte les valeurs suivantes :
addset, append ou merge.appendedit*edit, la cha�ne de l'en-t�te correspondant au mod�le ne
sera recherch�e et remplac�e qu'une seule fois, alors qu'avec
edit*, elle le sera pour chacune de ses instances si
elle appara�t plusieurs fois.mergesetsetifemptyunsetCet argument est suivi d'un nom d'en-t�te qui peut se terminer
par un caract�re ':', mais ce n'est pas obligatoire. La casse est
ignor�e. Avec set, append,
merge et add, une valeur est
fournie en troisi�me argument. Si une valeur contient des
espaces, elle doit �tre entour�e de guillemets. Avec
unset, aucune valeur ne doit appara�tre.
valeur peut �tre une cha�ne de caract�res, une cha�ne
contenant des sp�cificateurs de format, ou une combinaison des deux.
Les sp�cificateurs de format support�s sont les m�mes que ceux de la
directive Header, �
laquelle vous pouvez vous reporter pour plus de d�tails. Avec
edit, les deux arguments valeur et
remplacement sont obligatoires, et correspondent
respectivement � une expression
rationnelle et � une cha�ne de remplacement.
La directive RequestHeader peut �tre
suivie d'un argument suppl�mentaire, qui pourra prendre les valeurs
suivantes :
earlyenv=[!]variablevariable existe. Un ! devant
variable inverse le test, et la directive ne
s'appliquera alors que si variable n'est pas d�finie.expr=expressionExcept� le cas du mode pr�coce, la directive
RequestHeader est trait�e juste avant la
prise en compte de la requ�te par son gestionnaire, au cours de la
phase de v�rification. Ceci permet la modification des en-t�tes
g�n�r�s par le navigateur, ou par les filtres en entr�e
d'Apache.