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
7      -->
8<title>Overview of new features in Apache 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">
13</script>
14
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.2</p>
19<img alt="" src="/images/feather.gif" /></div>
20<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="/images/left.gif" /></a></div>
21<div id="path">
22<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">HTTP Server</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="./">Version 2.2</a></div><div id="page-content"><div id="preamble"><h1>Overview of new features in Apache 2.2</h1>
23<div class="toplang">
24<p><span>Available Languages: </span><a href="/en/new_features_2_2.html" title="English">&nbsp;en&nbsp;</a> |
25<a href="/fr/new_features_2_2.html" hreflang="fr" rel="alternate" title="Fran�ais">&nbsp;fr&nbsp;</a> |
26<a href="/ja/new_features_2_2.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
27<a href="/ko/new_features_2_2.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
28<a href="/pt-br/new_features_2_2.html" hreflang="pt-br" rel="alternate" title="Portugu�s (Brasil)">&nbsp;pt-br&nbsp;</a> |
29<a href="/tr/new_features_2_2.html" hreflang="tr" rel="alternate" title="T�rk�e">&nbsp;tr&nbsp;</a></p>
30</div>
31
32  <p>This document describes some of the major changes between the
33     2.0 and 2.2 versions of the Apache HTTP Server. For new features since
34     version 1.3, see the <a href="new_features_2_0.html">2.0 new features</a>
35     document.</p>
36</div>
37<div id="quickview"><ul id="toc"><li><img alt="" src="/images/down.gif" /> <a href="#core">Core Enhancements</a></li>
38<li><img alt="" src="/images/down.gif" /> <a href="#module">Module Enhancements</a></li>
39<li><img alt="" src="/images/down.gif" /> <a href="#programs">Program Enhancements</a></li>
40<li><img alt="" src="/images/down.gif" /> <a href="#developer">Module Developer Changes</a></li>
41</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
42<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
43<div class="section">
44<h2><a name="core" id="core">Core Enhancements</a></h2>
45    
46    <dl>
47
48      <dt>Authn/Authz</dt>
49      <dd>The bundled authentication and authorization modules have
50          been refactored.  The new <code class="module"><a href="/mod/mod_authn_alias.html">mod_authn_alias</a></code> module
51          can greatly simplify certain authentication configurations.
52          See <a href="#module">module name changes</a>, and
53          <a href="#developer">the developer changes</a> for more
54          information about how these changes affects users and module
55          writers.</dd>
56
57      <dt>Caching</dt>
58      <dd><code class="module"><a href="/mod/mod_cache.html">mod_cache</a></code>, <code class="module"><a href="/mod/mod_disk_cache.html">mod_disk_cache</a></code>, and
59          <code class="module"><a href="/mod/mod_mem_cache.html">mod_mem_cache</a></code> have undergone a lot of changes, and
60          are now considered production-quality. <code class="program"><a href="/programs/htcacheclean.html">htcacheclean</a></code>
61          has been introduced to clean up <code class="module"><a href="/mod/mod_disk_cache.html">mod_disk_cache</a></code>
62          setups.</dd>
63
64      <dt>Configuration</dt>
65      <dd>The default configuration layout has been simplified and
66          modularised. Configuration snippets which can be used to
67          enable commonly-used features are now bundled with Apache, and
68          can be easily added to the main server config.</dd>
69
70      <dt>Graceful stop</dt>
71      <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
72          <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>
73          to be shutdown gracefully via the
74          <a href="stopping.html#gracefulstop"><code>graceful-stop</code></a>
75          signal. The <code class="directive"><a href="/mod/mpm_common.html#gracefulshutdowntimeout">GracefulShutdownTimeout</a></code> directive
76          has been added to specify an optional timeout, after which
77          <code class="program"><a href="/programs/httpd.html">httpd</a></code> will terminate regardless of the status
78          of any requests being served.</dd>
79
80      <dt>Proxying</dt>
81      <dd>The new <code class="module"><a href="/mod/mod_proxy_balancer.html">mod_proxy_balancer</a></code> module provides
82          load balancing services for <code class="module"><a href="/mod/mod_proxy.html">mod_proxy</a></code>.
83          The new <code class="module"><a href="/mod/mod_proxy_ajp.html">mod_proxy_ajp</a></code> module adds support for the
84          <code>Apache JServ Protocol version 1.3</code> used by
85          <a href="http://tomcat.apache.org/">Apache Tomcat</a>.</dd>
86
87      <dt>Regular Expression Library Updated</dt>
88      <dd>Version 5.0 of the
89          <a href="http://www.pcre.org/">Perl Compatible Regular Expression
90          Library</a> (PCRE) is now included.  <code class="program"><a href="/programs/httpd.html">httpd</a></code> can be
91          configured to use a system installation of PCRE by passing the
92          <code>--with-pcre</code> flag to configure.</dd>
93
94      <dt>Smart Filtering</dt>
95      <dd><code class="module"><a href="/mod/mod_filter.html">mod_filter</a></code> introduces dynamic configuration
96          to the output filter chain.  It enables filters to be conditionally
97          inserted, based on any Request or Response header or environment
98          variable, and dispenses with the more problematic dependencies and
99          ordering problems in the 2.0 architecture.</dd>
100
101      <dt>Large File Support</dt>
102
103      <dd><code class="program"><a href="/programs/httpd.html">httpd</a></code> is now built with support for files larger
104          than 2GB on modern 32-bit Unix systems.  Support for handling
105          &gt;2GB request bodies has also been added.</dd>
106
107      <dt>Event MPM</dt>
108      <dd>The <code class="module"><a href="/mod/event.html">event</a></code> MPM uses a separate thread to handle
109          Keep Alive requests and accepting connections.  Keep Alive requests
110          have traditionally required httpd to dedicate a worker to handle it.
111          This dedicated worker could not be used again until the Keep Alive
112          timeout was reached.</dd>
113
114      <dt>SQL Database Support</dt>
115      <dd><p><code class="module"><a href="/mod/mod_dbd.html">mod_dbd</a></code>, together with the <code>apr_dbd</code>
116          framework, brings direct SQL support to modules that need it.
117          Supports connection pooling in threaded MPMs.</p>
118	  </dd>
119
120    </dl>
121  </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
122<div class="section">
123<h2><a name="module" id="module">Module Enhancements</a></h2>
124    
125    <dl>
126      <dt>Authn/Authz</dt>
127      <dd>Modules in the aaa directory have been renamed and offer
128          better support for digest authentication.  For example,
129          <code>mod_auth</code> is now split into
130          <code class="module"><a href="/mod/mod_auth_basic.html">mod_auth_basic</a></code> and
131          <code class="module"><a href="/mod/mod_authn_file.html">mod_authn_file</a></code>; <code>mod_auth_dbm</code> is now
132          called <code class="module"><a href="/mod/mod_authn_dbm.html">mod_authn_dbm</a></code>; <code>mod_access</code> has
133          been renamed <code class="module"><a href="/mod/mod_authz_host.html">mod_authz_host</a></code>.  There is also a new
134          <code class="module"><a href="/mod/mod_authn_alias.html">mod_authn_alias</a></code> module for simplifying
135          certain authentication configurations.
136      </dd>
137
138      <dt><code class="module"><a href="/mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code></dt>
139      <dd>This module is a port of the 2.0
140          <code>mod_auth_ldap</code> module to the 2.2 <code>Authn/Authz</code>
141          framework.  New features include using LDAP attribute values and
142          complicated search filters in the
143          <code class="directive"><a href="/mod/core.html#require">Require</a></code> directive.</dd>
144
145      <dt><code class="module"><a href="/mod/mod_authz_owner.html">mod_authz_owner</a></code></dt>
146      <dd>A new module that authorizes access to files based
147          on the owner of the file on the file system</dd>
148
149      <dt><code class="module"><a href="/mod/mod_version.html">mod_version</a></code></dt>
150      <dd>A new module that allows configuration blocks to be enabled based on the
151          version number of the running server.</dd>
152
153      <dt><code class="module"><a href="/mod/mod_info.html">mod_info</a></code></dt>
154      <dd>Added a new <code>?config</code> argument which will show
155          the configuration directives as parsed by Apache, including
156          their file name and line number.  The module also
157          shows the order of all request hooks and additional
158          build information, similar to <code>httpd -V</code>.</dd>
159
160      <dt><code class="module"><a href="/mod/mod_ssl.html">mod_ssl</a></code></dt>
161      
162      <dd>Added a support for
163         <a href="http://www.ietf.org/rfc/rfc2817.txt">RFC 2817</a>, which
164         allows connections to upgrade from clear text to TLS encryption.</dd>
165
166      <dt><code class="module"><a href="/mod/mod_imagemap.html">mod_imagemap</a></code></dt>
167      <dd><code>mod_imap</code> has been renamed to
168          <code class="module"><a href="/mod/mod_imagemap.html">mod_imagemap</a></code> to avoid user confusion.</dd>
169    </dl>
170
171  </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
172<div class="section">
173<h2><a name="programs" id="programs">Program Enhancements</a></h2>
174    
175    <dl>
176      <dt><code class="program"><a href="/programs/httpd.html">httpd</a></code></dt>
177      <dd>A new command line option <code>-M</code> has been added that
178      lists all modules that are loaded based on the current
179      configuration. Unlike the <code>-l</code> option, this list
180      includes DSOs loaded via <code class="module"><a href="/mod/mod_so.html">mod_so</a></code>.</dd>
181
182      <dt><code class="program"><a href="/programs/httxt2dbm.html">httxt2dbm</a></code></dt>
183      <dd>A new program used to generate dbm files from text input,
184          for use in <code class="directive"><a href="/mod/mod_rewrite.html#rewritemap">RewriteMap</a></code>
185          with the <code>dbm</code> map type.</dd>
186    </dl>
187  </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
188<div class="section">
189<h2><a name="developer" id="developer">Module Developer Changes</a></h2>
190    
191    <dl>
192      <dt><a class="glossarylink" href="/glossary.html#apr" title="see glossary">APR</a> 1.0 API</dt>
193
194      <dd>Apache 2.2 uses the APR 1.0 API.  All deprecated functions and
195          symbols have been removed from <code>APR</code> and
196          <code>APR-Util</code>. For details, see the
197          <a href="http://apr.apache.org/">APR Website</a>.</dd>
198
199      <dt>Authn/Authz</dt>
200      <dd>The bundled authentication and authorization modules have
201          been renamed along the following lines:
202          <ul>
203          <li><code>mod_auth_*</code> -&gt; Modules that implement an HTTP
204          authentication mechanism</li>
205          <li><code>mod_authn_*</code> -&gt; Modules that provide a backend
206          authentication provider</li>
207          <li><code>mod_authz_*</code> -&gt; Modules that implement
208          authorization (or access)</li>
209          <li><code>mod_authnz_*</code> -&gt; Module that implements both
210          authentication &amp; authorization</li>
211          </ul>
212          There is a new authentication backend provider
213          scheme which greatly eases the construction of new authentication
214          backends.</dd>
215
216      <dt>Connection Error Logging</dt>
217
218      <dd>A new function, <code>ap_log_cerror</code> has been added to log
219          errors that occur with the client's connection.  When logged,
220          the message includes the client IP address.</dd>
221
222      <dt>Test Configuration Hook Added</dt>
223
224      <dd>A new hook, <code>test_config</code> has been added to aid
225          modules that want to execute special code only when the user passes
226          <code>-t</code> to <code class="program"><a href="/programs/httpd.html">httpd</a></code>.</dd>
227
228      <dt>Set Threaded MPM's Stacksize</dt>
229
230      <dd>A new directive, <code class="directive"><a href="/mod/mpm_common.html#threadstacksize">ThreadStackSize</a></code> has been added to
231          set the stack size on all threaded MPMs.  This is required
232          for some third-party modules on platforms with small default
233          thread stack size.</dd>
234
235      <dt>Protocol handling for output filters</dt>
236
237      <dd>In the past, every filter has been responsible for ensuring
238          that it generates the correct response headers where it affects
239          them.  Filters can now delegate common protocol management to
240          <code class="module"><a href="/mod/mod_filter.html">mod_filter</a></code>, using the
241          <code>ap_register_output_filter_protocol</code> or
242          <code>ap_filter_protocol</code> calls.</dd>
243
244      <dt>Monitor hook added</dt>
245      <dd>Monitor hook enables modules to run regular/scheduled jobs
246          in the parent (root) process.</dd>
247
248      <dt>Regular expression API changes</dt>
249
250      <dd>The <code>pcreposix.h</code> header is no longer available;
251      it is replaced by the new <code>ap_regex.h</code> header.  The
252      POSIX.2 <code>regex.h</code> implementation exposed by the old
253      header is now available under the <code>ap_</code> namespace
254      from <code>ap_regex.h</code>.  Calls to <code>regcomp</code>,
255      <code>regexec</code> and so on can be replaced by calls to
256      <code>ap_regcomp</code>, <code>ap_regexec</code>.</dd>
257
258      <dt>DBD Framework (SQL Database API)</dt>
259
260      <dd><p>With Apache 1.x and 2.0, modules requiring an SQL backend
261      had to take responsibility for managing it themselves.  Apart
262      from reinventing the wheel, this can be very inefficient, for
263      example when several modules each maintain their own connections.</p>
264
265      <p>Apache 2.1 and later provides the <code>ap_dbd</code> API for
266      managing database connections (including optimised strategies
267      for threaded and unthreaded MPMs), while APR 1.2 and later provides
268      the <code>apr_dbd</code> API for interacting with the database.</p>
269
270      <p>New modules SHOULD now use these APIs for all SQL database
271      operations.  Existing applications SHOULD be upgraded to use it
272      where feasible, either transparently or as a recommended option
273      to their users.</p></dd>
274    </dl>
275  </div></div>
276<div class="bottomlang">
277<p><span>Available Languages: </span><a href="/en/new_features_2_2.html" title="English">&nbsp;en&nbsp;</a> |
278<a href="/fr/new_features_2_2.html" hreflang="fr" rel="alternate" title="Fran�ais">&nbsp;fr&nbsp;</a> |
279<a href="/ja/new_features_2_2.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
280<a href="/ko/new_features_2_2.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
281<a href="/pt-br/new_features_2_2.html" hreflang="pt-br" rel="alternate" title="Portugu�s (Brasil)">&nbsp;pt-br&nbsp;</a> |
282<a href="/tr/new_features_2_2.html" hreflang="tr" rel="alternate" title="T�rk�e">&nbsp;tr&nbsp;</a></p>
283</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>Notice:</strong><br />This is not a Q&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
284<script type="text/javascript"><!--//--><![CDATA[//><!--
285var comments_shortname = 'httpd';
286var comments_identifier = 'http://httpd.apache.org/docs/2.2/new_features_2_2.html';
287(function(w, d) {
288    if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
289        d.write('<div id="comments_thread"><\/div>');
290        var s = d.createElement('script');
291        s.type = 'text/javascript';
292        s.async = true;
293        s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
294        (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
295    }
296    else { 
297        d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
298    }
299})(window, document);
300//--><!]]></script></div><div id="footer">
301<p class="apache">Copyright 2013 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>
302<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[//><!--
303if (typeof(prettyPrint) !== 'undefined') {
304    prettyPrint();
305}
306//--><!]]></script>
307</body></html>