]> granicus.if.org Git - apache/blob - docs/manual/new_features_2_2.html.en
rebuild
[apache] / docs / manual / new_features_2_2.html.en
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 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">
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.5</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.5</a></div><div id="page-content"><div id="preamble"><h1>Overview of new features in Apache HTTP Server 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="./ko/new_features_2_2.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
27 <a href="./pt-br/new_features_2_2.html" hreflang="pt-br" rel="alternate" title="Português (Brasil)">&nbsp;pt-br&nbsp;</a> |
28 <a href="./tr/new_features_2_2.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
29 </div>
30
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>
34      document.</p>
35 </div>
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>
42 <div class="section">
43 <h2><a name="core" id="core">Core Enhancements</a></h2>
44     
45     <dl>
46
47       <dt>Authn/Authz</dt>
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
54           writers.</dd>
55
56       <dt>Caching</dt>
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>
61           setups.</dd>
62
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>
68
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>
78
79       <dt>Proxying</dt>
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>
85
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>
92
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>
99
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           &gt;2GB request bodies has also been added.</dd>
104
105       <dt>Event MPM</dt>
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>
111
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>
116
117     </dl>
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>
121     
122     <dl>
123       <dt>Authn/Authz</dt>
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.
133       </dd>
134
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>
141
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>
145
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>
149
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>
156
157       <dt><code class="module"><a href="./mod/mod_ssl.html">mod_ssl</a></code></dt>
158       
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>
162
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>
166     </dl>
167
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>
171     
172     <dl>
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>
178
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>
183     </dl>
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>
187     
188     <dl>
189       <dt><a class="glossarylink" href="./glossary.html#apr" title="see glossary">APR</a> 1.0 API</dt>
190
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>
195
196       <dt>Authn/Authz</dt>
197       <dd>The bundled authentication and authorization modules have
198           been renamed along the following lines:
199           <ul>
200           <li><code>mod_auth_*</code>  -&gt; Modules that implement an HTTP
201           authentication mechanism</li>
202           <li><code>mod_authn_*</code> -&gt; Modules that provide a backend
203           authentication provider</li>
204           <li><code>mod_authz_*</code> -&gt; Modules that implement
205           authorization (or access)</li>
206           <li><code>mod_authnz_*</code> -&gt; Module that implements both
207           authentication &amp; authorization</li>
208           </ul>
209           There is a new authentication backend provider
210           scheme which greatly eases the construction of new authentication
211           backends.</dd>
212
213       <dt>Connection Error Logging</dt>
214
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>
218
219       <dt>Test Configuration Hook Added</dt>
220
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>
224
225       <dt>Set Threaded MPM's Stacksize</dt>
226
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>
231
232       <dt>Protocol handling for output filters</dt>
233
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>
240
241       <dt>Monitor hook added</dt>
242       <dd>Monitor hook enables modules to run regular/scheduled jobs
243           in the parent (root) process.</dd>
244
245       <dt>Regular expression API changes</dt>
246
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>
254
255       <dt>DBD Framework (SQL Database API)</dt>
256
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>
261
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>
266
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>
271     </dl>
272   </div></div>
273 <div class="bottomlang">
274 <p><span>Available Languages: </span><a href="./en/new_features_2_2.html" title="English">&nbsp;en&nbsp;</a> |
275 <a href="./fr/new_features_2_2.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
276 <a href="./ko/new_features_2_2.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
277 <a href="./pt-br/new_features_2_2.html" hreflang="pt-br" rel="alternate" title="Português (Brasil)">&nbsp;pt-br&nbsp;</a> |
278 <a href="./tr/new_features_2_2.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</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';
284 (function(w, d) {
285     var disabled = true;
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';
290         s.async = true;
291         s.src = 'http' + '://' + disqus_shortname + '.disqus.com/embed.js';
292         (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
293     }
294     else {
295         d.write('<div id="disqus_thread">Comments are disabled for this page at the moment.<\/div>');
296     }
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') {
302     prettyPrint();
303 }
304 //--><!]]></script>
305 </body></html>