1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
3 <?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
4 <!-- French translation : Lucien GENTIS -->
5 <!-- Reviewed by : Vincent Deffontaines -->
6 <!-- English Revision: 1855701 -->
9 Licensed to the Apache Software Foundation (ASF) under one or more
10 contributor license agreements. See the NOTICE file distributed with
11 this work for additional information regarding copyright ownership.
12 The ASF licenses this file to You under the Apache License, Version 2.0
13 (the "License"); you may not use this file except in compliance with
14 the License. You may obtain a copy of the License at
16 http://www.apache.org/licenses/LICENSE-2.0
18 Unless required by applicable law or agreed to in writing, software
19 distributed under the License is distributed on an "AS IS" BASIS,
20 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21 See the License for the specific language governing permissions and
22 limitations under the License.
25 <manualpage metafile="new_features_2_4.xml.meta">
27 <title>Vue d'ensemble des nouvelles fonctionnalités de la version 2.4 du
28 serveur HTTP Apache</title>
31 <p>Ce document décrit les modifications majeures apportées par
32 la version 2.4 du serveur HTTP Apache. Pour les nouvelles fonctionnalités
33 ajoutées par la version 2.2, se référer au document
34 <a href="new_features_2_2.html">Nouvelles fonctionnalités
35 de la version 2.2</a>.</p>
39 <title>Améliorations du noyau</title>
41 <dt>Modules multiprocessus (MPMs) chargeables à l'exécution</dt>
42 <dd>Plusieurs MPMs peuvent maintenant être <a
43 href="mpm.html#dynamic">compilés en tant que modules
44 chargeables</a>. Le choix du MPM à utiliser s'effectue
45 à l'exécution via la directive <directive
46 module="mod_so">LoadModule</directive>.</dd>
49 <dd>Le <a href="mod/event.html">MPM Event</a> n'en est plus au stade expérimental et est
50 maintenant pleinement supporté.</dd>
52 <dt>Support du mode asynchrone</dt>
53 <dd>Le support des lectures/écritures asynchrones pour les MPMs et
54 les plateformes qui l'implémentent a été amélioré.</dd>
56 <dt>Configuration du niveau de journalisation (LogLevel) par
57 module et par répertoire</dt>
58 <dd>La directive <directive module="core">LogLevel</directive>
59 peut maintenant être définie par module et par répertoire. Les
60 nouveaux niveaux <code>trace1</code> à <code>trace8</code> ont été
61 ajoutés au dessus du niveau de journalisation <code>debug</code>.</dd>
63 <dt>Sections de configuration au niveau requête</dt>
64 <dd>Les sections <directive module="core">If</directive>,
65 <directive module="core" type="section">ElseIf</directive> et
66 <directive module="core" type="section">Else</directive>
67 permettent de définir une configuration en fonction de critères
68 liés à la requête.</dd>
70 <dt>Interpréteur d'expressions à usage général</dt>
71 <dd>Un nouvel interpréteur d'expressions permet de spécifier des
72 <a href="expr.html">conditions complexes</a> via des directives à
73 syntaxe commune comme <directive
74 module="mod_setenvif">SetEnvIfExpr</directive>, <directive
75 module="mod_rewrite">RewriteCond</directive>, <directive
76 module="mod_headers">Header</directive>,
77 <directive module="core" type="section">If</directive>, etc...
80 <dt>KeepAliveTimeout en millisecondes</dt>
81 <dd>Il est maintenant possible de définir la directive <directive
82 module="core">KeepAliveTimeout</directive> en millisecondes.
85 <dt>Directive NameVirtualHost</dt>
86 <dd>Cette directive n'est plus nécessaire et est maintenant obsolète.</dd>
88 <dt>Directives autorisées dans les fichiers <code>.htaccess</code></dt>
89 <dd>La nouvelle directive <directive
90 module="core">AllowOverrideList</directive> permet de contrôler de
91 manière plus précise la liste des directives autorisées dans les
92 fichiers <code>.htaccess</code>.</dd>
94 <dt>Variables dans les fichiers de configuration</dt>
95 <dd>La directive <directive module="core">Define</directive>
96 permet de définir des variables dans les fichiers de
97 configuration, améliorant ainsi la clareté de la présentation si
98 la même valeur est utilisée en plusieurs points de la
102 <dt>Diminution de la mémoire utilisée</dt>
103 <dd>Bien qu'elle propose de nombreuses nouvelles fonctionnalités,
104 la version 2.4.x tend à utiliser moins de mémoire que la version
110 <section id="newmods">
111 <title>Nouveau modules</title>
114 <dt><module>mod_proxy_fcgi</module></dt>
115 <dd>Support des serveur FastCGI d'arrière-plan pour
116 <module>mod_proxy</module>.</dd>
118 <dt><module>mod_proxy_scgi</module></dt>
119 <dd>Support des serveurs SCGI d'arrière-plan pour
120 <module>mod_proxy</module>.</dd>
122 <dt><module>mod_proxy_express</module></dt>
123 <dd>Ajoute à <module>mod_proxy</module> la configuration dynamique
124 de mandataires inverses en masse.</dd>
126 <dt><module>mod_remoteip</module></dt>
127 <dd>Remplace l'adresse IP distante et le nom d'hôte apparents du
128 client pour la requête courante par la liste d'adresses IP
129 présentée par un mandataire ou un répartiteur de charge via les
130 en-têtes de la requête.</dd>
132 <dt><module>mod_heartmonitor</module>,
133 <module>mod_lbmethod_heartbeat</module></dt>
134 <dd>Permet à <module>mod_proxy_balancer</module> de répartir la
135 charge en fonction du nombre de connexions actives sur les
136 serveurs d'arrière-plan.</dd>
138 <dt><module>mod_proxy_html</module></dt>
139 <dd>Anciennement module tiers, il supporte la correction des liens
140 HTML dans une situation de mandat inverse, où le serveur
141 d'arrière-plan génère des URLs qui ne sont pas valides du point de
142 vue des clients du mandataire.</dd>
144 <dt><module>mod_sed</module></dt>
145 <dd>Une amélioration de <module>mod_substitute</module> qui permet
146 d'éditer le corps de la réponse avec toute la puissance de la
149 <dt><module>mod_auth_form</module></dt>
150 <dd>Implémente une authentification à base de formulaire.</dd>
152 <dt><module>mod_session</module></dt>
153 <dd>Permet de conserver les données de sessions des clients sous
154 forme de cookies ou dans une base de données.</dd>
156 <dt><module>mod_allowmethods</module></dt>
157 <dd>Permet de restreindre l'utilisation de
158 certaines méthodes HTTP sans interférer avec l'authentification et
161 <dt><module>mod_lua</module></dt>
162 <dd>Embarque le langage <a href="http://www.lua.org/">Lua</a> dans
163 httpd pour la configuration et les fonctions logiques courantes
166 <dt><module>mod_log_debug</module></dt>
167 <dd>Permet d'introduire une journalisation personnalisée à
168 différentes phases du traitement de la requête.</dd>
170 <dt><module>mod_buffer</module></dt>
171 <dd>Fournit un tampon pour les piles des filtres en entrée et en
174 <dt><module>mod_data</module></dt>
175 <dd>Convertit un corps de réponse en URL de type données RFC2397.</dd>
177 <dt><module>mod_ratelimit</module></dt>
178 <dd>Permet de limiter la bande passante pour certains
181 <dt><module>mod_request</module></dt>
182 <dd>Fournit des filtres permettant de gérer et de mettre à
183 disposition les corps des requêtes HTTP.</dd>
185 <dt><module>mod_reflector</module></dt>
186 <dd>Permet de renvoyer comme réponse le corps de la requête via la
187 pile du filtre de sortie.</dd>
189 <dt><module>mod_slotmem_shm</module></dt>
190 <dd>Met à disposition un fournisseur de mémoire partagée à base de
191 slots (du style tableau de bord).</dd>
193 <dt><module>mod_xml2enc</module></dt>
194 <dd>Anciennement module tiers, il supporte l'internationalisation
195 dans les modules de filtrage basés sur libxml2 (support du
198 <dt><module>mod_macro</module> (disponible à partir de la version 2.4.5)</dt>
199 <dd>Permet d'utiliser des macros au sein des fichiers de
202 <dt><module>mod_proxy_wstunnel</module> (disponible à partir de la version 2.4.5)</dt>
203 <dd>Support des tunnels web-socket.</dd>
205 <dt><module>mod_authnz_fcgi</module> (disponible à partir de la version 2.4.10)</dt>
206 <dd>Permet aux applications d'autorisation FastCGI d'authentifier
207 et/ou autoriser les clients.</dd>
209 <dt><module>mod_http2</module> (disponible à partir de la
211 <dd>Support de la couche transport HTTP/2.</dd>
213 <dt><module>mod_proxy_http2</module> (disponible à partir de la version 2.4.19)</dt>
214 <dd>Support du protocole HTTP/2 pour <module>mod_proxy</module></dd>
216 <dt><module>mod_proxy_hcheck</module> (disponible à partir de la version 2.4.21)</dt>
217 <dd>Support d'un bilan de santé dynamique indépendant pour les serveurs
218 d'arrière-plan mandatés distants.</dd>
220 <dt><module>mod_brotli</module> (disponible à partir de la version 2.4.26)</dt>
221 <dd>Support de l'algorithme de compression Brotli.</dd>
223 <dt><module>mod_md</module> (disponible à partir de la version 2.4.30)</dt>
224 <dd>Automatisation de l'obtention de certificats via le protocole ACME.</dd>
226 <dt><module>mod_socache_redis</module> (disponible à partir de la version 2.4.39)</dt>
227 <dd>Supporte le fournisseur de cache d'objets partagés basé sur <a
228 href="http://redis.io/">Redis</a>.</dd>
233 <section id="module">
234 <title>Améliorations des modules</title>
236 <dt><module>mod_ssl</module></dt>
238 <dd><module>mod_ssl</module> peut maintenant vérifier la
239 validité des certificats clients en se connectant à
240 un serveur OCSP. Il est possible de définir un
241 répondeur par défaut, et de choisir si l'on
242 préfère le répondeur désigné
243 dans le certificat client.</dd>
245 <dd>En outre, <module>mod_ssl</module> supporte maintenant
246 l'estampillage OCSP (OCSP stapling), qui permet au serveur
247 d'attester la validité de son certificat auprès du client au
248 cours de la phase de négociation de la connexion.</dd>
250 <dd>Enfin, <module>mod_ssl</module> peut maintenant être configuré pour
251 que celui-ci partage les données de session SSL entre les serveurs
254 <dd>Le support des clés EC a été ajouté à celui des clés RSA et
257 <dd>Support de TLS-SRP (disponible à partir de la version 2.4.4).</dd>
259 <dt><module>mod_proxy</module></dt>
261 <dd>La directive <directive
262 module="mod_proxy">ProxyPass</directive> est maintenant configurée
263 de manière optimale dans les sections <directive
264 module="core">Location</directive> ou <directive
265 module="core">LocationMatch</directive>, et offre un gain de
266 performances important par rapport à la syntaxe traditionnelle à
267 deux paramètres lorsqu'elle est présente en grand nombre.</dd>
269 <dd>Il est maintenant possible de configurer l'adresse source dans
270 les requêtes mandatées.</dd>
272 <dd>Support des sockets de type Unix vers le serveur
273 d'arrière-plan (disponible à partir de la version 2.4.7).</dd>
275 <dt><module>mod_proxy_balancer</module></dt>
277 <dd>Le gestionnaire de répartition de charge propose de nouvelles
278 fonctionnalités. Ainsi, les possibilités de configuration des
279 membres du groupe de répartition de charge pendant l'exécution ont
280 été améliorées (possibilité d'ajout d'un membre supplémentaire).</dd>
282 <dd>Configuration à l'exécution d'un sous-ensemble de paramètres
283 de répartition de charge.</dd>
285 <dd>Les membres du groupe de répartition peuvent être définis à
286 'Drain' de façon à ce qu'ils ne répondent qu'aux sessions
287 persistantes existantes, ce qui permet de les mettre hors ligne en
290 <dd>Les règlages du répartiteur de charge peuvent être rendus
291 persistants après redémarrage.</dd>
293 <dt><module>mod_cache</module></dt>
295 <dd>Le filtre CACHE du module <module>mod_cache</module> peut être
296 inséré à un certain point de la chaîne de filtrage pour contrôler
297 plus finement la mise en cache.
300 <dd><module>mod_cache</module> peut maintenant mettre en cache des
303 <dd>Chaque fois que cela est possible, les directives de
304 <module>mod_cache</module> peuvent maintenant être définies au
305 niveau du répertoire, et non plus seulement au niveau du serveur
308 <dd>L'URL de base des URLs en cache peut être personnalisée de
309 façon à ce qu'un cluster de caches puisse partager le même préfixe
312 <dd><module>mod_cache</module> peut maintenant servir du contenu
313 non mis à jour lorsqu'un serveur d'arrière-plan n'est pas
314 disponible (erreur 5xx).</dd>
316 <dd><module>mod_cache</module> peut maintenant insérer
317 HIT/MISS/REVALIDATE dans un en-tête X-Cache.</dd>
319 <dt><module>mod_include</module></dt>
320 <dd>Support de l'attribut 'onerror' dans un élément 'include',
321 permettant de renvoyer un message d'erreur personnalisé à la place
322 du message d'erreur par défaut.</dd>
324 <dt><module>mod_cgi</module>, <module>mod_include</module>,
325 <module>mod_isapi</module>, ...</dt>
326 <dd>La traduction des en-têtes en variables d'environnement est
327 plus stricte qu'avant, ce qui permet de diminuer l'exposition aux attaques
328 de type cross-site-scripting via injection d'en-têtes. Les
329 en-têtes contenant des caractères invalides (comme les caractères
330 de soulignement) sont maintenant ignorés. Le document <a
331 href="env.html">Les variables d'environnement dans Apache</a>
332 présente quelques pistes pour contourner ce problème avec les
333 clients anciens qui nécessitent de tels en-têtes (Ceci affecte
334 tous les modules qui utilisent ces variables d'environnement).</dd>
336 <dt><module>mod_authz_core</module> Conteneurs de logique d'autorisation</dt>
338 <dd>La directive <directive
339 module="mod_authz_core">Require</directive> et les directives de
340 conteneurs associées, comme <directive module="mod_authz_core"
341 type="section">RequireAll</directive>, permettent de définir une
342 logique d'autorisation avancée.</dd>
346 <dt><module>mod_rewrite</module></dt>
347 <dd>La directive <directive
348 module="mod_rewrite">RewriteRule</directive> dispose maintenant
349 des drapeaux <code>[QSD]</code> (Query String Discard) et
350 <code>[END]</code> qui permettent de simplifier les scénarios de
351 réécriture courants.</dd>
352 <dd>Possibilité d'utiliser des expressions booléennes complexes
353 dans la directive <directive
354 module="mod_rewrite">RewriteCond</directive>.</dd>
355 <dd>Possibilité d'utiliser des requêtes SQL en tant que fonctions
356 dans la directive <directive
357 module="mod_rewrite">RewriteMap</directive>.</dd>
359 <dt><module>mod_ldap</module>, <module>mod_authnz_ldap</module></dt>
360 <dd><module>mod_authnz_ldap</module> ajoute le support des
361 groupes imbriqués.</dd>
362 <dd><module>mod_ldap</module> apporte les directives <directive
363 module="mod_ldap">LDAPConnectionPoolTTL</directive> et <directive
364 module="mod_ldap">LDAPTimeout</directive>, ainsi que d'autres
365 améliorations dans le traitement des délais. Ceci s'avère utile
366 pour les configurations où un pare-feu à mémoire d'état (stateful)
367 rejète les connexions inactives vers le serveur LDAP.</dd>
368 <dd><module>mod_ldap</module> propose la directive <directive
369 module="mod_ldap">LDAPLibraryDebug</directive> qui permet de
370 journaliser les informations de débogage fournies par la boîte à
371 outils LDAP utilisée.</dd>
373 <dt><module>mod_info</module></dt>
374 <dd><module>mod_info</module> est maintenant capable d'afficher la
375 configuration préinterprétée sur stdout au cours du démarrage du
378 <dt><module>mod_auth_basic</module></dt>
379 <dd>Nouveau mécanisme générique permettant d'effectuer une
380 authentification basique (disponible à partir de la version 2.4.5).</dd>
385 <section id="programs">
386 <title>Améliorations des programmes</title>
388 <dt><program>fcgistarter</program></dt>
389 <dd>Nouvel utilitaire pour le démarrage des démons
391 <dt><program>htcacheclean</program></dt>
392 <dd>Les URLs présentes dans le cache peuvent maintenant être
393 affichées, accompagnées éventuellement de leurs métadonnées.</dd>
394 <dd>Possibilité de supprimer explicitement des URLs individuelles
395 présentes dans le cache.</dd>
396 <dd>Les tailles de fichiers peuvent maintenant être arrondies au
397 multiple de la taille de bloc donnée, les limites de taille
398 collant de ce fait d'avantage à la taille réelle sur disque.</dd>
399 <dd>La taille du cache peut maintenant être limitée par le
400 nombre d'inodes, en plus de la possibilité de limitation par la
401 taille des fichiers.</dd>
403 <dt><program>rotatelogs</program></dt>
404 <dd>Possibilité de créer un lien vers le fichier journal
406 <dd>Possibilité d'invoquer un script personnalisé après la
409 <dt><program>htpasswd</program>, <program>htdbm</program></dt>
410 <dd>Support de l'algorithme bcrypt (disponible à partir de la
416 <section id="documentation">
417 <title>Documentation</title>
420 <dd>La documentation du module <module>mod_rewrite</module> a
421 été réorganisée et presque entièrement réécrite en mettant
422 l'accent sur les exemples et l'utilisation courante, ainsi que
423 sur l'incitation à utiliser d'autres solutions lorsque cela
424 s'avère plus approprié. Le document <a href="rewrite/">Rewrite
425 Guide</a> constitue maintenant une section de premier niveau ;
426 il est mieux organisé et contient beaucoup plus de détails.</dd>
429 <dd>La documentation du module <module>mod_ssl</module> a été
430 grandement améliorée, avec plus d'exemples et un niveau "Bien
431 démarrer" qui s'ajoutent aux détails techniques déjà présents
432 dans la précédente documentation.</dd>
434 <dt>Caching Guide</dt>
435 <dd>Le <a href="caching.html">Guide de la mise en cache</a> a
436 été réécrit afin de bien faire la différence entre les
437 fonctionnalités de mise en cache de la RFC2616 HTTP/1.1 fournies
438 par le module <module>mod_cache</module>, et la mise en cache
439 générique de type clé/valeur fournie par l'interface <a
440 href="socache.html">socache</a>, mais aussi pour couvrir la mise
441 en cache spécialisée fournie par des mécanismes tels que ceux du
442 module <module>mod_file_cache</module>.</dd>
446 <section id="developer">
447 <title>Modifications concernant les développeur de modules</title>
449 <dt>Ajout de code pour la vérification de la configuration</dt>
451 <dd>Une nouvelle fonction, <code>check_config</code>, a été ajoutée et
452 s'exécute entre les fonctions <code>pre_config</code> et
453 <code>open_logs</code>. Elle s'exécute aussi avant la fonction
454 <code>test_config</code> si l'option <code>-t</code> est passée au
455 démon <program>httpd</program>. La fonction <code>check_config</code>
456 permet aux modules de vérifier l'interdépendance des valeurs des
457 directives de configuration et d'ajuster ces valeurs, alors que les
458 messages du serveur peuvent encore être affichés sur la console.
459 L'utilisateur est ainsi averti des erreurs de configuration avant que la
460 fonction du noyau <code>open_logs</code> ne redirige les sorties de la
461 console vers le journal des erreurs.</dd>
463 <dt>Ajout d'un analyseur syntaxique d'expressions</dt>
464 <dd>Nous disposons à présent d'un analyseur générique d'expressions, dont l'API
465 est décrite dans <var>ap_expr.h</var>. Il s'agit d'une adaptation de
466 l'analyseur qu'on trouvait auparavant dans <module>mod_ssl</module>.</dd>
468 <dt>Conteneurs de logique d'autorisation</dt>
470 <dd>Afin de fournir une logique d'autorisation avancée via des
471 directives telles que <directive module="mod_authz_core"
472 type="section">RequireAll</directive>, les modules d'autorisation
473 s'enregistrent maintenant en tant
474 que fournisseur par le biais de ap_register_auth_provider().</dd>
476 <dt>Interface de mise en cache des petits objets</dt>
478 <dd>Le fichier d'en-têtes <var>ap_socache.h</var> fournit une
479 interface à base de fournisseur pour la mise en cache des petits
480 objets de données, en s'inspirant de
481 l'implémentation précédente
482 du cache de session par <module>mod_ssl</module>. Sont supportés
483 actuellement : les fournisseurs utilisant un tampon cyclique en
484 mémoire partagée, les fichiers dbm sur disque, et les caches
485 distribués de type memcache.</dd>
487 <dt>Ajout du point d'ancrage Cache Status</dt>
489 <dd>Le module <module>mod_cache</module> inclut maintenant un
490 nouveau point d'ancrage, <code>cache_status</code>, qui est appelé
491 lorsque la décision à propos de la mise en cache est connue. Il en
492 existe une implémentation par défaut qui ajoute les en-têtes
493 optionnels <code>X-Cache</code> et <code>X-Cache-Detail</code> à
498 <p>La documentation du développeur contient une <a
499 href="developer/new_api_2_4.html">liste détaillée des modifications