]> granicus.if.org Git - apache/blob - docs/manual/new_features_2_2.html.en
Xforms
[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 <meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
5 <!--
6         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
7               This file is generated from xml source: DO NOT EDIT
8         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
9       -->
10 <title>Overview of new features in Apache HTTP Server 2.2 - Apache HTTP Server Version 2.5</title>
11 <link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
12 <link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
13 <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" />
14 <script src="./style/scripts/prettify.min.js" type="text/javascript">
15 </script>
16
17 <link href="./images/favicon.ico" rel="shortcut icon" /></head>
18 <body id="manual-page"><div id="page-header">
19 <p class="menu"><a href="./mod/">Modules</a> | <a href="./mod/quickreference.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>
20 <p class="apache">Apache HTTP Server Version 2.5</p>
21 <img alt="" src="./images/feather.png" /></div>
22 <div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="./images/left.gif" /></a></div>
23 <div id="path">
24 <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>
25 <div class="toplang">
26 <p><span>Available Languages: </span><a href="./en/new_features_2_2.html" title="English">&nbsp;en&nbsp;</a> |
27 <a href="./es/new_features_2_2.html" hreflang="es" rel="alternate" title="Español">&nbsp;es&nbsp;</a> |
28 <a href="./fr/new_features_2_2.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
29 <a href="./ko/new_features_2_2.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
30 <a href="./pt-br/new_features_2_2.html" hreflang="pt-br" rel="alternate" title="Português (Brasil)">&nbsp;pt-br&nbsp;</a> |
31 <a href="./tr/new_features_2_2.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
32 </div>
33
34   <p>This document describes some of the major changes between the
35      2.0 and 2.2 versions of the Apache HTTP Server. For new features since
36      version 1.3, see the <a href="new_features_2_0.html">2.0 new features</a>
37      document.</p>
38 </div>
39 <div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#core">Core Enhancements</a></li>
40 <li><img alt="" src="./images/down.gif" /> <a href="#module">Module Enhancements</a></li>
41 <li><img alt="" src="./images/down.gif" /> <a href="#programs">Program Enhancements</a></li>
42 <li><img alt="" src="./images/down.gif" /> <a href="#developer">Module Developer Changes</a></li>
43 </ul><h3>See also</h3><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
44 <div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
45 <div class="section">
46 <h2><a name="core" id="core">Core Enhancements</a> <a title="Permanent link" href="#core" class="permalink">&para;</a></h2>
47     
48     <dl>
49
50       <dt>Authn/Authz</dt>
51       <dd>The bundled authentication and authorization modules have
52           been refactored.  The new mod_authn_alias(already removed from 2.3/2.4)
53           module can greatly simplify certain authentication configurations.
54           See <a href="#module">module name changes</a>, and
55           <a href="#developer">the developer changes</a> for more
56           information about how these changes affects users and module
57           writers.</dd>
58
59       <dt>Caching</dt>
60       <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
61           mod_mem_cache(already removed from 2.3/2.4) have undergone a lot of changes, and
62           are now considered production-quality. <code class="program"><a href="./programs/htcacheclean.html">htcacheclean</a></code>
63           has been introduced to clean up <code class="module"><a href="./mod/mod_cache_disk.html">mod_cache_disk</a></code>
64           setups.</dd>
65
66       <dt>Configuration</dt>
67       <dd>The default configuration layout has been simplified and
68           modularised. Configuration snippets which can be used to
69           enable commonly-used features are now bundled with Apache, and
70           can be easily added to the main server config.</dd>
71
72       <dt>Graceful stop</dt>
73       <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
74           <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>
75           to be shutdown gracefully via the
76           <a href="stopping.html#gracefulstop"><code>graceful-stop</code></a>
77           signal. The <code class="directive"><a href="./mod/mpm_common.html#gracefulshutdowntimeout">GracefulShutdownTimeout</a></code> directive
78           has been added to specify an optional timeout, after which
79           <code class="program"><a href="./programs/httpd.html">httpd</a></code> will terminate regardless of the status
80           of any requests being served.</dd>
81
82       <dt>Proxying</dt>
83       <dd>The new <code class="module"><a href="./mod/mod_proxy_balancer.html">mod_proxy_balancer</a></code> module provides
84           load balancing services for <code class="module"><a href="./mod/mod_proxy.html">mod_proxy</a></code>.
85           The new <code class="module"><a href="./mod/mod_proxy_ajp.html">mod_proxy_ajp</a></code> module adds support for the
86           <code>Apache JServ Protocol version 1.3</code> used by
87           <a href="http://tomcat.apache.org/">Apache Tomcat</a>.</dd>
88
89       <dt>Regular Expression Library Updated</dt>
90       <dd>Version 5.0 of the
91           <a href="http://www.pcre.org/">Perl Compatible Regular Expression
92           Library</a> (PCRE) is now included.  <code class="program"><a href="./programs/httpd.html">httpd</a></code> can be
93           configured to use a system installation of PCRE by passing the
94           <code>--with-pcre</code> flag to configure.</dd>
95
96       <dt>Smart Filtering</dt>
97       <dd><code class="module"><a href="./mod/mod_filter.html">mod_filter</a></code> introduces dynamic configuration
98           to the output filter chain.  It enables filters to be conditionally
99           inserted, based on any Request or Response header or environment
100           variable, and dispenses with the more problematic dependencies and
101           ordering problems in the 2.0 architecture.</dd>
102
103       <dt>Large File Support</dt>
104       <dd><code class="program"><a href="./programs/httpd.html">httpd</a></code> is now built with support for files larger
105           than 2GB on modern 32-bit Unix systems.  Support for handling
106           &gt;2GB request bodies has also been added.</dd>
107
108       <dt>Event MPM</dt>
109       <dd>The <code class="module"><a href="./mod/event.html">event</a></code> MPM uses a separate thread to handle
110           Keep Alive requests and accepting connections.  Keep Alive requests
111           have traditionally required httpd to dedicate a worker to handle it.
112           This dedicated worker could not be used again until the Keep Alive
113           timeout was reached.</dd>
114
115       <dt>SQL Database Support</dt>
116       <dd><code class="module"><a href="./mod/mod_dbd.html">mod_dbd</a></code>, together with the <code>apr_dbd</code>
117           framework, brings direct SQL support to modules that need it.
118           Supports connection pooling in threaded MPMs.</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> <a title="Permanent link" href="#module" class="permalink">&para;</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           mod_authn_alias(already removed from 2.3/2.4) module for simplifying
135           certain authentication configurations.
136       </dd>
137
138       <dt><code class="module">mod_authnz_ldap</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/mod_authz_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> <a title="Permanent link" href="#programs" class="permalink">&para;</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> <a title="Permanent link" href="#developer" class="permalink">&para;</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="./es/new_features_2_2.html" hreflang="es" rel="alternate" title="Español">&nbsp;es&nbsp;</a> |
279 <a href="./fr/new_features_2_2.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&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[//><!--
285 var comments_shortname = 'httpd';
286 var comments_identifier = 'http://httpd.apache.org/docs/trunk/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 2019 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/quickreference.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[//><!--
303 if (typeof(prettyPrint) !== 'undefined') {
304     prettyPrint();
305 }
306 //--><!]]></script>
307 </body></html>