summaryrefslogtreecommitdiff
path: root/docs/manual/mod/mod_headers.html.fr
blob: 33961a410ddd93b8729a6fe8903066d5b7876422 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head><!--
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              This file is generated from xml source: DO NOT EDIT
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -->
<title>mod_headers - Serveur Apache HTTP</title>
<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
<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" />
<script src="../style/scripts/prettify.js" type="text/javascript">
</script>

<link href="../images/favicon.ico" rel="shortcut icon" /></head>
<body>
<div id="page-header">
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.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>
<p class="apache">Serveur Apache HTTP Version 2.4</p>
<img alt="" src="../images/feather.gif" /></div>
<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="../images/left.gif" /></a></div>
<div id="path">
<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.4</a> &gt; <a href="./">Modules</a></div>
<div id="page-content">
<div id="preamble"><h1>Module Apache mod_headers</h1>
<div class="toplang">
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_headers.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/mod/mod_headers.html" title="Français">&nbsp;fr&nbsp;</a> |
<a href="../ja/mod/mod_headers.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="../ko/mod/mod_headers.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
</div>
<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
HTTP</td></tr>
<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur de Module:</a></th><td>headers_module</td></tr>
<tr><th><a href="module-dict.html#SourceFile">Fichier Source:</a></th><td>mod_headers.c</td></tr></table>
<h3>Sommaire</h3>

    <p>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.</p>
</div>
<div id="quickview"><h3 class="directives">Directives</h3>
<ul id="toc">
<li><img alt="" src="../images/down.gif" /> <a href="#header">Header</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#requestheader">RequestHeader</a></li>
</ul>
<h3>Sujets</h3>
<ul id="topics">
<li><img alt="" src="../images/down.gif" /> <a href="#order">Chronologie du traitement</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#early">Traitement précoce et traitement
tardif</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#examples">Exemples</a></li>
</ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="order" id="order">Chronologie du traitement</a></h2>

    <p>Les directives fournies par <code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code> peuvent
    s'insérer presque partout dans la configuration du serveur, et on
    peut limiter leur portée en les plaçant dans des <a href="../sections.html">sections de configuration</a>.</p>

    <p>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 <a href="../sections.html#mergin">sections de configuration</a>. Ainsi,
    ces deux directives ont un effet différent si leur ordre est inversé
    :</p>

    <pre class="prettyprint lang-config">
RequestHeader append MirrorID "mirror 12"
RequestHeader unset MirrorID
    </pre>


    <p>Dans cet ordre, l'en-tête <code>MirrorID</code> n'est pas défini.
    Si l'ordre des directives était inversé, l'en-tête
    <code>MirrorID</code> serait défini à "mirror 12".</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="early" id="early">Traitement précoce et traitement
tardif</a></h2>
    <p><code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code> 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 <em>requête</em> sont définis, immédiatement
    avant l'exécution du générateur de contenu, et pour les en-têtes de
    <em>réponse</em>, juste au moment où la réponse est envoyée sur le réseau.
    Utilisez toujours le mode tardif sur un serveur en production.</p>

    <p>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é <code>early</code> 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.</p>

    <p>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 <code>&lt;Directory&gt;</code> ou
    <code>&lt;Location&gt;</code>.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="examples" id="examples">Exemples</a></h2>

    <ol>
      <li>
        Copie tous les en-têtes de requête qui commencent par "TS" vers
	les en-têtes de la réponse :

        <pre class="prettyprint lang-config">
          Header echo ^TS
        </pre>

      </li>

      <li>
        Ajoute à la réponse un en-tête, <code>mon-en-tête</code>, 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.

        <pre class="prettyprint lang-config">
          Header set mon-en-tête "%D %t"
        </pre>


        <p>le résultat est l'ajout à la réponse d'un en-tête du type :</p>

        <div class="example"><p><code>
          mon-en-tête: D=3775428 t=991424704447256
        </code></p></div>
      </li>

      <li>
        Dit Bonjour à Joe

        <div class="example"><p><code>
          Header set mon-en-tête "Bonjour Joe. Il a fallu %D microsecondes \<br />
          à Apache pour servir cette requête."
        </code></p></div>

        <p>le résultat est l'ajout à la réponse d'un en-tête du type :</p>

        <pre class="prettyprint lang-config">
	Header set MyHeader "Bonjour Joe. Il a fallu D=3775428 microsecondes à Apache
          pour servir cette requête."
        </pre>

      </li>

      <li>
        Ajoute l'en-tête <code>mon-en-tête</code> à la réponse si et
	seulement si l'en-tête <code>mon-en-tête-requête</code> 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
	<code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code>.

        <pre class="prettyprint lang-config">
SetEnvIf MyRequestHeader myvalue HAVE_MyRequestHeader
Header set MyHeader "%D %t mytext" env=HAVE_MyRequestHeader
        </pre>


        <p>Si l'en-tête <code>mon-en-tête-requête: mavaleur</code> est
	présent dans la requête HTTP, la réponse contiendra un en-tête
	du type :</p>

        <div class="example"><p><code>
          mon-en-tête: D=3775428 t=991424704447256 montexte
        </code></p></div>
      </li>

      <li>
        Permet à DAV de fonctionner avec Apache sur SSL (voir la <a href="http://svn.haxx.se/users/archive-2006-03/0549.shtml">description
	du problème</a>) en remplaçant <var>https:</var> par
	<var>http:</var> dans l'en-tête <var>Destination</var> :

        <pre class="prettyprint lang-config">
          RequestHeader edit Destination ^https: http: early
        </pre>

      </li>

      <li>
        Définit la valeur d'un même en-tête sous de multiples conditions
	non exclusives, mais ne duplique pas une valeur déjà définie
	dans l'en-tête qui en résulte. Si toutes les conditions
	suivantes sont satisfaites pour une requête (en d'autres termes,
	si les trois variables d'environnement <code>CGI</code>,
	<code>NO_CACHE</code> et <code>NO_STORE</code> existent pour la
	requête) :

        <pre class="prettyprint lang-config">
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
        </pre>


        <p>alors, la réponse contiendra l'en-tête suivant :</p>

        <div class="example"><p><code>
          Cache-Control: no-cache, no-store
        </code></p></div>

        <p>Si <code>append</code> avait été utilisé à la place de
	<code>merge</code>, la réponse aurait contenu l'en-tête suivant
	:</p>

        <div class="example"><p><code>
          Cache-Control: no-cache, no-cache, no-store
        </code></p></div>
      </li>
      <li>
        Définit un cookie de test si et seulement si le client n'envoie
	pas de cookie
        <pre class="prettyprint lang-config">
          Header set Set-Cookie testcookie "expr=-z %{req:Cookie}"
        </pre>

      </li>
    </ol>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="Header" id="Header">Header</a> <a name="header" id="header">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configure les en-têtes d'une réponse HTTP</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>Header [<var>condition</var>] add|append|echo|edit|edit*|merge|set|unset
<var>en-tête</var> [<var>valeur</var>] [<var>remplacement</var>]
[early|env=[!]<var>variable</var>]|expr=<var>expression</var>]
</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>FileInfo</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_headers</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>La condition par défaut est temporairement passée
à "always" dans les version 2.3.9 et 2.3.10</td></tr>
</table>
    <p>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.</p>

    <p>L'argument optionnel <var>condition</var> 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 à
    <code>onsuccess</code> ou dans celle correspondant à
    <code>always</code>. 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.</p>

    <p>Vous pouvez avoir à changer la valeur par défaut
    <code>onsuccess</code> en <code>always</code> 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 <code>always</code> n'englobe pas
    <code>onsuccess</code> en ce qui concerne les en-têtes existants :</p>

    <ul>
       <li>Vous ajoutez un en-tête à une réponse échouée (non-2xx),
       une redirection par exemple, et dans ce cas, seule la table
       correspondant à <code>always</code> est utilisée dans la réponse
       définitive.</li>
       <li>Vous modifiez ou supprimez un en-tête généré par un script
       CGI, et dans ce cas, les scripts CGI sont dans la table
       correspondant à <code>always</code> et non dans la table par
       défaut.</li>
       <li>Vous modifiez ou supprimez un en-tête généré par tel ou tel
       composant du serveur, mais cet en-tête n'est pas trouvé par la
       condition par défaut <code>onsuccess</code>.</li>
    </ul>

    <p>L'action que cette directive provoque est déterminée par le
    premier argument (ou par le second argument si une
    <var>condition</var> est spécifiée). Il peut prendre
    une des valeurs suivantes :</p>

    <dl>
    <dt><code>add</code></dt>
    <dd>L'en-tête est ajouté au jeu d'en-têtes préexistant, même s'il
    existe déjà. Ceci peut conduire à la présence de deux (ou plusieurs)
    en-têtes possèdant le même nom et donc induire des conséquences
    imprévues ; en général, il est préférable d'utiliser
    <code>set</code>, <code>append</code> ou <code>merge</code>.</dd>

    <dt><code>append</code></dt>
    <dd>La valeur d'en-tête est ajoutée à tout en-tête existant de même
    nom. Lorsqu'une nouvelle valeur est ainsi ajoutée, elle est séparée
    de celles qui sont déjà présentes par une virgule. Il s'agit de la
    méthode HTTP standard permettant d'affecter plusieurs valeurs à un
    en-tête.</dd>

    <dt><code>echo</code></dt>
    <dd>Les en-têtes de la requête possédant le nom spécifié sont
    recopiés vers les en-têtes de la réponse. <var>en-tête</var> peut
    être une <a class="glossarylink" href="../glossary.html#regex" title="voir glossaire">expression rationnelle</a>, et
    <var>valeur</var> ne doit pas être présent.</dd>

    <dt><code>edit</code></dt>
    <dt><code>edit*</code></dt>
    <dd>Si l'en-tête existe, sa valeur est modifiée en fonction d'une
    <a class="glossarylink" href="../glossary.html#regex" title="voir glossaire">expression rationnelle</a> de type
    recherche/remplacement. L'argument <var>valeur</var> est une
    <a class="glossarylink" href="../glossary.html#regex" title="voir glossaire">expression rationnelle</a>, et
    l'argument <var>remplacement</var> une chaîne de caractères de
    remplacement qui peut contenir des références
    arrières. La forme <code>edit</code> n'effectuera une
    recherche/remplacement qu'une seule fois dans la valeur de
    l'en-tête, alors que la forme <code>edit*</code> en effectuera autant
    que le nombre d'apparition de la chaîne à remplacer.</dd>

    <dt><code>merge</code></dt>
    <dd>La valeur d'en-tête est ajoutée à tout en-tête de même nom, sauf
    si elle apparaît déjà dans la liste des valeurs préexistantes de
    l'en-tête séparées par des virgules. Lorsqu'une nouvelle valeur est
    ainsi ajoutée, elle est séparée de celles qui sont déjà présentes
    par une virgule. Il s'agit de la méthode HTTP standard permettant
    d'affecter plusieurs valeurs à un en-tête. Les valeurs sont
    comparées en tenant compte de la casse, et après le traitement de
    tous les spécificateurs de format. Une valeur entourée de guillemets
    est considérée comme différente de la même valeur mais sans
    guillemets.</dd>

    <dt><code>set</code></dt>
    <dd>L'en-tête est défini, remplaçant tout en-tête préexistant avec
    le même nom. L'argument <var>valeur</var> peut être une chaîne de
    formatage.</dd>

    <dt><code>unset</code></dt>
    <dd>L'en-tête est supprimé s'il existe. Si plusieurs en-têtes
    possèdent le même nom, ils seront tous supprimés. L'argument
    <var>value</var> ne doit pas apparaître.</dd>
    </dl>

    <p>Cet argument est suivi d'un nom d'<var>en-tête</var> qui peut se
    terminer par un caractère ':', mais ce n'est pas obligatoire. La
    casse est ignorée avec <code>set</code>, <code>append</code>,
    <code>merge</code>, <code>add</code>, <code>unset</code> et
    <code>edit</code>. Le nom d'<var>en-tête</var> est sensible à la
    casse pour <code>echo</code> et peut être une <a class="glossarylink" href="../glossary.html#regex" title="voir glossaire">expression rationnelle</a>.</p>

    <p>Avec <code>set</code>, <code>append</code>, <code>merge</code> et
    <code>add</code>, une <var>valeur</var> est spécifiée comme
    argument suivant. Si <var>valeur</var> contient des espaces, elle
    doit être entourée de guillemets. <var>valeur</var> peut être une
    chaîne de caractères, une chaîne contenant des spécificateurs de
    format, ou une combinaison des deux. <var>valeur</var> supporte les
    spécificateurs de format suivants :</p>

    <table class="bordered"><tr class="header"><th>Format</th><th>Description</th></tr>
<tr><td><code>%%</code></td>
        <td>Le caractère pourcentage</td></tr>
<tr class="odd"><td><code>%t</code></td>
        <td>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
	<code>t=</code>.</td></tr>
<tr><td><code>%D</code></td>
        <td>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 <code>D=</code>. La
	valeur est exprimée en microsecondes.</td></tr>
<tr class="odd"><td><code>%l</code></td>
        <td>La charge courante du serveur. Ce sont les valeurs fournies
	par <code>getloadavg()</code> 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
	<code>l=</code> et séparée des autres par un slash
	<code>/</code>.
        </td></tr>
<tr><td><code>%i</code></td>
        <td>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 <code>i=</code>.
        </td></tr>
<tr class="odd"><td><code>%b</code></td>
        <td>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 <code>b=</code>.
        </td></tr>
<tr><td><code>%{NOM_VARIABLE}e</code></td>
        <td>Le contenu de la <a href="../env.html">variable
	d'environnement</a> <code>NOM_VARIABLE</code>.</td></tr>
<tr class="odd"><td><code>%{NOM_VARIABLE}s</code></td>
        <td>Le contenu de la <a href="../env.html">variable
	d'environnement SSL</a> <code>NOM_VARIABLE</code>, si
	<code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> est activé.</td></tr>
</table>

    <div class="note"><h3>Note</h3>
      <p>Le spécificateur de format <code>%s</code> est disponible
      depuis la version 2.1 d'Apache ; il peut être utilisé à la place
      de <code>%e</code> pour éviter de devoir spécifier
      <code>SSLOptions +StdEnvVars</code>. Cependant, si
      <code>SSLOptions +StdEnvVars</code> doit tout de même être
      spécifié pour une raison quelconque, <code>%e</code> sera plus
      efficace que <code>%s</code>.</p>
    </div>

    <p><code>edit</code>nécessite les deux arguments
    <var>valeur</var>, qui est une <a class="glossarylink" href="../glossary.html#regex" title="voir glossaire">expression
    rationnelle</a>, et une chaîne additionnelle
    <var>remplacement</var>.</p>

    <p>La directive <code class="directive">Header</code> peut être suivie d'un
    argument additionnel qui peut prendre les valeurs suivantes :</p>

    <dl>
    <dt><code>early</code></dt>
    <dd>Spécifie <a href="#early">traitement préalable</a>.</dd>
    <dt><code>env=[!]<var>variable</var></code></dt>
    <dd>La directive est appliquée si et seulement si la <a href="../env.html">variable d'environnement</a>
    <code>variable</code> existe. Un <code>!</code> devant
    <code>variable</code> inverse le test, et la directive ne
    s'appliquera alors que si <code>variable</code> n'est pas définie.</dd>
    <dt><code>expr=<var>expression</var></code></dt>
    <dd>La directive s'applique si et seulement si <var>expression</var>
    est évaluée à true. Vous trouverez plus de détails à propos de la
    syntaxe et de l'évaluation des expressions dans la documentation <a href="../expr.html">ap_expr</a>.</dd>
    </dl>

    <p>Excepté le cas du mode <a href="#early">précoce</a>, les
    directives <code class="directive">Header</code> 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.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="RequestHeader" id="RequestHeader">RequestHeader</a> <a name="requestheader" id="requestheader">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configure les en-têtes d'une requête HTTP</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>RequestHeader add|append|edit|edit*|merge|set|unset
<var>en-tête</var> [<var>valeur</var>] [<var>remplacement</var>]
[early|env=[!]<var>variable</var>]|expr=<var>expression</var>]
</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>FileInfo</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_headers</td></tr>
</table>
    <p>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 :</p>

    <dl>

    <dt><code>add</code></dt>
    <dd>L'en-tête est ajouté au jeu d'en-têtes préexistant, même s'il
    existe déjà. Ceci peut conduire à la présence de deux (ou plusieurs)
    en-têtes possèdant le même nom et donc induire des conséquences
    imprévues ; en général, il est préférable d'utiliser
    <code>set</code>, <code>append</code> ou <code>merge</code>.</dd>

    <dt><code>append</code></dt>
    <dd>La valeur d'en-tête est ajoutée à tout en-tête existant de même
    nom. Lorsqu'une nouvelle valeur est ainsi ajoutée, elle est séparée
    de celles qui sont déjà présentes par une virgule. Il s'agit de la
    méthode HTTP standard permettant d'affecter plusieurs valeurs à un
    en-tête.</dd>

    <dt><code>edit*</code></dt>
    <dd>Si l'en-tête existe, sa valeur est modifiée en fonction d'une
    <a class="glossarylink" href="../glossary.html#regex" title="voir glossaire">expression rationnelle</a> de type
    recherche/remplacement. L'argument <var>valeur</var> est une
    <a class="glossarylink" href="../glossary.html#regex" title="voir glossaire">expression rationnelle</a>, et
    l'argument <var>remplacement</var> une chaîne de caractères de
    remplacement qui peut contenir des références arrières. Avec
    <code>edit</code>, 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
    <code>edit*</code>, elle le sera pour chacune de ses instances si
    elle apparaît plusieurs fois.</dd>

    <dt><code>merge</code></dt>
    <dd>La valeur d'en-tête est ajoutée à tout en-tête de même nom, sauf
    si elle apparaît déjà dans la liste des valeurs préexistantes de
    l'en-tête séparées par des virgules. Lorsqu'une nouvelle valeur est
    ainsi ajoutée, elle est séparée de celles qui sont déjà présentes
    par une virgule. Il s'agit de la méthode HTTP standard permettant
    d'affecter plusieurs valeurs à un en-tête. Les valeurs sont
    comparées en tenant compte de la casse, et après le traitement de
    tous les spécificateurs de format. Une valeur entourée de guillemets
    est considérée comme différente de la même valeur mais sans
    guillemets.</dd>

    <dt><code>set</code></dt>
    <dd>L'en-tête est défini, remplaçant tout en-tête préexistant avec
    le même nom.</dd>

    <dt><code>unset</code></dt>
    <dd>L'en-tête est supprimé s'il existe. Si plusieurs en-têtes
    possèdent le même nom, ils seront tous supprimés. L'argument
    <var>value</var> ne doit pas apparaître.</dd>
    </dl>

    <p>Cet 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 <code>set</code>, <code>append</code>,
    <code>merge</code> et <code>add</code>, une <var>valeur</var> est
    fournie en troisième argument. Si une <var>valeur</var> contient des
    espaces, elle doit être entourée de guillemets. Avec
    <code>unset</code>, aucune <var>valeur</var> ne doit apparaître.
    <var>valeur</var> 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 <code class="directive"><a href="#header">Header</a></code>, à
    laquelle vous pouvez vous reporter pour plus de détails. Avec
    <code>edit</code>, les deux arguments <var>valeur</var> et
    <var>remplacement</var> sont obligatoires, et correspondent
    respectivement à une <a class="glossarylink" href="../glossary.html#regex" title="voir glossaire">expression
    rationnelle</a> et à une chaîne de remplacement.</p>

    <p>La directive <code class="directive">RequestHeader</code> peut être
    suivie d'un argument supplémentaire, qui pourra prendre les valeurs
    suivantes :</p>
    <dl>
    <dt><code>early</code></dt>
    <dd>Spécifie <a href="#early">traitement préalable</a>.</dd>
    <dt><code>env=[!]<var>variable</var></code></dt>
    <dd>La directive est appliquée si et seulement si la <a href="../env.html">variable d'environnement</a>
    <code>variable</code> existe. Un <code>!</code> devant
    <code>variable</code> inverse le test, et la directive ne
    s'appliquera alors que si <code>variable</code> n'est pas définie.</dd>
    <dt><code>expr=<var>expression</var></code></dt>
    <dd>La directive s'applique si et seulement si <var>expression</var>
    est évaluée à true. Vous trouverez plus de détails à propos de la
    syntaxe et de l'évaluation des expressions dans la documentation <a href="../expr.html">ap_expr</a>.</dd>
    </dl>

    <p>Excepté le cas du mode <a href="#early">précoce</a>, la directive
    <code class="directive">RequestHeader</code> 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.</p>

</div>
</div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_headers.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/mod/mod_headers.html" title="Français">&nbsp;fr&nbsp;</a> |
<a href="../ja/mod/mod_headers.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="../ko/mod/mod_headers.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
</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>
<script type="text/javascript"><!--//--><![CDATA[//><!--
var comments_shortname = 'httpd';
var comments_identifier = 'http://httpd.apache.org/docs/2.4/mod/mod_headers.html';
(function(w, d) {
    if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
        d.write('<div id="comments_thread"><\/div>');
        var s = d.createElement('script');
        s.type = 'text/javascript';
        s.async = true;
        s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
        (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
    }
    else { 
        d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
    }
})(window, document);
//--><!]]></script></div><div id="footer">
<p class="apache">Copyright 2013 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.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[//><!--
if (typeof(prettyPrint) !== 'undefined') {
    prettyPrint();
}
//--><!]]></script>
</body></html>