]> granicus.if.org Git - apache/blob - docs/manual/mod/mod_headers.html.fr
Merge in APR[-util] macros from branches/trunk-buildconf-noapr
[apache] / docs / manual / mod / mod_headers.html.fr
1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head>
4 <meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
5 <!--
6         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
7               This file is generated from xml source: DO NOT EDIT
8         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
9       -->
10 <title>mod_headers - Serveur Apache HTTP Version 2.5</title>
11 <link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
12 <link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
13 <link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
14 <script src="../style/scripts/prettify.min.js" type="text/javascript">
15 </script>
16
17 <link href="../images/favicon.ico" rel="shortcut icon" /></head>
18 <body>
19 <div id="page-header">
20 <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p>
21 <p class="apache">Serveur Apache HTTP Version 2.5</p>
22 <img alt="" src="../images/feather.png" /></div>
23 <div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="../images/left.gif" /></a></div>
24 <div id="path">
25 <a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.5</a> &gt; <a href="./">Modules</a></div>
26 <div id="page-content">
27 <div id="preamble"><h1>Module Apache mod_headers</h1>
28 <div class="toplang">
29 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_headers.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
30 <a href="../fr/mod/mod_headers.html" title="Français">&nbsp;fr&nbsp;</a> |
31 <a href="../ja/mod/mod_headers.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
32 <a href="../ko/mod/mod_headers.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
33 </div>
34 <table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Personnalisation des en-têtes de requêtes et de réponses
35 HTTP</td></tr>
36 <tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
37 <tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur de Module:</a></th><td>headers_module</td></tr>
38 <tr><th><a href="module-dict.html#SourceFile">Fichier Source:</a></th><td>mod_headers.c</td></tr></table>
39 <h3>Sommaire</h3>
40
41     <p>Ce module fournit des directives permettant de contrôler et
42     modifier les en-têtes de requêtes et de réponses HTTP. Les en-têtes
43     peuvent être fusionnés, remplacés ou supprimés.</p>
44 </div>
45 <div id="quickview"><h3>Sujets</h3>
46 <ul id="topics">
47 <li><img alt="" src="../images/down.gif" /> <a href="#order">Chronologie du traitement</a></li>
48 <li><img alt="" src="../images/down.gif" /> <a href="#early">Traitement précoce et traitement
49 tardif</a></li>
50 <li><img alt="" src="../images/down.gif" /> <a href="#examples">Exemples</a></li>
51 </ul><h3 class="directives">Directives</h3>
52 <ul id="toc">
53 <li><img alt="" src="../images/down.gif" /> <a href="#header">Header</a></li>
54 <li><img alt="" src="../images/down.gif" /> <a href="#requestheader">RequestHeader</a></li>
55 </ul>
56 <h3>Traitement des bugs</h3><ul class="seealso"><li><a href="https://www.apache.org/dist/httpd/CHANGES_2.4">Journal des modifications de httpd</a></li><li><a href="https://bz.apache.org/bugzilla/buglist.cgi?bug_status=__open__&amp;list_id=144532&amp;product=Apache%20httpd-2&amp;query_format=specific&amp;order=changeddate%20DESC%2Cpriority%2Cbug_severity&amp;component=mod_headers">Problèmes connus</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&amp;component=mod_headers">Signaler un bug</a></li></ul><h3>Voir aussi</h3>
57 <ul class="seealso">
58 <li><a href="#comments_section">Commentaires</a></li></ul></div>
59 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
60 <div class="section">
61 <h2><a name="order" id="order">Chronologie du traitement</a></h2>
62
63     <p>Les directives fournies par <code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code> peuvent
64     s'insérer presque partout dans la configuration du serveur, et on
65     peut limiter leur portée en les plaçant dans des <a href="../sections.html">sections de configuration</a>.</p>
66
67     <p>La chronologie du traitement est importante et est affectée par
68     l'ordre d'apparition des directives dans le fichier de configuration
69     et par leur placement dans les <a href="../sections.html#mergin">sections de configuration</a>. Ainsi,
70     ces deux directives ont un effet différent si leur ordre est inversé
71     :</p>
72
73     <pre class="prettyprint lang-config">RequestHeader append MirrorID "mirror 12"
74 RequestHeader unset MirrorID</pre>
75
76
77     <p>Dans cet ordre, l'en-tête <code>MirrorID</code> n'est pas défini.
78     Si l'ordre des directives était inversé, l'en-tête
79     <code>MirrorID</code> serait défini à "mirror 12".</p>
80 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
81 <div class="section">
82 <h2><a name="early" id="early">Traitement précoce et traitement
83 tardif</a></h2>
84     <p><code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code> peut agir soir précocement, soit
85     tardivement au niveau de la requête. Le mode normal est le mode
86     tardif, lorsque les en-têtes de <em>requête</em> sont définis, immédiatement
87     avant l'exécution du générateur de contenu, et pour les en-têtes de
88     <em>réponse</em>, juste au moment où la réponse est envoyée sur le réseau.
89     Utilisez toujours le mode tardif sur un serveur en production.</p>
90
91     <p>Le mode précoce a été conçu à des fins d'aide aux tests et au
92     débogage pour les développeurs. Les directives définies en utilisant
93     le mot-clé <code>early</code> sont censées agir au tout début du
94     traitement de la requête. Cela signifie que l'on peut les utiliser
95     pour simuler différentes requêtes et définir des situations de test,
96     tout en gardant à l'esprit que les en-têtes peuvent être modifiés à
97     tout moment par d'autres modules avant que le réponse ne soit
98     générée.</p>
99
100     <p>Comme les directives précoces sont traitées avant que le
101     chemin de la requête ne soit parcouru, les en-têtes
102     précoces ne peuvent être définis que dans un contexte de serveur
103     principal ou de serveur virtuel. Les directives précoces ne peuvent
104     pas dépendre d'un chemin de requête, si bien qu'elles échoueront
105     dans des contextes tels que <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code> ou <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code>.</p>
106 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
107 <div class="section">
108 <h2><a name="examples" id="examples">Exemples</a></h2>
109
110     <ol>
111       <li>
112         Copie tous les en-têtes de requête qui commencent par "TS" vers
113         les en-têtes de la réponse :
114
115         <pre class="prettyprint lang-config">Header echo ^TS</pre>
116
117       </li>
118
119       <li>
120         Ajoute à la réponse un en-tête, <code>mon-en-tête</code>, qui
121         contient un horodatage permettant de déterminer le moment où la
122         requête a été reçue, et le temps qui s'est écoulé jusqu'à ce que
123         la requête ait commencé à être servie. Cet en-tête peut être
124         utilisé par le client pour estimer la charge du serveur ou
125         isoler les goulets d'étranglement entre le client et le
126         serveur.
127
128         <pre class="prettyprint lang-config">Header set mon-en-tête "%D %t"</pre>
129
130
131         <p>le résultat est l'ajout à la réponse d'un en-tête du type :</p>
132
133         <div class="example"><p><code>
134           mon-en-tête: D=3775428 t=991424704447256
135         </code></p></div>
136       </li>
137
138       <li>
139         Dit Bonjour à Joe
140
141         <div class="example"><p><code>
142           Header set mon-en-tête "Bonjour Joe. Il a fallu %D microsecondes \<br />
143           à Apache pour servir cette requête."
144         </code></p></div>
145
146         <p>le résultat est l'ajout à la réponse d'un en-tête du type :</p>
147
148         <pre class="prettyprint lang-config">   Header set MyHeader "Bonjour Joe. Il a fallu D=3775428 microsecondes à Apache
149           pour servir cette requête."</pre>
150
151       </li>
152
153       <li>
154         Ajoute l'en-tête <code>mon-en-tête</code> à la réponse si et
155         seulement si l'en-tête <code>mon-en-tête-requête</code> est
156         présent dans la requête. Ceci peut s'avérer utile pour générer
157         des en-têtes de réponse "à la tête du client". Notez que cet
158         exemple nécessite les services du module
159         <code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code>.
160
161         <pre class="prettyprint lang-config">SetEnvIf MyRequestHeader myvalue HAVE_MyRequestHeader
162 Header set MyHeader "%D %t mytext" env=HAVE_MyRequestHeader</pre>
163
164
165         <p>Si l'en-tête <code>mon-en-tête-requête: mavaleur</code> est
166         présent dans la requête HTTP, la réponse contiendra un en-tête
167         du type :</p>
168
169         <div class="example"><p><code>
170           mon-en-tête: D=3775428 t=991424704447256 montexte
171         </code></p></div>
172       </li>
173
174       <li>
175         Permet à DAV de fonctionner avec Apache sur SSL (voir la <a href="http://svn.haxx.se/users/archive-2006-03/0549.shtml">description
176         du problème</a>) en remplaçant <var>https:</var> par
177         <var>http:</var> dans l'en-tête <var>Destination</var> :
178
179         <pre class="prettyprint lang-config">RequestHeader edit Destination ^https: http: early</pre>
180
181       </li>
182
183       <li>
184         Définit la valeur d'un même en-tête sous de multiples conditions
185         non exclusives, mais ne duplique pas une valeur déjà définie
186         dans l'en-tête qui en résulte. Si toutes les conditions
187         suivantes sont satisfaites pour une requête (en d'autres termes,
188         si les trois variables d'environnement <code>CGI</code>,
189         <code>NO_CACHE</code> et <code>NO_STORE</code> existent pour la
190         requête) :
191
192         <pre class="prettyprint lang-config">Header merge Cache-Control no-cache env=CGI
193 Header merge Cache-Control no-cache env=NO_CACHE
194 Header merge Cache-Control no-store env=NO_STORE</pre>
195
196
197         <p>alors, la réponse contiendra l'en-tête suivant :</p>
198
199         <div class="example"><p><code>
200           Cache-Control: no-cache, no-store
201         </code></p></div>
202
203         <p>Si <code>append</code> avait été utilisé à la place de
204         <code>merge</code>, la réponse aurait contenu l'en-tête suivant
205         :</p>
206
207         <div class="example"><p><code>
208           Cache-Control: no-cache, no-cache, no-store
209         </code></p></div>
210       </li>
211       <li>
212         Définit un cookie de test si et seulement si le client n'envoie
213         pas de cookie
214         <pre class="prettyprint lang-config">Header set Set-Cookie testcookie "expr=-z %{req:Cookie}"</pre>
215
216       </li>
217       <li>
218         Ajoute un en-tête de mise en cache pour les réponses avec un
219         code d'état HTTP de 200
220         <pre class="prettyprint lang-config">Header append Cache-Control s-maxage=600 "expr=%{REQUEST_STATUS} == 200"</pre>
221
222       </li>
223
224     </ol>
225 </div>
226 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
227 <div class="directive-section"><h2><a name="header" id="header">Directive</a> <a name="Header" id="Header">Header</a></h2>
228 <table class="directive">
229 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configure les en-têtes d'une réponse HTTP</td></tr>
230 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>Header [<var>condition</var>] add|append|echo|edit|edit*|merge|set|setifempty|unset|note
231 <var>en-tête</var> [[expr=]<var>valeur</var>
232 [<var>remplacement</var>]
233 [early|env=[!]<var>variable</var>|expr=<var>expression</var>]]
234 </code></td></tr>
235 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
236 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>FileInfo</td></tr>
237 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
238 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_headers</td></tr>
239 <tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>SetIfEmpty est disponible depuis la version 2.4.7 du
240 serveur HTTP Apache ; le paramètre expr=valeur a été introduit avec la
241 version 2.4.10</td></tr>
242 </table>
243     <p>Cette directive permet de remplacer, fusionner, ou
244     supprimer des en-têtes de réponse HTTP. L'en-tête est modifié juste
245     après que le gestionnaire de contenu et les filtres en sortie ne
246     s'exécutent, ce qui permet la modification des en-têtes
247     sortants.</p>
248
249     <p>L'argument optionnel <var>condition</var> permet de déterminer
250     sur quelle table interne d'en-têtes de réponses cette directive va
251     opérer. En dépit du nom, la valeur par défaut de
252     <code>onsuccess</code> ne limite <em>pas</em> une <var>action</var>
253     aux réponses avec un code d'état de 2xx. Les en-têtes définis sous
254     cette condition sont encore utilisés quand par exemple une requête
255     est mandatée ou générée par un programme CGI avec <em>succès</em>,
256     et ceci même dans le cas où ils ont généré un code d'échec.</p>
257
258     <p>Lorsque votre action est une fonction agissant sur un en-tête
259     existant, vous pourrez être amené à spécifier une condition
260     <code>always</code>, en fonction de la table interne dans laquelle
261     l'en-tête original a été défini. La table qui correspond à
262     <code>always</code> est utilisée pour les réponses d'erreur générées
263     localement ainsi que pour les réponses qui ont abouti.
264      Notez aussi que la répétition
265     de cette directive avec les deux conditions peut être pertinente
266     dans certains scénarios, car <code>always</code> n'englobe pas
267     <code>onsuccess</code> en ce qui concerne les en-têtes existants :</p>
268
269     <ul>
270        <li>Vous ajoutez un en-tête à une réponse
271        générée localement et échouée (non-2xx),
272        une redirection par exemple, et dans ce cas, seule la table
273        correspondant à <code>always</code> est utilisée dans la réponse
274        définitive.</li>
275        <li>Vous modifiez ou supprimez un en-tête généré par un script
276        CGI, et dans ce cas, les scripts CGI sont dans la table
277        correspondant à <code>always</code> et non dans la table par
278        défaut.</li>
279        <li>Vous modifiez ou supprimez un en-tête généré par tel ou tel
280        composant du serveur, mais cet en-tête n'est pas trouvé par la
281        condition par défaut <code>onsuccess</code>.</li>
282     </ul>
283
284     <p>Outre le paramètre <var>condition</var> décrit ci-dessus, vous
285     pouvez limiter une action en fonction de codes d'état HTTP, par
286     exemple pour les requêtes mandatées ou générées par un programme
287     CGI. Voir l'exemple qui utilise %{REQUEST_STATUS} dans la section
288     ci-dessus.</p>
289
290     <p>L'action que cette directive provoque est déterminée par le
291     premier argument (ou par le second argument si une
292     <var>condition</var> est spécifiée). Il peut prendre
293     une des valeurs suivantes :</p>
294
295     <dl>
296     <dt><code>add</code></dt>
297     <dd>L'en-tête est ajouté au jeu d'en-têtes préexistant, même s'il
298     existe déjà. Ceci peut conduire à la présence de deux (ou plusieurs)
299     en-têtes possèdant le même nom et donc induire des conséquences
300     imprévues ; en général, il est préférable d'utiliser
301     <code>set</code>, <code>append</code> ou <code>merge</code>.</dd>
302
303     <dt><code>append</code></dt>
304     <dd>La valeur d'en-tête est ajoutée à tout en-tête existant de même
305     nom. Lorsqu'une nouvelle valeur est ainsi ajoutée, elle est séparée
306     de celles qui sont déjà présentes par une virgule. Il s'agit de la
307     méthode HTTP standard permettant d'affecter plusieurs valeurs à un
308     en-tête.</dd>
309
310     <dt><code>echo</code></dt>
311     <dd>Les en-têtes de la requête possédant le nom spécifié sont
312     recopiés vers les en-têtes de la réponse. <var>en-tête</var> peut
313     être une <a class="glossarylink" href="../glossary.html#regex" title="voir glossaire">expression rationnelle</a>, et
314     <var>valeur</var> ne doit pas être présent.</dd>
315
316     <dt><code>edit</code></dt>
317     <dt><code>edit*</code></dt>
318     <dd>Si l'en-tête existe, sa valeur est modifiée en fonction d'une
319     <a class="glossarylink" href="../glossary.html#regex" title="voir glossaire">expression rationnelle</a> de type
320     recherche/remplacement. L'argument <var>valeur</var> est une
321     <a class="glossarylink" href="../glossary.html#regex" title="voir glossaire">expression rationnelle</a>, et
322     l'argument <var>remplacement</var> une chaîne de caractères de
323     remplacement qui peut contenir des références
324     arrières ou des spécificateurs de format. La forme <code>edit</code> n'effectuera une
325     recherche/remplacement qu'une seule fois dans la valeur de
326     l'en-tête, alors que la forme <code>edit*</code> en effectuera autant
327     que le nombre d'apparition de la chaîne à remplacer.</dd>
328
329     <dt><code>merge</code></dt>
330     <dd>La valeur d'en-tête est ajoutée à tout en-tête de même nom, sauf
331     si elle apparaît déjà dans la liste des valeurs préexistantes de
332     l'en-tête séparées par des virgules. Lorsqu'une nouvelle valeur est
333     ainsi ajoutée, elle est séparée de celles qui sont déjà présentes
334     par une virgule. Il s'agit de la méthode HTTP standard permettant
335     d'affecter plusieurs valeurs à un en-tête. Les valeurs sont
336     comparées en tenant compte de la casse, et après le traitement de
337     tous les spécificateurs de format. Une valeur entourée de guillemets
338     est considérée comme différente de la même valeur mais sans
339     guillemets.</dd>
340
341     <dt><code>set</code></dt>
342     <dd>L'en-tête est défini, remplaçant tout en-tête préexistant avec
343     le même nom. L'argument <var>valeur</var> peut être une chaîne de
344     formatage.</dd>
345
346     <dt><code>setifempty</code></dt>
347     <dd>L'en-tête est défini, mais seulement s'il n'existe
348     aucun en-tête avec le même nom.
349     <div class="note">
350     L'en-tête Content-Type est un cas particulier car il est possible que sa
351     valeur ait été déterminée mais que l'en-tête ne soit pas présent dans la
352     réponse lorsque <code>setifempty</code> est évalué. Dans ce cas, il est
353     préférable d'utiliser <code>set</code> comme dans l'exemple suivant :
354     <pre class="prettyprint lang-config">Header set Content-Type "text/plain" "expr=-z %{CONTENT_TYPE}"</pre>
355
356     </div></dd>
357
358     <dt><code>unset</code></dt>
359     <dd>L'en-tête est supprimé s'il existe. Si plusieurs en-têtes
360     possèdent le même nom, ils seront tous supprimés. L'argument
361     <var>value</var> ne doit pas apparaître.</dd>
362
363     <dt><code>note</code></dt>
364     <dd>La valeur de l'<var>en-tête</var> considéré est copiée dans une
365     note interne dont le nom est spécifié via l'argument
366     <var>valeur</var>. Ceci permet de journaliser la valeur d'un en-tête
367     envoyé par un programme CGI ou une ressource mandatée, même s'il
368     est prévu de l'effacer.<br />
369     Disponible à partir de la version 2.4.7 du serveur HTTP Apache.</dd>
370
371     </dl>    
372
373     <p>Cet argument est suivi d'un nom d'<var>en-tête</var> qui peut se
374     terminer par un caractère ':', mais ce n'est pas obligatoire. La
375     casse est ignorée avec <code>set</code>, <code>append</code>,
376     <code>merge</code>, <code>add</code>, <code>unset</code> et
377     <code>edit</code>. Le nom d'<var>en-tête</var> est sensible à la
378     casse pour <code>echo</code> et peut être une <a class="glossarylink" href="../glossary.html#regex" title="voir glossaire">expression rationnelle</a>.</p>
379
380     <p>Avec <code>set</code>, <code>append</code>, <code>merge</code> et
381     <code>add</code>, une <var>valeur</var> est spécifiée comme
382     argument suivant. Si <var>valeur</var> contient des espaces, elle
383     doit être entourée de guillemets. <var>valeur</var> peut être une
384     chaîne de caractères, une chaîne contenant des spécificateurs de
385     format propres à <code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code> (et des caractères
386     littéraux), ou une expression  <a href="../expr.html">ap_expr</a>
387     préfixée par <em>expr=</em>.</p>
388     
389     <p><var>valeur</var> supporte les spécificateurs de format suivants :</p>
390
391     <table class="bordered"><tr class="header"><th>Format</th><th>Description</th></tr>
392 <tr><td><code>%%</code></td>
393         <td>Le caractère pourcentage</td></tr>
394 <tr class="odd"><td><code>%t</code></td>
395         <td>Le moment de réception de la requête en temps
396         universel coordonné depuis le temps epoch (Jan. 1, 1970) et
397         exprimé en microsecondes. La valeur est précédée de
398         <code>t=</code>.</td></tr>
399 <tr><td><code>%D</code></td>
400         <td>Le temps écoulé entre la réception de la requête et l'envoi
401         des en-têtes sur le réseau. Il s'agit de la durée de traitement
402         de la requête. La valeur est précédée de <code>D=</code>. La
403         valeur est exprimée en microsecondes.</td></tr>
404 <tr class="odd"><td><code>%l</code></td>
405         <td>La charge moyenne courante du serveur proprement dit. Ce
406         sont les valeurs obtenues par <code>getloadavg()</code> qui
407         représentent la charge moyenne courante, sur 5 minutes et sur 15
408         minutes. Chaque valeur est précédée de <code>l=</code> et
409         séparée de la suivante par un <code>/</code>.<br />
410         Disponible depuis la version 2.4.4 du serveur HTTP Apache.
411         </td></tr>
412 <tr><td><code>%i</code></td>
413         <td>Le pourcentage courant de httpd au repos (de 0 à 100)
414         en se basant sur le nombre de processus et threads disponibles.
415         La valeur est précédée de <code>i=</code>.<br />
416         Disponible depuis la version 2.4.4 du serveur HTTP Apache.
417         </td></tr>
418 <tr class="odd"><td><code>%b</code></td>
419         <td>Le pourcentage courant de httpd utilisé (de 0 à 100)
420         en se basant sur le nombre de processus et threads disponibles.
421         La valeur est précédée de <code>b=</code>.<br />
422         Disponible depuis la version 2.4.4 du serveur HTTP Apache.
423         </td></tr>
424 <tr><td><code>%{NOM_VARIABLE}e</code></td>
425         <td>Le contenu de la <a href="../env.html">variable
426         d'environnement</a> <code>NOM_VARIABLE</code>.</td></tr>
427 <tr class="odd"><td><code>%{NOM_VARIABLE}s</code></td>
428         <td>Le contenu de la <a href="../env.html">variable
429         d'environnement SSL</a> <code>NOM_VARIABLE</code>, si
430         <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> est activé.</td></tr>
431 </table>
432
433     <div class="note"><h3>Note</h3>
434       <p>Le spécificateur de format <code>%s</code> est disponible
435       depuis la version 2.1 d'Apache ; il peut être utilisé à la place
436       de <code>%e</code> pour éviter de devoir spécifier
437       <code>SSLOptions +StdEnvVars</code>. Cependant, si
438       <code>SSLOptions +StdEnvVars</code> doit tout de même être
439       spécifié pour une raison quelconque, <code>%e</code> sera plus
440       efficace que <code>%s</code>.</p>
441     </div>
442
443     <div class="note"><h3>Note à propos des valeurs des expressions</h3>
444     <p>Lorsque le paramètre valeur utilise l'interpréteur <a href="../expr.html">ap_expr</a>, certaines syntaxes d'expressions
445     seront différentes des exemples qui évaluent des expressions
446     <em>booléennes</em> telles que &lt;If&gt; :</p>
447     <ul>
448       <li>Le point de départ de la syntaxe est 'string' au lieu de
449       'expr'.</li>
450       <li>Les appels de fonction utilisent la syntaxe %{funcname:arg} au
451       lieu de funcname(arg).</li>
452       <li>Les fonctions multi-arguments ne sont pas encore disponibles
453       depuis le point de départ 'string'.</li>
454       <li>Il faut mettre entre guillemets l'ensemble du paramètre, comme
455       dans l'exemple suivant : 
456           <pre class="prettyprint lang-config">Header set foo-checksum "expr=%{md5:foo}"</pre>
457
458        </li>
459                    
460     </ul>
461     </div>
462
463     <p><code>edit</code>nécessite les deux arguments
464     <var>valeur</var>, qui est une <a class="glossarylink" href="../glossary.html#regex" title="voir glossaire">expression
465     rationnelle</a>, et une chaîne additionnelle
466     <var>remplacement</var>. Depuis la version 2.4.7, la chaîne de
467     remplacement peut aussi
468     contenir des spécificateurs de format.</p>
469
470     <p>La directive <code class="directive">Header</code> peut être suivie d'un
471     argument additionnel qui peut prendre les valeurs suivantes :</p>
472
473     <dl>
474     <dt><code>early</code></dt>
475     <dd>Spécifie <a href="#early">traitement préalable</a>.</dd>
476     <dt><code>env=[!]<var>variable</var></code></dt>
477     <dd>La directive est appliquée si et seulement si la <a href="../env.html">variable d'environnement</a>
478     <code>variable</code> existe. Un <code>!</code> devant
479     <code>variable</code> inverse le test, et la directive ne
480     s'appliquera alors que si <code>variable</code> n'est pas définie.</dd>
481     <dt><code>expr=<var>expression</var></code></dt>
482     <dd>La directive s'applique si et seulement si <var>expression</var>
483     est évaluée à true. Vous trouverez plus de détails à propos de la
484     syntaxe et de l'évaluation des expressions dans la documentation <a href="../expr.html">ap_expr</a>.
485     <pre class="prettyprint lang-config">         # Cet exemple retarde l'évaluation de la clause de condition par
486          # rapport à &lt;If&gt;
487          Header always set CustomHeader my-value "expr=%{REQUEST_URI} =~ m#^/special_path.php$#"</pre>
488
489     </dd>
490     </dl>
491
492     <p>Excepté le cas du mode <a href="#early">précoce</a>, les
493     directives <code class="directive">Header</code> sont traitées juste avant
494     l'envoi de la réponse sur le réseau. Cela signifie qu'il est
495     possible de définir et/ou modifier la plupart des en-têtes, à
496     l'exception de certains en-têtes qui sont ajoutés par le filtre
497     d'en-tête HTTP. Avant la version 2.2.12, il n'était pas
498     possible de modifier l'en-tête Content-Type avec cette directive.</p>
499
500 </div>
501 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
502 <div class="directive-section"><h2><a name="requestheader" id="requestheader">Directive</a> <a name="RequestHeader" id="RequestHeader">RequestHeader</a></h2>
503 <table class="directive">
504 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configure les en-têtes d'une requête HTTP</td></tr>
505 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>RequestHeader add|append|edit|edit*|merge|set|setifempty|unset
506 <var>en-tête</var> [[expr=]<var>valeur</var>
507 [<var>remplacement</var>]
508 [early|env=[!]<var>variable</var>|expr=<var>expression</var>]]
509 </code></td></tr>
510 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
511 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>FileInfo</td></tr>
512 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
513 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_headers</td></tr>
514 <tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>SetIfEmpty est disponible depuis la version 2.4.7 du
515 serveur HTTP Apache ; le paramètre expr=valeur a été introduit avec la
516 version 2.4.10</td></tr>
517 </table>
518     <p>Cette directive permet de remplacer, fusionner, modifier ou
519     supprimer des en-têtes de requête HTTP. L'en-tête est modifié juste
520     avant que le gestionnaire de contenu ne s'exécute, ce qui permet la
521     modification des en-têtes entrants. L'action effectuée est
522     déterminée par le premier argument. Ce dernier accepte les valeurs
523     suivantes :</p>
524
525     <dl>
526
527     <dt><code>add</code></dt>
528     <dd>L'en-tête est ajouté au jeu d'en-têtes préexistant, même s'il
529     existe déjà. Ceci peut conduire à la présence de deux (ou plusieurs)
530     en-têtes possèdant le même nom et donc induire des conséquences
531     imprévues ; en général, il est préférable d'utiliser
532     <code>set</code>, <code>append</code> ou <code>merge</code>.</dd>
533
534     <dt><code>append</code></dt>
535     <dd>La valeur d'en-tête est ajoutée à tout en-tête existant de même
536     nom. Lorsqu'une nouvelle valeur est ainsi ajoutée, elle est séparée
537     de celles qui sont déjà présentes par une virgule. Il s'agit de la
538     méthode HTTP standard permettant d'affecter plusieurs valeurs à un
539     en-tête.</dd>
540
541     <dt><code>edit</code></dt>
542     <dt><code>edit*</code></dt>
543     <dd>Si l'en-tête existe, sa valeur est modifiée en fonction d'une
544     <a class="glossarylink" href="../glossary.html#regex" title="voir glossaire">expression rationnelle</a> de type
545     recherche/remplacement. L'argument <var>valeur</var> est une
546     <a class="glossarylink" href="../glossary.html#regex" title="voir glossaire">expression rationnelle</a>, et
547     l'argument <var>remplacement</var> une chaîne de caractères de
548     remplacement qui peut contenir des références
549     arrières ou des spécificateurs de format. Avec
550     <code>edit</code>, la chaîne de l'en-tête correspondant au modèle ne
551     sera recherchée et remplacée qu'une seule fois, alors qu'avec
552     <code>edit*</code>, elle le sera pour chacune de ses instances si
553     elle apparaît plusieurs fois.</dd>
554
555     <dt><code>merge</code></dt>
556     <dd>La valeur d'en-tête est ajoutée à tout en-tête de même nom, sauf
557     si elle apparaît déjà dans la liste des valeurs préexistantes de
558     l'en-tête séparées par des virgules. Lorsqu'une nouvelle valeur est
559     ainsi ajoutée, elle est séparée de celles qui sont déjà présentes
560     par une virgule. Il s'agit de la méthode HTTP standard permettant
561     d'affecter plusieurs valeurs à un en-tête. Les valeurs sont
562     comparées en tenant compte de la casse, et après le traitement de
563     tous les spécificateurs de format. Une valeur entourée de guillemets
564     est considérée comme différente de la même valeur mais sans
565     guillemets.</dd>
566
567     <dt><code>set</code></dt>
568     <dd>L'en-tête est défini, remplaçant tout en-tête préexistant avec
569     le même nom.</dd>
570
571     <dt><code>setifempty</code></dt>
572     <dd>L'en-tête est défini, mais seulement s'il n'existe
573     aucun en-tête avec le même nom.<br />
574     Disponible depuis la version 2.4.7 du serveur HTTP Apache.</dd>
575
576     <dt><code>unset</code></dt>
577     <dd>L'en-tête est supprimé s'il existe. Si plusieurs en-têtes
578     possèdent le même nom, ils seront tous supprimés. L'argument
579     <var>value</var> ne doit pas apparaître.</dd>
580     </dl>
581
582     <p>Cet argument est suivi d'un nom d'en-tête qui peut se terminer
583     par un caractère ':', mais ce n'est pas obligatoire. La casse est
584     ignorée. Avec <code>set</code>, <code>append</code>,
585     <code>merge</code> et <code>add</code>, une <var>valeur</var> est
586     fournie en troisième argument. Si une <var>valeur</var> contient des
587     espaces, elle doit être entourée de guillemets. Avec
588     <code>unset</code>, aucune <var>valeur</var> ne doit apparaître.
589     <var>valeur</var> peut être une chaîne de caractères, une chaîne
590     contenant des spécificateurs de format, ou une combinaison des deux.
591     Les spécificateurs de format supportés sont les mêmes que ceux de la
592     directive <code class="directive"><a href="#header">Header</a></code>, à
593     laquelle vous pouvez vous reporter pour plus de détails. Avec
594     <code>edit</code>, les deux arguments <var>valeur</var> et
595     <var>remplacement</var> sont obligatoires, et correspondent
596     respectivement à une <a class="glossarylink" href="../glossary.html#regex" title="voir glossaire">expression
597     rationnelle</a> et à une chaîne de remplacement.</p>
598
599     <p>La directive <code class="directive">RequestHeader</code> peut être
600     suivie d'un argument supplémentaire, qui pourra prendre les valeurs
601     suivantes :</p>
602     <dl>
603     <dt><code>early</code></dt>
604     <dd>Spécifie <a href="#early">traitement préalable</a>.</dd>
605     <dt><code>env=[!]<var>variable</var></code></dt>
606     <dd>La directive est appliquée si et seulement si la <a href="../env.html">variable d'environnement</a>
607     <code>variable</code> existe. Un <code>!</code> devant
608     <code>variable</code> inverse le test, et la directive ne
609     s'appliquera alors que si <code>variable</code> n'est pas définie.</dd>
610     <dt><code>expr=<var>expression</var></code></dt>
611     <dd>La directive s'applique si et seulement si <var>expression</var>
612     est évaluée à true. Vous trouverez plus de détails à propos de la
613     syntaxe et de l'évaluation des expressions dans la documentation <a href="../expr.html">ap_expr</a>.</dd>
614     </dl>
615
616     <p>Excepté le cas du mode <a href="#early">précoce</a>, la directive
617     <code class="directive">RequestHeader</code> est traitée juste avant la
618     prise en compte de la requête par son gestionnaire, au cours de la
619     phase de vérification. Ceci permet la modification des en-têtes
620     générés par le navigateur, ou par les filtres en entrée
621     d'Apache.</p>
622
623 </div>
624 </div>
625 <div class="bottomlang">
626 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_headers.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
627 <a href="../fr/mod/mod_headers.html" title="Français">&nbsp;fr&nbsp;</a> |
628 <a href="../ja/mod/mod_headers.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
629 <a href="../ko/mod/mod_headers.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
630 </div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Commentaires</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;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 <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
631 <script type="text/javascript"><!--//--><![CDATA[//><!--
632 var comments_shortname = 'httpd';
633 var comments_identifier = 'http://httpd.apache.org/docs/trunk/mod/mod_headers.html';
634 (function(w, d) {
635     if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
636         d.write('<div id="comments_thread"><\/div>');
637         var s = d.createElement('script');
638         s.type = 'text/javascript';
639         s.async = true;
640         s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
641         (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
642     }
643     else {
644         d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
645     }
646 })(window, document);
647 //--><!]]></script></div><div id="footer">
648 <p class="apache">Copyright 2017 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
649 <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
650 if (typeof(prettyPrint) !== 'undefined') {
651     prettyPrint();
652 }
653 //--><!]]></script>
654 </body></html>