| <?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="en" xml:lang="en"><head><!-- |
| XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX |
| This file is generated from xml source: DO NOT EDIT |
| XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX |
| --> |
| <title>Overview of new features in Apache HTTP Server 2.4 - Apache HTTP Server</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 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/directives.html">Directives</a> | <a href="./faq/">FAQ</a> | <a href="./glossary.html">Glossary</a> | <a href="./sitemap.html">Sitemap</a></p> |
| <p class="apache">Apache HTTP Server Version 2.3</p> |
| <img alt="" src="./images/feather.gif" /></div> |
| <div class="up"><a href="./"><img title="<-" alt="<-" src="./images/left.gif" /></a></div> |
| <div id="path"> |
| <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> |
| <div class="toplang"> |
| <p><span>Available Languages: </span><a href="./en/new_features_2_4.html" title="English"> en </a> | |
| <a href="./fr/new_features_2_4.html" hreflang="fr" rel="alternate" title="Français"> fr </a></p> |
| </div> |
| |
| <p>This document describes some of the major changes between the |
| 2.2 and 2.4 versions of the Apache HTTP Server. For new features since |
| version 2.0, see the <a href="new_features_2_2.html">2.2 new features</a> |
| document.</p> |
| </div> |
| <div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#core">Core Enhancements</a></li> |
| <li><img alt="" src="./images/down.gif" /> <a href="#newmods">New Modules</a></li> |
| <li><img alt="" src="./images/down.gif" /> <a href="#module">Module Enhancements</a></li> |
| <li><img alt="" src="./images/down.gif" /> <a href="#programs">Program Enhancements</a></li> |
| <li><img alt="" src="./images/down.gif" /> <a href="#developer">Module Developer Changes</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="core" id="core">Core Enhancements</a></h2> |
| |
| <dl> |
| <dt>KeepAliveTimeout in milliseconds</dt> |
| |
| <dd>It is now possible to specify <code class="directive"><a href="./mod/core.html#keepalivetimeout">KeepAliveTimeout</a></code> in milliseconds. |
| </dd> |
| |
| <dt>Loadable MPMs</dt> |
| <dd>Multiple MPMs can now be built as loadable modules at compile time. |
| The MPM of choice can be configured at run time.</dd> |
| |
| <dt>Per-module and per-directory LogLevel configuration</dt> |
| <dd>The <code class="directive"><a href="./mod/core.html#loglevel">LogLevel</a></code> can now be |
| configured per module and per directory. New levels <code>trace1</code> |
| to <code>trace8</code> have been added above the <code>debug</code> log |
| level.</dd> |
| |
| <dt>Event MPM</dt> |
| <dd>The Event MPM is no longer experimental but is rather fully supported.</dd> |
| |
| <dt>Asynchronous support</dt> |
| <dd>Better support for asynchronous read/write for supporting MPMs and |
| platforms.</dd> |
| |
| <dt>Per-request configuration sections</dt> |
| <dd><<code class="directive"><a href="./mod/core.html#if">If</a></code>> sections can be used to |
| set the configuration based on per-request criteria</dd> |
| |
| </dl> |
| </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div> |
| <div class="section"> |
| <h2><a name="newmods" id="newmods">New Modules</a></h2> |
| |
| <dl> |
| <dt><code class="module"><a href="./mod/mod_allowmethods.html">mod_allowmethods</a></code></dt> |
| <dd>New module to restrict certain HTTP methods without interfering with |
| authentication or authorization.</dd> |
| |
| <dt><code class="module"><a href="./mod/mod_buffer.html">mod_buffer</a></code></dt> |
| <dd>Provides for buffering the input and output filter stacks</dd> |
| |
| <dt><code class="module"><a href="./mod/mod_data.html">mod_data</a></code></dt> |
| <dd>Convert response body into an RFC2397 data URL</dd> |
| |
| <dt><code class="module"><a href="./mod/mod_lua.html">mod_lua</a></code></dt> |
| <dd>Embeds the <a href="http://www.lua.org/">Lua</a> language into httpd, |
| for configuration and small business logic functions.</dd> |
| |
| <dt><code class="module"><a href="./mod/mod_proxy_fcgi.html">mod_proxy_fcgi</a></code></dt> |
| <dd>FastCGI Protocol backend for <code class="module"><a href="./mod/mod_proxy.html">mod_proxy</a></code></dd> |
| |
| <dt><code class="module"><a href="./mod/mod_proxy_scgi.html">mod_proxy_scgi</a></code></dt> |
| <dd>SCGI Protocol backend for <code class="module"><a href="./mod/mod_proxy.html">mod_proxy</a></code></dd> |
| |
| <dt><code class="module"><a href="./mod/mod_ratelimit.html">mod_ratelimit</a></code></dt> |
| <dd>Provides Bandwidth Rate Limiting for Clients</dd> |
| |
| <dt><code class="module"><a href="./mod/mod_reflector.html">mod_reflector</a></code></dt> |
| <dd>Provides Reflection of a request body as a response via the output filter stack.</dd> |
| |
| <dt><code class="module"><a href="./mod/mod_remoteip.html">mod_remoteip</a></code></dt> |
| <dd>Replaces the apparent client remote IP address and hostname for the request |
| with the IP address list presented by a proxies or a load balancer via |
| the request headers.</dd> |
| |
| <dt><code class="module"><a href="./mod/mod_reqtimeout.html">mod_reqtimeout</a></code></dt> |
| <dd>Set timeout and minimum data rate for receiving requests</dd> |
| |
| <dt><code class="module"><a href="./mod/mod_request.html">mod_request</a></code></dt> |
| <dd>Provides Filters to handle and make available HTTP request bodies</dd> |
| |
| <dt><code class="module"><a href="./mod/mod_slotmem_shm.html">mod_slotmem_shm</a></code></dt> |
| <dd>Provides a Slot-based shared memory provider (ala the scoreboard).</dd> |
| |
| <dt><code class="module"><a href="./mod/mod_log_debug.html">mod_log_debug</a></code></dt> |
| <dd>Allows to add customizable debug logging at different phases of the |
| request processing.</dd> |
| |
| </dl> |
| </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div> |
| <div class="section"> |
| <h2><a name="module" id="module">Module Enhancements</a></h2> |
| |
| <dl> |
| <dt><code class="module"><a href="./mod/mod_ssl.html">mod_ssl</a></code></dt> |
| |
| <dd><code class="module"><a href="./mod/mod_ssl.html">mod_ssl</a></code> can now be configured to use an |
| OCSP server to check the validation status of a client |
| certificate. The default responder is configurable, along with |
| the decision on whether to prefer the responder designated in |
| the client certificate itself.</dd> |
| |
| <dd><code class="module"><a href="./mod/mod_ssl.html">mod_ssl</a></code> now also supports OCSP stapling, where the |
| server pro-actively obtains an OCSP verification of its certificate and |
| transmits that to the client during the handshake. </dd> |
| |
| <dd><code class="module"><a href="./mod/mod_ssl.html">mod_ssl</a></code> can now be configured to share SSL Session |
| data between servers through memcached</dd> |
| |
| <dt><code class="module"><a href="./mod/mod_proxy.html">mod_proxy</a></code></dt> |
| |
| <dd>The <code class="directive"><a href="./mod/mod_proxy.html#proxypass">ProxyPass</a></code> directive |
| is now most optimally configured within a |
| <code class="directive"><a href="./mod/core.html#location">Location</a></code> or |
| <code class="directive"><a href="./mod/core.html#locationmatch">LocationMatch</a></code> |
| block, and offers a significant performance advantage over the traditional |
| two-parameter syntax when present in large numbers.</dd> |
| |
| <dt><code class="module"><a href="./mod/mod_proxy_balancer.html">mod_proxy_balancer</a></code></dt> |
| |
| <dd>More runtime configuration changes for BalancerMembers via balancer-manager</dd> |
| |
| <dd>Additional BalancerMembers can be added at runtime via balancer-manager</dd> |
| |
| <dd>Runtime configuration of a subset of Balancer parameters</dd> |
| |
| <dt><code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code></dt> |
| |
| <dd><code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> can now cache HEAD requests.</dd> |
| |
| <dd>Where possible, <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> directives can now be set |
| per directory, instead of per server.</dd> |
| |
| <dd>The base URL of cached URLs can be customised, so that a cluster of |
| caches can share the same endpoint URL prefix.</dd> |
| |
| <dd><code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> is now capable of serving stale cached |
| data when a backend is unavailable (error 5xx).</dd> |
| |
| <dd><code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> can now insert HIT/MISS/REVALIDATE into |
| an X-Cache header.</dd> |
| |
| <dt><code class="module"><a href="./mod/mod_include.html">mod_include</a></code></dt> |
| <dd>Support for the 'onerror' attribute within an 'include' element, |
| allowing an error document to be served on error instead of the default |
| error string.</dd> |
| |
| <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>, |
| <code class="module"><a href="./mod/mod_isapi.html">mod_isapi</a></code>, ...</dt> |
| <dd>Translation of headers to environment variables is more strict than |
| before to mitigate some possible cross-site-scripting attacks via header |
| injection. Headers containing invalid characters (including underscores) |
| are now silently dropped. <a href="env.html">Environment Variables |
| in Apache</a> has some pointers on how to work around broken legacy |
| clients which require such headers. (This affects all modules which |
| use these environment variables.)</dd> |
| |
| <dt><code class="module"><a href="./mod/mod_authz_core.html">mod_authz_core</a></code> Authorization Logic Containers</dt> |
| |
| <dd>Advanced authorization logic may now be specified using the |
| <code class="directive"><a href="./mod/mod_authz_core.html#require">Require</a></code> directive |
| and the related container directives, such as |
| <code class="directive"><a href="./mod/mod_authz_core.html#requireall"><RequireAll></a></code>.</dd> |
| |
| <dt><code class="module"><a href="./mod/mod_info.html">mod_info</a></code></dt> |
| <dd><code class="module"><a href="./mod/mod_info.html">mod_info</a></code> can now dump the pre-parsed configuration |
| to stdout during server startup.</dd> |
| |
| <dt><code class="module"><a href="./mod/mod_rewrite.html">mod_rewrite</a></code></dt> |
| <dd><code class="module"><a href="./mod/mod_rewrite.html">mod_rewrite</a></code> adds the <code>[QSD]</code> |
| (Query String Discard) and <code>[END]</code> flags for |
| <code class="directive"><a href="./mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> to |
| simplify common rewriting scenarios.</dd> |
| </dl> |
| </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div> |
| <div class="section"> |
| <h2><a name="programs" id="programs">Program Enhancements</a></h2> |
| |
| <dl> |
| <dt>fcgistarter</dt> |
| <dd>FastCGI deamon starter utility</dd> |
| <dt>htcacheclean</dt> |
| <dd>Current cached URLs can now be listed, with optional metadata |
| included.</dd> |
| <dd>Allow explicit deletion of individual cached URLs from the |
| cache.</dd> |
| <dd>File sizes can now be rounded up to the given block size, making |
| the size limits map more closely to the real size on disk.</dd> |
| <dd>Cache size can now be limited by the number of inodes, instead |
| of or in addition to being limited by the size of the files on |
| disk.</dd> |
| </dl> |
| </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div> |
| <div class="section"> |
| <h2><a name="developer" id="developer">Module Developer Changes</a></h2> |
| |
| <dl> |
| <dt>Check Configuration Hook Added</dt> |
| |
| <dd>A new hook, <code>check_config</code>, has been added which runs |
| between the <code>pre_config</code> and <code>open_logs</code> |
| hooks. It also runs before the <code>test_config</code> hook |
| when the <code>-t</code> option is passed to |
| <code class="program"><a href="./programs/httpd.html">httpd</a></code>. The <code>check_config</code> hook |
| allows modules to review interdependent configuration directive |
| values and adjust them while messages can still be logged to the |
| console. The user can thus be alerted to misconfiguration problems |
| before the core <code>open_logs</code> hook function redirects |
| console output to the error log.</dd> |
| |
| <dt>Expression Parser Added</dt> |
| |
| <dd>We now have a general-purpose expression parser, whose API is |
| exposed in <var>ap_expr.h</var>. This is adapted from the |
| expression parser previously implemented in |
| <code class="module"><a href="./mod/mod_include.html">mod_include</a></code>.</dd> |
| |
| <dt>Authorization Logic Containers</dt> |
| |
| <dd>Authorization modules now register as a provider, via |
| ap_register_auth_provider(), to support advanced authorization logic, |
| such as <code class="directive"><a href="./mod/mod_authz_core.html#requireall"><RequireAll></a></code>.</dd> |
| |
| <dt>Small-Object Caching Interface</dt> |
| |
| <dd>The <var>ap_socache.h</var> header exposes a provider-based |
| interface for caching small data objects, based on the previous |
| implementation of the <code class="module"><a href="./mod/mod_ssl.html">mod_ssl</a></code> session cache. |
| Providers using a shared-memory cyclic buffer, disk-based dbm |
| files, and a memcache distributed cache are currently |
| supported.</dd> |
| |
| <dt>Cache Status Hook Added</dt> |
| |
| <dd>The <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> module now includes a new |
| <code>cache_status</code> hook, which is called when the caching |
| decision becomes known. A default implementation is provided |
| which adds an optional <code>X-Cache</code> and |
| <code>X-Cache-Detail</code> header to the response.</dd> |
| </dl> |
| |
| <p>The developer documentation contains a |
| <a href="developer/new_api_2_4.html">detailed list of API changes</a>.</p> |
| </div></div> |
| <div class="bottomlang"> |
| <p><span>Available Languages: </span><a href="./en/new_features_2_4.html" title="English"> en </a> | |
| <a href="./fr/new_features_2_4.html" hreflang="fr" rel="alternate" title="Français"> fr </a></p> |
| </div><div id="footer"> |
| <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> |
| <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> |
| </body></html> |