Serveur HTTP Apache Version 2.5

Ce document décrit quelques changements majeurs entre les version 2.4 et 2.6 du serveur HTTP Apache. Pour les nouvelles fonctionnalités apparues dans la version 2.4, voir le document nouvelles fonctionnalités de la version 2.4.
ContentDigest et la prise en charge de
l’en-tête Content-MD5 ont été supprimées du serveur, en
accord avec la suppression de cet en-tête de la RFC 7231 (Hypertext Transfer Protocol (HTTP/1.1):
Semantics and Content).ListenListen prend
maintenant en charge un argument facultatif options=...,
permettant de spécifier des options de socket par écouteur, en particulier
multipathtcp pour activer TCP multi-chemin s’il est pris en
charge par la plateforme.AsyncFilter
permet de déclarer les types de filtre qui prennent en charge la gestion
asynchrone, et la prise en charge du complètement de saisie asynchrone a
été étendue à l'ensemble du noyau. Cela étaie la description de la gestion
asynchrone des serveurs mandataires et des WebSockets ci-après.HttpExpectStrict contrôle si un code
417 est renvoyé lorsqu’un client omet une prévision
100-Continue, et HttpContentLengthHeadZero contrôle la gestion de
Content-Length pour les requêtes HEAD.LogLevelOverride permet d’outrepasser le niveau
de journalisation pour des adresses IP clientes individuelles, facilitant
ainsi le débogage ciblé sur un serveur en fonctionnement.systemdhttpd peut maintenant être configuré pour démarrer
via l’l’activation
du socket systemd.DefaultStateDirDefaultStateDir permet de spécifier un
répertoire pour stocker les états persistants.Listen ou VirtualHost.mod_auth_bearer, mod_autht_core,
mod_autht_jwtmod_auth_bearer implémente
l’authentification à jeton Bearer de la RFC 6750 en
tant que frontal (semblable à mod_auth_basic),
mod_autht_core héberge l’enregistrement du fournisseur
autht et mod_autht_jwt fournit la signature et la
vérification par jeton Web JSON.mod_cryptomod_journald, mod_syslogjournald.mod_proxy_beaconmod_allowhandlersmod_sslSSLRandomSeed
est maintenant obsolète et ignorée si le serveur a été compilé avec
OpenSSL version 1.1.1 ou supérieure.SSLKEYLOGFILE peut
maintenant être définie pour enregistrer des informations de clé privée
pour déchiffrer hors-ligne des vidages du protocole SSL/TLS en utilisant
des outils tiers.SSLPolicy permet de définir une fois pour
toutes un ensemble de définitions SSL nommé et de l’appliquer à
plusieurs serveurs virtuels.mod_proxy, mod_proxy_wstunnelUpgraded et des WebSockets, personnalisés à l’aide des
nouvelles
directives ProxyAsyncDelay,
ProxyAsyncIdleTimeout,
ProxyWebsocketAsyncDelay et
ProxyWebsocketIdleTimeout.mod_http2H2WebSockets), de la nouvelle directive
H2EarlyHint permettant d’ajouter des en-têtes à
une réponse 103 Early Hints et d’un comptage précis des
octets envoyés pour le format de journalisation %O.mod_davDAVquota), les extensions du
protocole WebDAV de Microsoft (directive DAVMSext), les directives
DAVHonorMtimeHeader et DAVLockDBType, et une
conformité accrue de l’ETag fort.mod_autoindex ajoute la directive IndexForbiddenReturn404,
mod_mime ajoute MimeOptions et
mod_session_cookie ajoute
SessionCookieMaxAge.mod_cgid--enable-cgid-fdpassing, le démon CGI configure la gestion de
stderr de la même façon que mod_cgi.httphttp
vers le noyau du serveur — en particulier le gestionnaire par
défaut, les filtres en entrée et en sortie par défaut et les directives de
configuration du noyau — de façon que le serveur puisse fonctionner
que le module http soit chargé ou non. Le déplacement de
ap_set_etag() depuis le module http vers le
noyau était une partie de ce travail.REQUEST,
RESPONSE et HEADERS ont été ajoutés à l’API,
ainsi qu’une nouvelle méthode pour définir les en-têtes de réponse
standards Date et Server et des aides au
formatage de parties de HTTP/1.x (en-têtes, segments de fin) à réutiliser
en dehors du noyau, par exemple dans mod_proxy. Le filtre
HTTP_IN a été divisé en un filtre HTTP générique et un filtre
spécifique à HTTP/1.x HTTP1_BODY_IN, et un nouveau drapeau
body_indeterminate sur request_rec indique qu’un
corps de requête peut être présent et doit être lu ou supprimé.request_rec, permettant la définition des indicateurs de bits
compactés sur une requête. La première de ces notes,
AP_REQUEST_STRONG_ETAG, fait que les modules forcent la
compatibilité d’un ETag fort avec les exigences des RFC telles que celles
mandatées par diverses extensions de WebDav. Les nouvelles fonctions
ap_make_etag_ex() et ap_set_etag_fd() permettent
un contrôle total de la génération des ETag.ap_method_mask_tap_method_mask_t a été ajouté et est maintenant
utilisé pour le champ method_mask dans ap_method_list_t, AP_METHOD_BIT, le
champ allowed de request_rec, le champ limited de cmd_parms.mod_ssl.h de l’API de mod_sslssl_var_lookup prend
maintenant un argument const char *name et renvoie
une chaîne const char *. L’argument pool doit maintenant être
non NULL.Content-MD5, les
fonctions ap_md5digest() et ap_md5contextTo64()
ont été supprimées.La documentation du développeur contient une liste détaillée des changements de l’API.