new_features_2_4.html.en revision 53cf0034f617fdca55a345580e13afd88000e9cc
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
fd9abdda70912b99b24e3bf1a38f26fde908a74cnd<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head><!--
fd9abdda70912b99b24e3bf1a38f26fde908a74cnd XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
fd9abdda70912b99b24e3bf1a38f26fde908a74cnd This file is generated from xml source: DO NOT EDIT
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd<title>Overview of new features in Apache HTTP Server 2.4 - Apache HTTP Server</title>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd<link href="/style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
96ad5d81ee4a2cc66a4ae19893efc8aa6d06fae7jailletc<link href="/style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd<link href="/style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd<link href="/images/favicon.ico" rel="shortcut icon" /></head>
2e545ce2450a9953665f701bb05350f0d3f26275nd<p class="menu"><a href="/mod/">Modules</a> | <a href="/mod/directives.html">Directives</a> | <a href="/faq/">FAQ</a> | <a href="/glossary.html">Glossary</a> | <a href="/sitemap.html">Sitemap</a></p>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd<div class="up"><a href="./"><img title="<-" alt="<-" src="/images/left.gif" /></a></div>
af33a4994ae2ff15bc67d19ff1a7feb906745bf8rbowen<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="./">Version 2.3</a></div><div id="page-content"><div id="preamble"><h1>Overview of new features in Apache HTTP Server 2.4</h1>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd<p><span>Available Languages: </span><a href="/en/new_features_2_4.html" title="English"> en </a> |
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd<a href="/fr/new_features_2_4.html" hreflang="fr" rel="alternate" title="Fran�ais"> fr </a></p>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <p>This document describes some of the major changes between the
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd 2.2 and 2.4 versions of the Apache HTTP Server. For new features since
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd version 2.0, see the <a href="new_features_2_2.html">2.2 new features</a>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd document.</p>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd<div id="quickview"><ul id="toc"><li><img alt="" src="/images/down.gif" /> <a href="#core">Core Enhancements</a></li>
63f06dce77bb2d9b1c5aa5deeb47a1069987fd1end<li><img alt="" src="/images/down.gif" /> <a href="#newmods">New Modules</a></li>
d474d8ef01ec5c2a09341cd148851ed383c3287crbowen<li><img alt="" src="/images/down.gif" /> <a href="#module">Module Enhancements</a></li>
d474d8ef01ec5c2a09341cd148851ed383c3287crbowen<li><img alt="" src="/images/down.gif" /> <a href="#programs">Program Enhancements</a></li>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd<li><img alt="" src="/images/down.gif" /> <a href="#developer">Module Developer Changes</a></li>
4b575a6b6704b516f22d65a3ad35696d7b9ba372rpluem<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
4b575a6b6704b516f22d65a3ad35696d7b9ba372rpluem<h2><a name="core" id="core">Core Enhancements</a></h2>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dd>It is now possible to specify <code class="directive"><a href="/mod/core.html#keepalivetimeout">KeepAliveTimeout</a></code> in milliseconds.
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dd>Multiple MPMs can now be built as loadable modules at compile time.
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd The MPM of choice can be configured at run time.</dd>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dt>Per-module and per-directory LogLevel configuration</dt>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dd>The <code class="directive"><a href="/mod/core.html#loglevel">LogLevel</a></code> can now be
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd configured per module and per directory. New levels <code>trace1</code>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd to <code>trace8</code> have been added above the <code>debug</code> log
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd level.</dd>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dt><code class="module"><a href="/mod/mod_allowmethods.html">mod_allowmethods</a></code></dt>
d972e4a0688f66b1402473dd9dacfecefa2132a8rbowen <dd>New module to restrict certain HTTP methods without interfering with
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd authentication or authorization.</dd>
80eed96ee3d8cfa0b66d9fb1cfe63fd83254d38bnilgun <dt><code class="module"><a href="/mod/mod_buffer.html">mod_buffer</a></code></dt>
80eed96ee3d8cfa0b66d9fb1cfe63fd83254d38bnilgun <dd>Provides for buffering the input and output filter stacks</dd>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dt><code class="module"><a href="/mod/mod_lua.html">mod_lua</a></code></dt>
316f02e3836836c82e19019ff23f90a7ebc65289nilgun <dd>Embeds the <a href="http://www.lua.org/">Lua</a> language into httpd,
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd for configuration and small business logic functions.</dd>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dt><code class="module"><a href="/mod/mod_proxy_fcgi.html">mod_proxy_fcgi</a></code></dt>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dd>FastCGI Protocol backend for <code class="module"><a href="/mod/mod_proxy.html">mod_proxy</a></code></dd>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dt><code class="module"><a href="/mod/mod_proxy_scgi.html">mod_proxy_scgi</a></code></dt>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dd>SCGI Protocol backend for <code class="module"><a href="/mod/mod_proxy.html">mod_proxy</a></code></dd>
22d5d84393d960a2027f472036f3fee15d7dbce9nd <dt><code class="module"><a href="/mod/mod_ratelimit.html">mod_ratelimit</a></code></dt>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dt><code class="module"><a href="/mod/mod_reflector.html">mod_reflector</a></code></dt>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dd>Provides Reflection of a request body as a response via the output filter stack.</dd>
50c04f297d76a57ead2fa6b73845f7563b1fc788sf <dt><code class="module"><a href="/mod/mod_remoteip.html">mod_remoteip</a></code></dt>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dd>Replaces the apparent client remote IP address and hostname for the request
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd with the IP address list presented by a proxies or a load balancer via
864d6d55a72bdb982ebabbc95cf8f051c43fa6ddrbowen the request headers.</dd>
635e08c1d8332adc365b1c20bbe3577d59ebcd78kess <dt><code class="module"><a href="/mod/mod_reqtimeout.html">mod_reqtimeout</a></code></dt>
623eebe956d9c2d6d073ed3eae855b56030b40e9noodl <dd>Set timeout and minimum data rate for receiving requests</dd>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dt><code class="module"><a href="/mod/mod_request.html">mod_request</a></code></dt>
ffb88a4885747797937e30a5ac8b1606da3cb4adnd <dd>Provides Filters to handle and make available HTTP request bodies</dd>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dt><code class="module"><a href="/mod/mod_slotmem_shm.html">mod_slotmem_shm</a></code></dt>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dd>Provides a Slot-based shared memory provider (ala the scoreboard).</dd>
65a611af7093423efb91e5794b8887a527d4cf63trawick </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
42af92a661a06b3cebc88d585aad75064a309d51nd<h2><a name="module" id="module">Module Enhancements</a></h2>
6fe26506780e73be2a412d758af77fafdf03291and <dt><code class="module"><a href="/mod/mod_ssl.html">mod_ssl</a></code></dt>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dd><code class="module"><a href="/mod/mod_ssl.html">mod_ssl</a></code> can now be configured to use an
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd OCSP server to check the validation status of a client
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd certificate. The default responder is configurable, along with
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd the decision on whether to prefer the responder designated in
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd the client certificate itself.</dd>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dd><code class="module"><a href="/mod/mod_ssl.html">mod_ssl</a></code> now also supports OCSP stapling, where the
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd server pro-actively obtains an OCSP verification of its certificate and
08cf4a15275e4cb65a424b3a1db5410bfb51085cjim transmits that to the client during the handshake. </dd>
78f97ce162b66a0dbfd7af4dcd9984f162569b04minfrin <dd><code class="module"><a href="/mod/mod_ssl.html">mod_ssl</a></code> can now be configured to share SSL Session
f5a398cc8880978754903f9ece8e4beb63a81cedrbowen data between servers through memcached</dd>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dt><code class="module"><a href="/mod/mod_proxy.html">mod_proxy</a></code></dt>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dd>The <code class="directive"><a href="/mod/mod_proxy.html#proxypass">ProxyPass</a></code> directive
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd is now most optimally configured within a
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <code class="directive"><a href="/mod/core.html#location">Location</a></code> or
7906201913b68fe78b9d6a22ab33bf21d82c490eminfrin <code class="directive"><a href="/mod/core.html#locationmatch">LocationMatch</a></code>
7906201913b68fe78b9d6a22ab33bf21d82c490eminfrin block, and offers a significant performance advantage over the traditional
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd two-parameter syntax when present in large numbers.</dd>
864d6d55a72bdb982ebabbc95cf8f051c43fa6ddrbowen <dt><code class="module"><a href="/mod/mod_proxy_balancer.html">mod_proxy_balancer</a></code></dt>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dd>More runtime configuration changes for BalancerMembers via balancer-manager</dd>
4ed26c413f67a5aae20b95909828f30bb5dc2286poirier <dd>Additional BalancerMembers can be added at runtime via balancer-manager</dd>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dd>Runtime configuration of a subset of Balancer parameters</dd>
9a58dc6a2b26ec128b1270cf48810e705f1a90dbsf <dt><code class="module"><a href="/mod/mod_cache.html">mod_cache</a></code></dt>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dd><code class="module"><a href="/mod/mod_cache.html">mod_cache</a></code> can now cache HEAD requests.</dd>
2eb7a8afc318286c210a1fbb2ff2ba904471956frjung <dd>Where possible, <code class="module"><a href="/mod/mod_cache.html">mod_cache</a></code> directives can now be set
d8b761beec42bbe2847bb14e3b706642c6eed47cnd per directory, instead of per server.</dd>
d8b761beec42bbe2847bb14e3b706642c6eed47cnd <dd>The base URL of cached URLs can be customised, so that a cluster of
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd caches can share the same endpoint URL prefix.</dd>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dd><code class="module"><a href="/mod/mod_cache.html">mod_cache</a></code> is now capable of serving stale cached
03a4ff9ac4c9b8009249010e7c53bb86ff05915and data when a backend is unavailable (error 5xx).</dd>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dd><code class="module"><a href="/mod/mod_cache.html">mod_cache</a></code> can now insert HIT/MISS/REVALIDATE into
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd an X-Cache header.</dd>
864d6d55a72bdb982ebabbc95cf8f051c43fa6ddrbowen <dt><code class="module"><a href="/mod/mod_include.html">mod_include</a></code></dt>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dd>Support for the 'onerror' attribute within an 'include' element,
6329991d5f023c1c4ae02cfbbda636c66e6392aand allowing an error document to be served on error instead of the default
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd error string.</dd>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dt><code class="module"><a href="/mod/mod_cgi.html">mod_cgi</a></code>, <code class="module"><a href="/mod/mod_include.html">mod_include</a></code>,
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <code class="module"><a href="/mod/mod_isapi.html">mod_isapi</a></code>, ...</dt>
6c4ef4a72d9897e53365b94103f4bd819fd0d3acnd <dd>Translation of headers to environment variables is more strict than
2704de98885368683621b01c8f8f4e4b01557611takashi before to mitigate some possible cross-site-scripting attacks via header
2704de98885368683621b01c8f8f4e4b01557611takashi injection. Headers containing invalid characters (including underscores)
2704de98885368683621b01c8f8f4e4b01557611takashi are now silently dropped. <a href="env.html">Environment Variables
b43f840409794ed298e8634f6284741f193b6c4ftakashi in Apache</a> has some pointers on how to work around broken legacy
2704de98885368683621b01c8f8f4e4b01557611takashi clients which require such headers. (This affects all modules which
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd use these environment variables.)</dd>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
4ed26c413f67a5aae20b95909828f30bb5dc2286poirier<h2><a name="programs" id="programs">Program Enhancements</a></h2>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dd>Current cached URLs can now be listed, with optional metadata
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd included.</dd>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dd>Allow explicit deletion of individual cached URLs from the
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd cache.</dd>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dd>File sizes can now be rounded up to the given block size, making
5effc8b39fae5cd169d17f342bfc265705840014rbowen the size limits map more closely to the real size on disk.</dd>
5effc8b39fae5cd169d17f342bfc265705840014rbowen <dd>Cache size can now be limited by the number of inodes, instead
27d778df0b517e1578f907d2e51eb961cd8ee5fbjim of or in addition to being limited by the size of the files on
a610901168de82df5fc5d99b8759fd80e0f70aeasf disk.</dd>
a43bfa789f4e52dde53ae8e53fa0427b5c1cf977nd </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd<h2><a name="developer" id="developer">Module Developer Changes</a></h2>
e5ce3ac0e9b720c0fa23782e29168a0810697fdetakashi <dd>A new hook, <code>check_config</code>, has been added which runs
604c89126c27104f659d7a51b0113e3bd435faf8fielding between the <code>pre_config</code> and <code>open_logs</code>
50cb7e2b30597f481fee57bac945190f06ebcc58jorton hooks. It also runs before the <code>test_config</code> hook
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <code class="program"><a href="/programs/httpd.html">httpd</a></code>. The <code>check_config</code> hook
4126704c4950bfd46d32ad54e3b106ac6d868a73sf allows modules to review interdependent configuration directive
4126704c4950bfd46d32ad54e3b106ac6d868a73sf values and adjust them while messages can still be logged to the
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd console. The user can thus be alerted to misconfiguration problems
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd before the core <code>open_logs</code> hook function redirects
0a69d9bb491d9810892a9949c01403a1de3c7ac2nd console output to the error log.</dd>
4ed26c413f67a5aae20b95909828f30bb5dc2286poirier <dd>We now have a general-purpose expression parser, whose API is
5effc8b39fae5cd169d17f342bfc265705840014rbowen exposed in <var>ap_expr.h</var>. This is adapted from the
5effc8b39fae5cd169d17f342bfc265705840014rbowen expression parser previously implemented in
9652bc3a93433d52f80579062986ead2afe0d11fsf <code class="module"><a href="/mod/mod_include.html">mod_include</a></code>.</dd>
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe <dd>Advanced authorization logic may now be specified using the
ecc5150d35c0dc5ee5119c2717e6660fa331abbftakashi <code class="directive"><a href="/mod/mod_authz_core.html#require">Require</a></code> directive
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd and the related container directives, such as
50cb7e2b30597f481fee57bac945190f06ebcc58jorton <code class="directive"><a href="/mod/mod_authz_core.html#requireall"><RequireAll></a></code>, all
79b024b81f6bb3c44dce77a7552191daf8b522d2jim provided by the <code class="module"><a href="/mod/mod_authz_core.html">mod_authz_core</a></code> module.</dd>
f772e8f448c223e5ea306f1bf92d97d968f972d5jim <dd>The <var>ap_socache.h</var> header exposes a provider-based
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd interface for caching small data objects, based on the previous
1de1266f0ea387d6373be8415745dfd2ab876341jim implementation of the <code class="module"><a href="/mod/mod_ssl.html">mod_ssl</a></code> session cache.
1de1266f0ea387d6373be8415745dfd2ab876341jim Providers using a shared-memory cyclic buffer, disk-based dbm
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd files, and a memcache distributed cache are currently
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd supported.</dd>
5effc8b39fae5cd169d17f342bfc265705840014rbowen <dd>The <code class="module"><a href="/mod/mod_cache.html">mod_cache</a></code> module now includes a new
b41a0dbe6310c576e96b7ea6910051fd84fb06f5sf <code>cache_status</code> hook, which is called when the caching
b41a0dbe6310c576e96b7ea6910051fd84fb06f5sf decision becomes known. A default implementation is provided
0237f43ab925775250e266e479d0a337ff374a4btakashi <p>The developer documentation contains a
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <a href="developer/new_api_2_4.html">detailed list of API changes</a>.</p>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd<p><span>Available Languages: </span><a href="/en/new_features_2_4.html" title="English"> en </a> |
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd<a href="/fr/new_features_2_4.html" hreflang="fr" rel="alternate" title="Fran�ais"> fr </a></p>
a8855705fee1545ac35b482d58d03b2e4064b3aend<p class="apache">Copyright 2011 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd<p class="menu"><a href="/mod/">Modules</a> | <a href="/mod/directives.html">Directives</a> | <a href="/faq/">FAQ</a> | <a href="/glossary.html">Glossary</a> | <a href="/sitemap.html">Sitemap</a></p></div>