new_features_2_2.html.en revision b036ef2952fb6924b308f954b39786443460ddc6
<?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">
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
This file is generated from xml source: DO NOT EDIT
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-->
<title>Overview of new features in Apache 2.2 - 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" />
<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>
<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 2.2</h1>
<div class="toplang">
<p><span>Available Languages: </span><a href="/en/new_features_2_2.html" title="English"> en </a> |
<a href="/fr/new_features_2_2.html" hreflang="fr" rel="alternate" title="Fran�ais"> fr </a> |
<a href="/ko/new_features_2_2.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
<a href="/pt-br/new_features_2_2.html" hreflang="pt-br" rel="alternate" title="Portugu�s (Brasil)"> pt-br </a> |
<a href="/tr/new_features_2_2.html" hreflang="tr" rel="alternate" title="T�rk�e"> tr </a></p>
</div>
<p>This document describes some of the major changes between the
2.0 and 2.2 versions of the Apache HTTP Server. For new features since
document.</p>
</div>
<div id="quickview"><ul id="toc"><li><img alt="" src="/images/down.gif" /> <a href="#core">Core Enhancements</a></li>
</ul></div>
<div class="section">
<h2><a name="core" id="core">Core Enhancements</a></h2>
<dl>
<dd>The bundled authentication and authorization modules have
module can greatly simplify certain authentication configurations.
See <a href="#module">module name changes</a>, and
<a href="#developer">the developer changes</a> for more
information about how these changes affects users and module
writers.</dd>
<dt>Caching</dt>
<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
are now considered production-quality. <code class="program"><a href="/programs/htcacheclean.html">htcacheclean</a></code>
has been introduced to clean up <code class="module"><a href="/mod/mod_disk_cache.html">mod_disk_cache</a></code>
setups.</dd>
<dt>Configuration</dt>
<dd>The default configuration layout has been simplified and
modularised. Configuration snippets which can be used to
enable commonly-used features are now bundled with Apache, and
can be easily added to the main server config.</dd>
<dt>Graceful stop</dt>
<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
<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>
to be shutdown gracefully via the
signal. The <code class="directive"><a href="/mod/mpm_common.html#gracefulshutdowntimeout">GracefulShutdownTimeout</a></code> directive
has been added to specify an optional timeout, after which
<code class="program"><a href="/programs/httpd.html">httpd</a></code> will terminate regardless of the status
of any requests being served.</dd>
<dt>Proxying</dt>
<dd>The new <code class="module"><a href="/mod/mod_proxy_balancer.html">mod_proxy_balancer</a></code> module provides
load balancing services for <code class="module"><a href="/mod/mod_proxy.html">mod_proxy</a></code>.
The new <code class="module"><a href="/mod/mod_proxy_ajp.html">mod_proxy_ajp</a></code> module adds support for the
<code>Apache JServ Protocol version 1.3</code> used by
<dt>Regular Expression Library Updated</dt>
<dd>Version 5.0 of the
<a href="http://www.pcre.org/">Perl Compatible Regular Expression
Library</a> (PCRE) is now included. <code class="program"><a href="/programs/httpd.html">httpd</a></code> can be
configured to use a system installation of PCRE by passing the
<code>--with-pcre</code> flag to configure.</dd>
<dt>Smart Filtering</dt>
<dd><code class="module"><a href="/mod/mod_filter.html">mod_filter</a></code> introduces dynamic configuration
to the output filter chain. It enables filters to be conditionally
inserted, based on any Request or Response header or environment
variable, and dispenses with the more problematic dependencies and
ordering problems in the 2.0 architecture.</dd>
<dt>Large File Support</dt>
<dd><code class="program"><a href="/programs/httpd.html">httpd</a></code> is now built with support for files larger
than 2GB on modern 32-bit Unix systems. Support for handling
>2GB request bodies has also been added.</dd>
<dt>Event MPM</dt>
<dd>The <code class="module"><a href="/mod/event.html">event</a></code> MPM uses a separate thread to handle
Keep Alive requests and accepting connections. Keep Alive requests
have traditionally required httpd to dedicate a worker to handle it.
This dedicated worker could not be used again until the Keep Alive
timeout was reached.</dd>
<dt>SQL Database Support</dt>
<dd><code class="module"><a href="/mod/mod_dbd.html">mod_dbd</a></code>, together with the <code>apr_dbd</code>
framework, brings direct SQL support to modules that need it.
Supports connection pooling in threaded MPMs.</dd>
</dl>
<div class="section">
<h2><a name="module" id="module">Module Enhancements</a></h2>
<dl>
<dd>Modules in the aaa directory have been renamed and offer
better support for digest authentication. For example,
<code>mod_auth</code> is now split into
<code class="module"><a href="/mod/mod_authn_file.html">mod_authn_file</a></code>; <code>mod_auth_dbm</code> is now
called <code class="module"><a href="/mod/mod_authn_dbm.html">mod_authn_dbm</a></code>; <code>mod_access</code> has
been renamed <code class="module"><a href="/mod/mod_authz_host.html">mod_authz_host</a></code>. There is also a new
certain authentication configurations.
</dd>
<dd>This module is a port of the 2.0
framework. New features include using LDAP attribute values and
complicated search filters in the
<code class="directive"><a href="/mod/mod_authz_core.html#require">Require</a></code> directive.</dd>
<dd>A new module that authorizes access to files based
on the owner of the file on the file system</dd>
<dd>A new module that allows configuration blocks to be enabled based on the
version number of the running server.</dd>
<dd>Added a new <code>?config</code> argument which will show
the configuration directives as parsed by Apache, including
their file name and line number. The module also
shows the order of all request hooks and additional
build information, similar to <code>httpd -V</code>.</dd>
<dd>Added a support for
allows connections to upgrade from clear text to TLS encryption.</dd>
<dd><code>mod_imap</code> has been renamed to
<code class="module"><a href="/mod/mod_imagemap.html">mod_imagemap</a></code> to avoid user confusion.</dd>
</dl>
<div class="section">
<h2><a name="programs" id="programs">Program Enhancements</a></h2>
<dl>
<dd>A new command line option <code>-M</code> has been added that
lists all modules that are loaded based on the current
configuration. Unlike the <code>-l</code> option, this list
<dd>A new program used to generate dbm files from text input,
with the <code>dbm</code> map type.</dd>
</dl>
<div class="section">
<h2><a name="developer" id="developer">Module Developer Changes</a></h2>
<dl>
<dd>Apache 2.2 uses the APR 1.0 API. All deprecated functions and
symbols have been removed from <code>APR</code> and
<code>APR-Util</code>. For details, see the
<dd>The bundled authentication and authorization modules have
been renamed along the following lines:
<ul>
<li><code>mod_auth_*</code> -> Modules that implement an HTTP
authentication mechanism</li>
<li><code>mod_authn_*</code> -> Modules that provide a backend
authentication provider</li>
<li><code>mod_authz_*</code> -> Modules that implement
authorization (or access)</li>
<li><code>mod_authnz_*</code> -> Module that implements both
authentication & authorization</li>
</ul>
There is a new authentication backend provider
scheme which greatly eases the construction of new authentication
backends.</dd>
<dt>Connection Error Logging</dt>
<dd>A new function, <code>ap_log_cerror</code> has been added to log
errors that occur with the client's connection. When logged,
the message includes the client IP address.</dd>
<dt>Test Configuration Hook Added</dt>
<dd>A new hook, <code>test_config</code> has been added to aid
modules that want to execute special code only when the user passes
<dt>Set Threaded MPM's Stacksize</dt>
<dd>A new directive, <code class="directive"><a href="/mod/mpm_common.html#threadstacksize">ThreadStackSize</a></code> has been added to
set the stack size on all threaded MPMs. This is required
for some third-party modules on platforms with small default
thread stack size.</dd>
<dt>Protocol handling for output filters</dt>
<dd>In the past, every filter has been responsible for ensuring
that it generates the correct response headers where it affects
them. Filters can now delegate common protocol management to
<code>ap_register_output_filter_protocol</code> or
<code>ap_filter_protocol</code> calls.</dd>
<dt>Monitor hook added</dt>
in the parent (root) process.</dd>
<dt>Regular expression API changes</dt>
header is now available under the <code>ap_</code> namespace
<code>regexec</code> and so on can be replaced by calls to
<code>ap_regcomp</code>, <code>ap_regexec</code>.</dd>
<dt>DBD Framework (SQL Database API)</dt>
had to take responsibility for managing it themselves. Apart
from reinventing the wheel, this can be very inefficient, for
example when several modules each maintain their own connections.</p>
<p>Apache 2.1 and later provides the <code>ap_dbd</code> API for
managing database connections (including optimised strategies
for threaded and unthreaded MPMs), while APR 1.2 and later provides
the <code>apr_dbd</code> API for interacting with the database.</p>
<p>New modules SHOULD now use these APIs for all SQL database
operations. Existing applications SHOULD be upgraded to use it
where feasible, either transparently or as a recommended option
to their users.</p></dd>
</dl>
</div></div>
<div class="bottomlang">
<p><span>Available Languages: </span><a href="/en/new_features_2_2.html" title="English"> en </a> |
<a href="/fr/new_features_2_2.html" hreflang="fr" rel="alternate" title="Fran�ais"> fr </a> |
<a href="/ko/new_features_2_2.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
<a href="/pt-br/new_features_2_2.html" hreflang="pt-br" rel="alternate" title="Portugu�s (Brasil)"> pt-br </a> |
<a href="/tr/new_features_2_2.html" hreflang="tr" rel="alternate" title="T�rk�e"> tr </a></p>
</div><div id="footer">
<p class="apache">Copyright 2009 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>