summaryrefslogtreecommitdiff
path: root/docs/manual/compliance.html.fr
blob: 490520420cc7cbfb5418345cd9c6a2ff0c2d7608 (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
<?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>
<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
<!--
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              This file is generated from xml source: DO NOT EDIT
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -->
<title>Conformit&#233; au protocole HTTP - Serveur Apache HTTP Version 2.5</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.min.js" type="text/javascript">
</script>

<link href="./images/favicon.ico" rel="shortcut icon" /></head>
<body id="manual-page"><div id="page-header">
<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>
<p class="apache">Serveur Apache HTTP Version 2.5</p>
<img alt="" src="./images/feather.png" /></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.5</a></div><div id="page-content"><div id="preamble"><h1>Conformit&#233; au protocole HTTP</h1>
<div class="toplang">
<p><span>Langues Disponibles: </span><a href="./en/compliance.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="./fr/compliance.html" title="Fran&#231;ais">&nbsp;fr&nbsp;</a></p>
</div>

    <p>Ce document d&#233;crit le m&#233;canisme utilis&#233; pour d&#233;finir une
    politique de conformit&#233; au protocole HTTP pour un espace d'URL au
    niveau des serveurs d'origine ou des application sous-jacentes &#224; cet
    espace d'URL.</p>

    <p>Chaque politique de conformit&#233; est d&#233;crite ci-dessous &#224;
    destination de tous ceux qui ont re&#231;u un message d'erreur suite &#224; un
    rejet en provenance d'une politique, et ont donc besoin de savoir &#224;
    quoi est du ce rejet et ce qu'ils doivent faire pour corriger
    l'erreur.</p>
  </div>
<div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#intro">Imposer la conformit&#233; au protocole HTTP dans Apache 2</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#policyconditional">Politique des requ&#234;tes conditionnelles</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#policylength">Politique de gestion de l'en-t&#234;te Content-Length</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#policytype">Politique de filtrage de l'en-t&#234;te Content-Type</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#policykeepalive">Politique de gestion des connexions persistantes (Keepalive)</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#policymaxage">Dur&#233;e de fra&#238;cheur / Politique de gestion de l'&#226;ge maximum</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#policynocache">Politique de gestion des contenus qui ne peuvent pas &#234;tre mis
    en cache</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#policyvalidation">Politique de validation</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#policyvary">Politique de gestion de l'en-t&#234;te Vary</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#policyversion">Politique de gestion des versions de protocole</a></li>
</ul><h3>Voir aussi</h3><ul class="seealso"><li><a href="filter.html">Filtres</a></li><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="intro" id="intro">Imposer la conformit&#233; au protocole HTTP dans Apache 2</a><a title="Lien permanent" href="#intro" class="permalink">&para;</a></h2>
    
    <table class="related"><tr><th>Modules Apparent&#233;s</th><th>Directives Apparent&#233;es</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_policy.html">mod_policy</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_policy.html#policyconditional">PolicyConditional</a></code></li><li><code class="directive"><a href="./mod/mod_policy.html#policylength">PolicyLength</a></code></li><li><code class="directive"><a href="./mod/mod_policy.html#policykeepalive">PolicyKeepalive</a></code></li><li><code class="directive"><a href="./mod/mod_policy.html#policytype">PolicyType</a></code></li><li><code class="directive"><a href="./mod/mod_policy.html#policyvary">PolicyVary</a></code></li><li><code class="directive"><a href="./mod/mod_policy.html#policyvalidation">PolicyValidation</a></code></li><li><code class="directive"><a href="./mod/mod_policy.html#policynocache">PolicyNocache</a></code></li><li><code class="directive"><a href="./mod/mod_policy.html#policymaxage">PolicyMaxage</a></code></li><li><code class="directive"><a href="./mod/mod_policy.html#policyversion">PolicyVersion</a></code></li></ul></td></tr></table>

    <p>Le protocole HTTP applique le <strong>principe de
    robustesse</strong> d&#233;crit dans la <a href="http://tools.ietf.org/html/rfc1122">RFC1122</a>, et stipulant
    <strong>"Soyez lib&#233;ral pour ce que vous acceptez, conservateur pour
    ce que vous envoyez"</strong>. Selon ce principe, les clients HTTP
    vont compenser en corrigeant les r&#233;ponses incorrectes ou mal
    configur&#233;es, ou ne pouvant pas &#234;tre mises en cache.</p>

    <p>Comme un site web est configur&#233; pour faire face &#224; un trafic
    toujours grandissant, des applications mal configur&#233;es ou non
    optimis&#233;es ou certaines configurations de serveur peuvent menacer la stabilit&#233;
    et l'&#233;volutivit&#233; du site web, ainsi que les co&#251;ts d'h&#233;bergement qui
    y sont associ&#233;s. L'&#233;volution d'un site web pour faire face &#224; une
    complexit&#233; croissante de sa configuration accro&#238;t les
    difficult&#233;s rencontr&#233;es pour d&#233;tecter et enregistrer les espaces
    d'URL mal configur&#233;s pour un serveur donn&#233;.</p>

    <p>De ce fait, un point peut &#234;tre atteint o&#249; le principe
    "conservateur pour ce que vous envoyez" doit &#234;tre impos&#233; par
    l'administrateur du serveur.</p>

    <p>Le module <code class="module"><a href="./mod/mod_policy.html">mod_policy</a></code> fournit un jeu de filtres
    qui peuvent &#234;tre appliqu&#233;s &#224; un serveur, permettant de tester
    explicitement les points cl&#233; du protocle HTTP, et de journaliser en
    tant qu'avertissements les r&#233;ponses non conformes, ou m&#234;me de
    simplement les rejeter avec un code d'erreur. Chaque filtre peut
    &#234;tre appliqu&#233; s&#233;par&#233;ment, permettant &#224; l'administrateur de choisir
    quelles politiques de conformit&#233; doivent &#234;tre impos&#233;es en fonction
    de l'environnement.
    </p>

    <p>Les filtres peuvent &#234;tre mis en place dans des environnements de
    test ou de simulation &#224; destination des d&#233;veloppeurs d'applications
    et de sites web, ou s'appliquer &#224; des serveurs en production pour
    prot&#233;ger l'infrastructure de syst&#232;mes en dehors du contr&#244;le direct
    de l'administrateur.</p>

    <p class="figure">
    <img src="images/compliance-reverse-proxy.png" width="666" height="239" alt="Imposer la conformit&#233; au protocole HTTP pour un serveur     d'applications" />
    </p>

    <p>Dans l'exemple ci-dessus, un serveur Apache httpd a &#233;t&#233; intercal&#233;
    entre le serveur d'applications et l'internet au sens large, et
    configur&#233; pour mettre en cache les r&#233;ponses en provenance du serveur
    d'applications. Les filtres de <code class="module"><a href="./mod/mod_policy.html">mod_policy</a></code> ont &#233;t&#233;
    ajout&#233;s pour imposer le support de la mise en cache de contenu et
    des requ&#234;tes conditionnelles, assurant ainsi que
    <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> et les caches publics de l'internet
    seront pleinement capables de mettre en cache le contenu cr&#233;&#233; avec
    efficacit&#233; par le serveur d'applications.</p>

    <p class="figure">
    <img src="images/compliance-static.png" width="469" height="239" alt="Imposer la conformit&#233; au protocole HTTP pour un serveur statique" />
    </p>

    <p>Dans l'exemple plus simple ci-dessus, un serveur statique qui
    sert du contenu ayant une forte probabilit&#233; d'&#234;tre mis en cache,
    se voit appliqu&#233; un jeu de r&#232;gles afin de
    s'assurer que sa configuration respecte un niveau minimum de
    conformit&#233; au protocole HTTP.</p>

  </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="policyconditional" id="policyconditional">Politique des requ&#234;tes conditionnelles</a><a title="Lien permanent" href="#policyconditional" class="permalink">&para;</a></h2>
    
    <table class="related"><tr><th>Modules Apparent&#233;s</th><th>Directives Apparent&#233;es</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_policy.html">mod_policy</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_policy.html#policyconditional">PolicyConditional</a></code></li></ul></td></tr></table>

    <p>Cette politique sera rejet&#233;e si le serveur ne r&#233;pond pas &#224; une
    requ&#234;te conditionnelle avec le code d'&#233;tat appropri&#233;. </p>

    <p>C'est gr&#226;ce aux requ&#234;tes conditionnelles qu'un cache HTTP peut
    rafra&#238;chir un contenu p&#233;rim&#233;, et en particulier dans le cas des
    contenus &#224; dur&#233;e de validit&#233; courte, l'absence de support des
    requ&#234;tes conditionnelles peut augmenter la charge du serveur.</p>

    <p>Plus particuli&#232;rement, la pr&#233;sence d'une des en-t&#234;tes suivantes
    dans la requ&#234;te rend cette derni&#232;re conditionnelle :</p>

    <dl>
    <dt><code>If-Match</code></dt>
    <dd>Si l'ETag fourni dans l'en-t&#234;te <code>If-Match</code> ne
    correspond pas &#224; l'ETag de la r&#233;ponse, le serveur doit renvoyer un
    code d'erreur <code>412 Precondition Failed</code>. Vous trouverez
    tous les d&#233;tails du traitement d'un en-t&#234;te <code>If-Match</code>
    dans la <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.24">RFC2616
    section 14.24</a>.</dd>

    <dt><code>If-None-Match</code></dt>
    <dd>Si l'ETag fourni dans l'en-t&#234;te <code>If-None-Match</code>
    correspond &#224; l'ETag de la r&#233;ponse, le serveur doit renvoyer soit
    <code>304 Not Modified</code> pour les requ&#234;tes GET/HEAD, soit
    <code>412 Precondition Failed</code> pour les autres m&#233;thodes. Vous trouverez
    tous les d&#233;tails du traitement d'un en-t&#234;te
    <code>If-None-Match</code> dans la <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.26">RFC2616
    section 14.26</a>.</dd>

    <dt><code>If-Modified-Since</code></dt>
    <dd>Si la date fournie dans l'en-t&#234;te <code>If-Modified-Since</code>
    est plus ancienne que celle de l'en-t&#234;te <code>Last-Modified</code>
    de la r&#233;ponse, le serveur doit renvoyer <code>304 Not Modified</code>. Vous trouverez
    tous les d&#233;tails du traitement d'un en-t&#234;te
    <code>If-Modified-Since</code> dans la <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.25">RFC2616
    section 14.25</a>.</dd>

    <dt><code>If-Unmodified-Since</code></dt>
    <dd>Si la date fournie dans l'en-t&#234;te
    <code>If-Unmodified-Since</code> est plus r&#233;cente que celle de
    l'en-t&#234;te <code>Last-Modified</code> de la r&#233;ponse, le serveur doit
    renvoyer <code>412 Precondition Failed</code>. Vous trouverez
    tous les d&#233;tails du traitement d'un en-t&#234;te
    <code>If-Unmodified-Since</code> dans la <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.28">RFC2616
    section 14.28</a>.</dd>

    <dt><code>If-Range</code></dt>
    <dd>Si l'ETag fourni dans l'en-t&#234;te <code>If-Range</code> correspond
    &#224; l'ETag ou &#224; l'en-t&#234;te Last-Modified de la r&#233;ponse, et si un
    en-t&#234;te <code>Range</code> valide est pr&#233;sent, le serveur doit
    renvoyer <code>206 Partial Response</code>. Vous trouverez
    tous les d&#233;tails du traitement d'un en-t&#234;te <code>If-Range</code>
    dans la <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.27">RFC2616
    section 14.27</a>.</dd>

    </dl>

    <p>Si la r&#233;ponse est consid&#233;r&#233;e comme ayant r&#233;ussi (une r&#233;ponse
    2xx), alors qu'elle &#233;tait conditionnelle et qu'une des r&#233;ponses
    ci-dessus &#233;tait attendue &#224; la place, cette politique sera rejet&#233;e.
    Les r&#233;ponses qui indiquent une redirection ou une erreur de toute
    sorte (3xx, 4xx, 5xx) seront ignor&#233;es de cette politique.</p>

    <p>Cette politique est impl&#233;ment&#233;e par le filtre
    <strong>POLICY_CONDITIONAL</strong>.</p>

  </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="policylength" id="policylength">Politique de gestion de l'en-t&#234;te Content-Length</a><a title="Lien permanent" href="#policylength" class="permalink">&para;</a></h2>
    
    <table class="related"><tr><th>Modules Apparent&#233;s</th><th>Directives Apparent&#233;es</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_policy.html">mod_policy</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_policy.html#policylength">PolicyLength</a></code></li></ul></td></tr></table>

    <p>Cette politique sera rejet&#233;e si la r&#233;ponse du serveur ne contient pas d'en-t&#234;te
    <code>Content-Length</code> explicite.</p>

    <p>De nombreuses m&#233;thodes pour d&#233;terminer la taille d'un
    corps de r&#233;ponse sont d&#233;crites dans la <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.4">RFC2616
    section 4.4 Message Length</a>.</p>

    <p>Lorsque l'en-t&#234;te <code>Content-Length</code> est pr&#233;sente, la
    taille du corps est d&#233;clar&#233;e au d&#233;but de la r&#233;ponse. Si cette
    information est manquante, un cache HTTP pourrait choisir d'ignorer
    la r&#233;ponse, car il ne pourrait pas d&#233;terminer a priori si la r&#233;ponse
    reste dans les limites d&#233;finies du cache.</p>

    <p>Pour indiquer la fin de la r&#233;ponse au client sans que ce dernier
    ait &#224; en conna&#238;tre la taille au pr&#233;alable, HTTP/1.1 propose
    l'en-t&#234;te <code>Transfer-Encoding</code> comme une alternative &#224;
    <code>Content-Length</code>. Cependant, lors du traitement de
    requ&#234;tes HTTP/1.0, et si l'en-t&#234;te <code>Content-Length</code> est
    absente, le seul m&#233;canisme dont dispose le serveur pour indiquer la
    fin de la requ&#234;te consiste &#224; couper la connexion. Dans un
    environnement contenant des r&#233;partiteurs de charge, cela peut
    court-circuiter le m&#233;canisme des connexions persistantes
    (keepalive).
    </p>

    <p>Si la r&#233;ponse est consid&#233;r&#233;e comme r&#233;ussie (une r&#233;ponse 2xx) et
    poss&#232;de un corps (ce qui exclut les r&#233;ponses <code>204 No
    Content</code>), et si l'en-t&#234;te <code>Content-Length</code> est
    absente, la r&#233;ponse sera rejet&#233;e. Aucune r&#233;ponse indiquant une
    redirection ou une erreur de toute nature (3xx, 4xx, 5xx) n'est
    prise en compte par cette politique.</p>

    <div class="warning">Notez que certains modules comme
    <code class="module"><a href="./mod/mod_proxy.html">mod_proxy</a></code> ajoutent leur propre en-t&#234;te
    <code>Content-Length</code> sous r&#233;serve que la r&#233;ponse o&#249; cette
    en-t&#234;te est absente soit suffisamment courte pour que le module ait
    pu la lire en une seule passe. De ce fait, des r&#233;ponses courtes pourront
    &#234;tre accept&#233;es par la politique, alors que d'autres plus longues
    seront rejet&#233;es pour la m&#234;me URL.</div>

    <p>Cette politique est impl&#233;ment&#233;e par le filtre
    <strong>POLICY_LENGTH</strong>.</p>

  </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="policytype" id="policytype">Politique de filtrage de l'en-t&#234;te Content-Type</a><a title="Lien permanent" href="#policytype" class="permalink">&para;</a></h2>
    
    <table class="related"><tr><th>Modules Apparent&#233;s</th><th>Directives Apparent&#233;es</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_policy.html">mod_policy</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_policy.html#policytype">PolicyType</a></code></li></ul></td></tr></table>

    <p>Cette politique sera rejet&#233;e si la r&#233;ponse du serveur ne contient pas d'en-t&#234;te
    <code>Content-Type</code> explicite et valide du point de vue de la
    syntaxe, correspondant au mod&#232;le d&#233;fini par le serveur.</p>

    <p>Le type de media du corps est plac&#233; dans une en-t&#234;te
    <code>Content-Type</code> dont le format est d&#233;crit en d&#233;tail dans
    la <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.7">
    RFC2616 section 3.7 Media Types</a>.</p>

    <p>Une en-t&#234;te <code>Content-Type</code> dont la syntaxe est valide
    sera du style :</p>

    <div class="example"><p><code>
      Content-Type: text/html; charset=iso-8859-1
    </code></p></div>

    <p>Exemples d'en-t&#234;tes <code>Content-Type</code> non valides :</p>

    <div class="example"><p><code>
      # invalide<br />
      Content-Type: foo<br />
      # vide<br />
      Content-Type:
    </code></p></div>

    <p>L'administrateur peut restreindre la politique &#224; un ou plusieurs
    types sp&#233;cifiques, ou utiliser des caract&#232;res g&#233;n&#233;riques comme
    <code>*/*</code>.</p>

    <p>Cette politique est mise en oeuvre par le filtre
    <strong>POLICY_TYPE</strong>.</p>

  </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="policykeepalive" id="policykeepalive">Politique de gestion des connexions persistantes (Keepalive)</a><a title="Lien permanent" href="#policykeepalive" class="permalink">&para;</a></h2>
    
    <table class="related"><tr><th>Modules Apparent&#233;s</th><th>Directives Apparent&#233;es</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_policy.html">mod_policy</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_policy.html#policykeepalive">PolicyKeepalive</a></code></li></ul></td></tr></table>

    <p>Cette politique era rejet&#233;e si la r&#233;ponse du serveur ne contient pas d'en-t&#234;te
    <code>Content-Length</code> explicite, ou d'en-t&#234;te
    <code>Transfer-Encoding</code> d&#233;fini &#224; chunked.</p>

    <p>De nombreuses mani&#232;res pour d&#233;terminer la taille d'un
    corps de r&#233;ponse sont d&#233;crites dans la <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.4">RFC2616
    section 4.4 Message Length</a>.</p>

    <p>Pour indiquer la fin de la r&#233;ponse au client sans que ce dernier
    ait &#224; en conna&#238;tre la taille au pr&#233;alable, HTTP/1.1 propose
    l'en-t&#234;te <code>Transfer-Encoding</code> comme une alternative &#224;
    <code>Content-Length</code>. Cependant, lors du traitement de
    requ&#234;tes HTTP/1.0, et si l'en-t&#234;te <code>Content-Length</code> est
    absent, le seul m&#233;canisme dont dispose le serveur pour indiquer la
    fin de la requ&#234;te consiste &#224; couper la connexion. Dans un
    environnement contenant des r&#233;partiteurs de charge, cela peut
    court-circuiter le m&#233;canisme des connexions persistantes
    (keepalive).
    </p>

    <p>En particulier, les r&#232;gles suivantes sont appliqu&#233;es : </p>

    <dl>
    <dt>Si</dt>
    <dd>cette connexion n'est pas marqu&#233;e en erreur ;</dd>

    <dt>et</dt>
    <dd>le client n'attend pas 100-continue ;</dd>

    <dt>et</dt>
    <dd>le code de statut de la r&#233;ponse ne n&#233;cessite pas de fermeture de connexion ;</dd>

    <dt>et</dt>
    <dd>le corps de la r&#233;ponse a une taille d&#233;finie suite au code de
    statut 304 ou 204, la m&#233;thode de requ&#234;te est HEAD, un en-t&#234;te
    Content-Length ou Transfer-Encoding: chunked a d&#233;j&#224; &#233;t&#233; d&#233;fini, ou
    la requ&#234;te est de type HTTP/1.1 et peut donc &#234;tre d&#233;finie &#224; chunked.</dd>

    <dt>alors</dt>
    <dd>keepalive est support&#233;.</dd>
    </dl>

    <div class="warning">Le serveur peut d&#233;cider de d&#233;sactiver les
    connexions persistantes pour de nombreuses raisons, comme un arr&#234;t
    imminent, un Connection: close en provenance du client, ou une
    requ&#234;te client de type HTTP/1.0 dont la r&#233;ponse ne comporte pas
    d'en-t&#234;te <code>Content-Length</code>, mais pour ce qui nous
    concerne, nous ne v&#233;rifions que la possibilit&#233; des connexions
    persistantes depuis l'application, et non si les connexions
    persistantes sont activ&#233;es.</div>

    <p>Notez aussi que le serveur HTTP Apache propose un filtre qui
    ajoute un codage chunked aux r&#233;ponses qui ne contiennent pas
    d'en-t&#234;te <code>Content-Length</code> explicite. Cette politique
    prend en compte les cas o&#249; le filtre est court-circuit&#233; ou
    d&#233;sactiv&#233;.</p>

    <p>Cette politique est impl&#233;ment&#233;e par le filtre
    <strong>POLICY_KEEPALIVE</strong>.</p>

  </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="policymaxage" id="policymaxage">Dur&#233;e de fra&#238;cheur / Politique de gestion de l'&#226;ge maximum</a><a title="Lien permanent" href="#policymaxage" class="permalink">&para;</a></h2>
    
    <table class="related"><tr><th>Modules Apparent&#233;s</th><th>Directives Apparent&#233;es</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_policy.html">mod_policy</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_policy.html#policymaxage">PolicyMaxage</a></code></li></ul></td></tr></table>

    <p>Cette politique se verra rejet&#233;e si la r&#233;ponse du serveur ne
    contient pas de <strong>dur&#233;e de fra&#238;cheur</strong> explicite au
    moins grande que la limite d&#233;finie par le serveur, ou si la
    dur&#233;e de fra&#238;cheur est calcul&#233;e &#224; partir d'une heuristique.</p>

    <p>Vous trouverez tous les d&#233;tails &#224; propos du calcul d'une dur&#233;e de
    fra&#238;cheur dans la <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html#sec13.2">RFC2616
    section 13.2 Expiration Model</a>.</p>

    <p>Pendant la dur&#233;e de fra&#238;cheur, un cache n'a pas besoin de
    contacter le serveur original, et il peut renvoyer le contenu situ&#233;
    dans le cache tel quel au client.</p>

    <p>Lorsque la date de p&#233;remption est atteinte, le cache doit
    contacter le serveur original dans le but de v&#233;rifier si le contenu
    situ&#233; dans le cache est encore &#224; jour, et si ce n'est pas le cas, de
    le remplacer par le contenu correspondant sur le serveur original.</p>

    <p>Lorsque la dur&#233;e de fra&#238;cheur est trop courte, il peut en
    r&#233;sulter un exc&#232;s de charge pour le serveur. De plus, si une
    interruption de service survient, et si cette derni&#232;re est longue,
    ou plus longue que la dur&#233;e de fra&#238;cheur, tout le contenu du cache
    s'en trouvera p&#233;rim&#233;, ce qui causera un trafic tr&#232;s important
    lorsque le serveur ou le r&#233;seau sera r&#233;tabli.</p>

    <p>Cette politique est impl&#233;ment&#233;e par le filtre
    <strong>POLICY_MAXAGE</strong>.</p>

  </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="policynocache" id="policynocache">Politique de gestion des contenus qui ne peuvent pas &#234;tre mis
    en cache</a><a title="Lien permanent" href="#policynocache" class="permalink">&para;</a></h2>
    
    <table class="related"><tr><th>Modules Apparent&#233;s</th><th>Directives Apparent&#233;es</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_policy.html">mod_policy</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_policy.html#policynocache">PolicyNocache</a></code></li></ul></td></tr></table>

    <p>Cette politique sera rejet&#233;e si la r&#233;ponse du serveur
    d&#233;clare elle-m&#234;me qu'elle ne doit pas &#234;tre mise en cache &#224; l'aide
    d'un en-t&#234;te <code>Cache-Control</code> ou <code>Pragma</code>.</p>

    <p>Vous trouverez tous les d&#233;tails &#224; propos de la mani&#232;re dont un
    contenu peut &#234;tre d&#233;clar&#233; comme non cachable dans la <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.1">RFC2616
    section 14.9.1 What is Cacheable</a>, et au sein de la d&#233;finition de
    l'en-t&#234;te <code>Pragma</code> dans la <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.32">RFC2616
    section 14.32 Pragma</a>.</p>

    <p>Plus pr&#233;cis&#233;ment, si une combinaison des en-t&#234;tes suivants existe
    dans la r&#233;ponse, cette derni&#232;re sera rejet&#233;e :</p>

    <ul>
    <li><code>Cache-Control: no-cache</code></li>
    <li><code>Cache-Control: no-store</code></li>
    <li><code>Cache-Control: private</code></li>
    <li><code>Pragma: no-cache</code></li>
    </ul>

    <p>D'une mani&#232;re g&#233;n&#233;rale, lorsque cette politique est activ&#233;e, et
    si d'une mani&#232;re inattendue un contenu non cachable peut induire un
    niveau de charge du serveur inacceptable, tout contenu d&#233;fini comme
    non cachable par le serveur sera rejet&#233;.</p>

    <p>Cette politique est impl&#233;ment&#233;e par le filtre
    <strong>POLICY_NOCACHE</strong>.</p>

  </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="policyvalidation" id="policyvalidation">Politique de validation</a><a title="Lien permanent" href="#policyvalidation" class="permalink">&para;</a></h2>
    
    <table class="related"><tr><th>Modules Apparent&#233;s</th><th>Directives Apparent&#233;es</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_policy.html">mod_policy</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_policy.html#policyvalidation">PolicyValidation</a></code></li></ul></td></tr></table>

    <p>Cette politique sera rejet&#233;e si la r&#233;ponse du serveur
    ne contient aucune en-t&#234;te syntaxiquement correct <code>ETag</code>
    ou <code>Last-Modified</code>.</p>

    <p>Vous trouverez une description compl&#232;te de l'en-t&#234;te
    <code>ETag</code> dans la <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.19">RFC2616
    section 14.19 Etag</a>, et de l'en-t&#234;te <code>Last-Modified</code>
    dans la <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.29">RFC2616
    section 14.29 Last-Modified</a>.</p>

    <p>La v&#233;rification est effectu&#233;e non seulement en ce qui concerne la
    pr&#233;sence des en-t&#234;tes, mais aussi du point de vue de leur syntaxe.</p>

    <p>Si une en-t&#234;te <code>ETag</code> n'est pas entour&#233;e de guillemets,
    ou n'est pas d&#233;clar&#233;e "weak" en le pr&#233;fixant avec un "W/", la politique
    sera rejet&#233;e. De m&#234;me, si l'interpr&#233;tation d'une en-t&#234;te
    <code>Last-Modified</code> ne fournit pas de date valide, la r&#233;ponse
    sera rejet&#233;e.</p>

    <p>Cette politique est impl&#233;ment&#233;e par le filtre
    <strong>POLICY_VALIDATION</strong>.</p>

  </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="policyvary" id="policyvary">Politique de gestion de l'en-t&#234;te Vary</a><a title="Lien permanent" href="#policyvary" class="permalink">&para;</a></h2>
    
    <table class="related"><tr><th>Modules Apparent&#233;s</th><th>Directives Apparent&#233;es</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_policy.html">mod_policy</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_policy.html#policyvary">PolicyVary</a></code></li></ul></td></tr></table>

    <p>Cette politique se verra rejet&#233;e si la r&#233;ponse du serveur
    contient une en-t&#234;te <code>Vary</code>, et si cette en-t&#234;te
    contient &#224; son tour une en-t&#234;te mise en liste noire par
    l'administrateur.</p>

    <p>L'en-t&#234;te <code>Vary</code> est d&#233;crite en d&#233;tails dans la <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.44">RFC2616
    section 14.44 Vary</a>.</p>

    <p>Certaines en-t&#234;tes d&#233;finies par les clients, comme
    <code>User-Agent</code>, peuvent contenir des milliers ou m&#234;me des
    millions de combinaisons de valeurs au cours du temps, et si la
    r&#233;ponse est consid&#233;r&#233;e comme pouvant &#234;tre mise en cache, le cache
    peut tenter d'enregistrer toutes ces r&#233;ponses, ce qui peut l'amener
    &#224; saturation et &#224; noyer les autres entr&#233;es qu'il contient. Avec ce
    sc&#233;nario, cette politique sera rejet&#233;e.</p>

    <p>Cette politique est impl&#233;ment&#233;e par le filtre
    <strong>POLICY_VARY</strong>.</p>

  </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="policyversion" id="policyversion">Politique de gestion des versions de protocole</a><a title="Lien permanent" href="#policyversion" class="permalink">&para;</a></h2>
    
    <table class="related"><tr><th>Modules Apparent&#233;s</th><th>Directives Apparent&#233;es</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_policy.html">mod_policy</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_policy.html#policyversion">PolicyVersion</a></code></li></ul></td></tr></table>

    <p>Cette politique sera rejet&#233;e si la r&#233;ponse du serveur
    a &#233;t&#233; g&#233;n&#233;r&#233;e avec un num&#233;ro de version inf&#233;rieur &#224; la version
    de HTTP sp&#233;cifi&#233;e.</p>

    <p>Cette politique s'utilise en g&#233;n&#233;ral avec les applications qui
    n&#233;cessitent un contr&#244;le du type du client. Elle peut &#234;tre utilis&#233;e en
    concomitance avec le filtre <code>POLICY_KEEPALIVE</code> afin de
    s'assurer que les clients HTTP/1.0 n'engendrent pas la fermeture des
    connexions persistantes.</p>

    <p>Les versions minimales pouvant &#234;tre sp&#233;cifi&#233;es sont :</p>

    <ul><li><code>HTTP/1.1</code></li>
    <li><code>HTTP/1.0</code></li>
    <li><code>HTTP/0.9</code></li>
    </ul>

    <p>Cette politique est impl&#233;ment&#233;e par le filtre
    <strong>POLICY_VERSON</strong>.</p>

  </div></div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="./en/compliance.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="./fr/compliance.html" title="Fran&#231;ais">&nbsp;fr&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/trunk/compliance.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 2018 The Apache Software Foundation.<br />Autoris&#233; 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/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[//><!--
if (typeof(prettyPrint) !== 'undefined') {
    prettyPrint();
}
//--><!]]></script>
</body></html>