1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head><!--
4 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
5 This file is generated from xml source: DO NOT EDIT
6 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
8 <title>Overview of new features in Apache HTTP Server 2.2 - Apache HTTP Server</title>
9 <link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
10 <link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
11 <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" />
12 <script src="./style/scripts/prettify.js" type="text/javascript">
15 <link href="./images/favicon.ico" rel="shortcut icon" /></head>
16 <body id="manual-page"><div id="page-header">
17 <p class="menu"><a href="./mod/">Modules</a> | <a href="./mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="./glossary.html">Glossary</a> | <a href="./sitemap.html">Sitemap</a></p>
18 <p class="apache">Apache HTTP Server Version 2.5</p>
19 <img alt="" src="./images/feather.gif" /></div>
20 <div class="up"><a href="./"><img title="<-" alt="<-" src="./images/left.gif" /></a></div>
22 <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.5</a></div><div id="page-content"><div id="preamble"><h1>Overview of new features in Apache HTTP Server 2.2</h1>
24 <p><span>Available Languages: </span><a href="./en/new_features_2_2.html" title="English"> en </a> |
25 <a href="./fr/new_features_2_2.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
26 <a href="./ko/new_features_2_2.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
27 <a href="./pt-br/new_features_2_2.html" hreflang="pt-br" rel="alternate" title="Português (Brasil)"> pt-br </a> |
28 <a href="./tr/new_features_2_2.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
31 <p>This document describes some of the major changes between the
32 2.0 and 2.2 versions of the Apache HTTP Server. For new features since
33 version 1.3, see the <a href="new_features_2_0.html">2.0 new features</a>
36 <div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#core">Core Enhancements</a></li>
37 <li><img alt="" src="./images/down.gif" /> <a href="#module">Module Enhancements</a></li>
38 <li><img alt="" src="./images/down.gif" /> <a href="#programs">Program Enhancements</a></li>
39 <li><img alt="" src="./images/down.gif" /> <a href="#developer">Module Developer Changes</a></li>
40 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
41 <div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
43 <h2><a name="core" id="core">Core Enhancements</a></h2>
48 <dd>The bundled authentication and authorization modules have
49 been refactored. The new mod_authn_alias(already removed from 2.3/2.4)
50 module can greatly simplify certain authentication configurations.
51 See <a href="#module">module name changes</a>, and
52 <a href="#developer">the developer changes</a> for more
53 information about how these changes affects users and module
57 <dd><code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code>, <code class="module"><a href="./mod/mod_cache_disk.html">mod_cache_disk</a></code>, and
58 mod_mem_cache(already removed from 2.3/2.4) have undergone a lot of changes, and
59 are now considered production-quality. <code class="program"><a href="./programs/htcacheclean.html">htcacheclean</a></code>
60 has been introduced to clean up <code class="module"><a href="./mod/mod_cache_disk.html">mod_cache_disk</a></code>
63 <dt>Configuration</dt>
64 <dd>The default configuration layout has been simplified and
65 modularised. Configuration snippets which can be used to
66 enable commonly-used features are now bundled with Apache, and
67 can be easily added to the main server config.</dd>
69 <dt>Graceful stop</dt>
70 <dd>The <code class="module"><a href="./mod/prefork.html">prefork</a></code>, <code class="module"><a href="./mod/worker.html">worker</a></code> and
71 <code class="module"><a href="./mod/event.html">event</a></code> MPMs now allow <code class="program"><a href="./programs/httpd.html">httpd</a></code>
72 to be shutdown gracefully via the
73 <a href="stopping.html#gracefulstop"><code>graceful-stop</code></a>
74 signal. The <code class="directive"><a href="./mod/mpm_common.html#gracefulshutdowntimeout">GracefulShutdownTimeout</a></code> directive
75 has been added to specify an optional timeout, after which
76 <code class="program"><a href="./programs/httpd.html">httpd</a></code> will terminate regardless of the status
77 of any requests being served.</dd>
80 <dd>The new <code class="module"><a href="./mod/mod_proxy_balancer.html">mod_proxy_balancer</a></code> module provides
81 load balancing services for <code class="module"><a href="./mod/mod_proxy.html">mod_proxy</a></code>.
82 The new <code class="module"><a href="./mod/mod_proxy_ajp.html">mod_proxy_ajp</a></code> module adds support for the
83 <code>Apache JServ Protocol version 1.3</code> used by
84 <a href="http://tomcat.apache.org/">Apache Tomcat</a>.</dd>
86 <dt>Regular Expression Library Updated</dt>
87 <dd>Version 5.0 of the
88 <a href="http://www.pcre.org/">Perl Compatible Regular Expression
89 Library</a> (PCRE) is now included. <code class="program"><a href="./programs/httpd.html">httpd</a></code> can be
90 configured to use a system installation of PCRE by passing the
91 <code>--with-pcre</code> flag to configure.</dd>
93 <dt>Smart Filtering</dt>
94 <dd><code class="module"><a href="./mod/mod_filter.html">mod_filter</a></code> introduces dynamic configuration
95 to the output filter chain. It enables filters to be conditionally
96 inserted, based on any Request or Response header or environment
97 variable, and dispenses with the more problematic dependencies and
98 ordering problems in the 2.0 architecture.</dd>
100 <dt>Large File Support</dt>
101 <dd><code class="program"><a href="./programs/httpd.html">httpd</a></code> is now built with support for files larger
102 than 2GB on modern 32-bit Unix systems. Support for handling
103 >2GB request bodies has also been added.</dd>
106 <dd>The <code class="module"><a href="./mod/event.html">event</a></code> MPM uses a separate thread to handle
107 Keep Alive requests and accepting connections. Keep Alive requests
108 have traditionally required httpd to dedicate a worker to handle it.
109 This dedicated worker could not be used again until the Keep Alive
110 timeout was reached.</dd>
112 <dt>SQL Database Support</dt>
113 <dd><code class="module"><a href="./mod/mod_dbd.html">mod_dbd</a></code>, together with the <code>apr_dbd</code>
114 framework, brings direct SQL support to modules that need it.
115 Supports connection pooling in threaded MPMs.</dd>
118 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
119 <div class="section">
120 <h2><a name="module" id="module">Module Enhancements</a></h2>
124 <dd>Modules in the aaa directory have been renamed and offer
125 better support for digest authentication. For example,
126 <code>mod_auth</code> is now split into
127 <code class="module"><a href="./mod/mod_auth_basic.html">mod_auth_basic</a></code> and
128 <code class="module"><a href="./mod/mod_authn_file.html">mod_authn_file</a></code>; <code>mod_auth_dbm</code> is now
129 called <code class="module"><a href="./mod/mod_authn_dbm.html">mod_authn_dbm</a></code>; <code>mod_access</code> has
130 been renamed <code class="module"><a href="./mod/mod_authz_host.html">mod_authz_host</a></code>. There is also a new
131 mod_authn_alias(already removed from 2.3/2.4) module for simplifying
132 certain authentication configurations.
135 <dt><code class="module"><a href="./mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code></dt>
136 <dd>This module is a port of the 2.0
137 <code>mod_auth_ldap</code> module to the 2.2 <code>Authn/Authz</code>
138 framework. New features include using LDAP attribute values and
139 complicated search filters in the
140 <code class="directive"><a href="./mod/mod_authz_core.html#require">Require</a></code> directive.</dd>
142 <dt><code class="module"><a href="./mod/mod_authz_owner.html">mod_authz_owner</a></code></dt>
143 <dd>A new module that authorizes access to files based
144 on the owner of the file on the file system</dd>
146 <dt><code class="module"><a href="./mod/mod_version.html">mod_version</a></code></dt>
147 <dd>A new module that allows configuration blocks to be enabled based on the
148 version number of the running server.</dd>
150 <dt><code class="module"><a href="./mod/mod_info.html">mod_info</a></code></dt>
151 <dd>Added a new <code>?config</code> argument which will show
152 the configuration directives as parsed by Apache, including
153 their file name and line number. The module also
154 shows the order of all request hooks and additional
155 build information, similar to <code>httpd -V</code>.</dd>
157 <dt><code class="module"><a href="./mod/mod_ssl.html">mod_ssl</a></code></dt>
159 <dd>Added a support for
160 <a href="http://www.ietf.org/rfc/rfc2817.txt">RFC 2817</a>, which
161 allows connections to upgrade from clear text to TLS encryption.</dd>
163 <dt><code class="module"><a href="./mod/mod_imagemap.html">mod_imagemap</a></code></dt>
164 <dd><code>mod_imap</code> has been renamed to
165 <code class="module"><a href="./mod/mod_imagemap.html">mod_imagemap</a></code> to avoid user confusion.</dd>
168 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
169 <div class="section">
170 <h2><a name="programs" id="programs">Program Enhancements</a></h2>
173 <dt><code class="program"><a href="./programs/httpd.html">httpd</a></code></dt>
174 <dd>A new command line option <code>-M</code> has been added that
175 lists all modules that are loaded based on the current
176 configuration. Unlike the <code>-l</code> option, this list
177 includes DSOs loaded via <code class="module"><a href="./mod/mod_so.html">mod_so</a></code>.</dd>
179 <dt><code class="program"><a href="./programs/httxt2dbm.html">httxt2dbm</a></code></dt>
180 <dd>A new program used to generate dbm files from text input,
181 for use in <code class="directive"><a href="./mod/mod_rewrite.html#rewritemap">RewriteMap</a></code>
182 with the <code>dbm</code> map type.</dd>
184 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
185 <div class="section">
186 <h2><a name="developer" id="developer">Module Developer Changes</a></h2>
189 <dt><a class="glossarylink" href="./glossary.html#apr" title="see glossary">APR</a> 1.0 API</dt>
191 <dd>Apache 2.2 uses the APR 1.0 API. All deprecated functions and
192 symbols have been removed from <code>APR</code> and
193 <code>APR-Util</code>. For details, see the
194 <a href="http://apr.apache.org/">APR Website</a>.</dd>
197 <dd>The bundled authentication and authorization modules have
198 been renamed along the following lines:
200 <li><code>mod_auth_*</code> -> Modules that implement an HTTP
201 authentication mechanism</li>
202 <li><code>mod_authn_*</code> -> Modules that provide a backend
203 authentication provider</li>
204 <li><code>mod_authz_*</code> -> Modules that implement
205 authorization (or access)</li>
206 <li><code>mod_authnz_*</code> -> Module that implements both
207 authentication & authorization</li>
209 There is a new authentication backend provider
210 scheme which greatly eases the construction of new authentication
213 <dt>Connection Error Logging</dt>
215 <dd>A new function, <code>ap_log_cerror</code> has been added to log
216 errors that occur with the client's connection. When logged,
217 the message includes the client IP address.</dd>
219 <dt>Test Configuration Hook Added</dt>
221 <dd>A new hook, <code>test_config</code> has been added to aid
222 modules that want to execute special code only when the user passes
223 <code>-t</code> to <code class="program"><a href="./programs/httpd.html">httpd</a></code>.</dd>
225 <dt>Set Threaded MPM's Stacksize</dt>
227 <dd>A new directive, <code class="directive"><a href="./mod/mpm_common.html#threadstacksize">ThreadStackSize</a></code> has been added to
228 set the stack size on all threaded MPMs. This is required
229 for some third-party modules on platforms with small default
230 thread stack size.</dd>
232 <dt>Protocol handling for output filters</dt>
234 <dd>In the past, every filter has been responsible for ensuring
235 that it generates the correct response headers where it affects
236 them. Filters can now delegate common protocol management to
237 <code class="module"><a href="./mod/mod_filter.html">mod_filter</a></code>, using the
238 <code>ap_register_output_filter_protocol</code> or
239 <code>ap_filter_protocol</code> calls.</dd>
241 <dt>Monitor hook added</dt>
242 <dd>Monitor hook enables modules to run regular/scheduled jobs
243 in the parent (root) process.</dd>
245 <dt>Regular expression API changes</dt>
247 <dd>The <code>pcreposix.h</code> header is no longer available;
248 it is replaced by the new <code>ap_regex.h</code> header. The
249 POSIX.2 <code>regex.h</code> implementation exposed by the old
250 header is now available under the <code>ap_</code> namespace
251 from <code>ap_regex.h</code>. Calls to <code>regcomp</code>,
252 <code>regexec</code> and so on can be replaced by calls to
253 <code>ap_regcomp</code>, <code>ap_regexec</code>.</dd>
255 <dt>DBD Framework (SQL Database API)</dt>
257 <dd><p>With Apache 1.x and 2.0, modules requiring an SQL backend
258 had to take responsibility for managing it themselves. Apart
259 from reinventing the wheel, this can be very inefficient, for
260 example when several modules each maintain their own connections.</p>
262 <p>Apache 2.1 and later provides the <code>ap_dbd</code> API for
263 managing database connections (including optimised strategies
264 for threaded and unthreaded MPMs), while APR 1.2 and later provides
265 the <code>apr_dbd</code> API for interacting with the database.</p>
267 <p>New modules SHOULD now use these APIs for all SQL database
268 operations. Existing applications SHOULD be upgraded to use it
269 where feasible, either transparently or as a recommended option
270 to their users.</p></dd>
273 <div class="bottomlang">
274 <p><span>Available Languages: </span><a href="./en/new_features_2_2.html" title="English"> en </a> |
275 <a href="./fr/new_features_2_2.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
276 <a href="./ko/new_features_2_2.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
277 <a href="./pt-br/new_features_2_2.html" hreflang="pt-br" rel="alternate" title="Português (Brasil)"> pt-br </a> |
278 <a href="./tr/new_features_2_2.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
279 </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">Comments</a></h2><div class="warning"><strong>This section is experimental!</strong><br />Comments placed here should not be expected
280 to last beyond the testing phase of this system, nor do we in any way guarantee that we'll read them.</div>
281 <script type="text/javascript"><!--//--><![CDATA[//><!--
282 var disqus_shortname = 'httpd';
283 var disqus_identifier = 'http://httpd.apache.org/docs/2.4/new_features_2_2.html.en';
286 if (w.location.hostname.toLowerCase() == "httpd.apache.org" && disabled !== true) {
287 d.write('<div id="disqus_thread"><\/div>');
288 var s = d.createElement('script');
289 s.type = 'text/javascript';
291 s.src = 'http' + '://' + disqus_shortname + '.disqus.com/embed.js';
292 (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
295 d.write('<div id="disqus_thread">Comments are disabled for this page at the moment.<\/div>');
297 })(window, document);
298 //--><!]]></script></div><div id="footer">
299 <p class="apache">Copyright 2012 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>
300 <p class="menu"><a href="./mod/">Modules</a> | <a href="./mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="./glossary.html">Glossary</a> | <a href="./sitemap.html">Sitemap</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
301 if (typeof(prettyPrint) !== 'undefined') {