new_features_2_4.html.en revision 53cf0034f617fdca55a345580e13afd88000e9cc
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd<?xml version="1.0" encoding="ISO-8859-1"?>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
fd9abdda70912b99b24e3bf1a38f26fde908a74cnd<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head><!--
fd9abdda70912b99b24e3bf1a38f26fde908a74cnd XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
fd9abdda70912b99b24e3bf1a38f26fde908a74cnd This file is generated from xml source: DO NOT EDIT
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd -->
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd<title>Overview of new features in Apache HTTP Server 2.4 - Apache HTTP Server</title>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd<link href="/style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
96ad5d81ee4a2cc66a4ae19893efc8aa6d06fae7jailletc<link href="/style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd<link href="/style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd<link href="/images/favicon.ico" rel="shortcut icon" /></head>
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowen<body id="manual-page"><div id="page-header">
2e545ce2450a9953665f701bb05350f0d3f26275nd<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>
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowen<p class="apache">Apache HTTP Server Version 2.3</p>
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowen<img alt="" src="/images/feather.gif" /></div>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="/images/left.gif" /></a></div>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd<div id="path">
af33a4994ae2ff15bc67d19ff1a7feb906745bf8rbowen<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.3</a></div><div id="page-content"><div id="preamble"><h1>Overview of new features in Apache HTTP Server 2.4</h1>
3f08db06526d6901aa08c110b5bc7dde6bc39905nd<div class="toplang">
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd<p><span>Available Languages: </span><a href="/en/new_features_2_4.html" title="English">&nbsp;en&nbsp;</a> |
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd<a href="/fr/new_features_2_4.html" hreflang="fr" rel="alternate" title="Fran�ais">&nbsp;fr&nbsp;</a></p>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd</div>
3f08db06526d6901aa08c110b5bc7dde6bc39905nd
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <p>This document describes some of the major changes between the
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd 2.2 and 2.4 versions of the Apache HTTP Server. For new features since
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd version 2.0, see the <a href="new_features_2_2.html">2.2 new features</a>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd document.</p>
bc9d4698fce0238d2f6f2682e99423ebb1149976rbowen</div>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd<div id="quickview"><ul id="toc"><li><img alt="" src="/images/down.gif" /> <a href="#core">Core Enhancements</a></li>
63f06dce77bb2d9b1c5aa5deeb47a1069987fd1end<li><img alt="" src="/images/down.gif" /> <a href="#newmods">New Modules</a></li>
d474d8ef01ec5c2a09341cd148851ed383c3287crbowen<li><img alt="" src="/images/down.gif" /> <a href="#module">Module Enhancements</a></li>
d474d8ef01ec5c2a09341cd148851ed383c3287crbowen<li><img alt="" src="/images/down.gif" /> <a href="#programs">Program Enhancements</a></li>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd<li><img alt="" src="/images/down.gif" /> <a href="#developer">Module Developer Changes</a></li>
4b575a6b6704b516f22d65a3ad35696d7b9ba372rpluem</ul></div>
4b575a6b6704b516f22d65a3ad35696d7b9ba372rpluem<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
4b575a6b6704b516f22d65a3ad35696d7b9ba372rpluem<div class="section">
4b575a6b6704b516f22d65a3ad35696d7b9ba372rpluem<h2><a name="core" id="core">Core Enhancements</a></h2>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dl>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dt>KeepAliveTimeout in milliseconds</dt>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dd>It is now possible to specify <code class="directive"><a href="/mod/core.html#keepalivetimeout">KeepAliveTimeout</a></code> in milliseconds.
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd </dd>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dt>Loadable MPMs</dt>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dd>Multiple MPMs can now be built as loadable modules at compile time.
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd The MPM of choice can be configured at run time.</dd>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dt>Per-module and per-directory LogLevel configuration</dt>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dd>The <code class="directive"><a href="/mod/core.html#loglevel">LogLevel</a></code> can now be
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd configured per module and per directory. New levels <code>trace1</code>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd to <code>trace8</code> have been added above the <code>debug</code> log
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd level.</dd>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd </dl>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd<div class="section">
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd<h2><a name="newmods" id="newmods">New Modules</a></h2>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dl>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dt><code class="module"><a href="/mod/mod_allowmethods.html">mod_allowmethods</a></code></dt>
d972e4a0688f66b1402473dd9dacfecefa2132a8rbowen <dd>New module to restrict certain HTTP methods without interfering with
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd authentication or authorization.</dd>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd
80eed96ee3d8cfa0b66d9fb1cfe63fd83254d38bnilgun <dt><code class="module"><a href="/mod/mod_buffer.html">mod_buffer</a></code></dt>
80eed96ee3d8cfa0b66d9fb1cfe63fd83254d38bnilgun <dd>Provides for buffering the input and output filter stacks</dd>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dt><code class="module"><a href="/mod/mod_lua.html">mod_lua</a></code></dt>
316f02e3836836c82e19019ff23f90a7ebc65289nilgun <dd>Embeds the <a href="http://www.lua.org/">Lua</a> language into httpd,
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd for configuration and small business logic functions.</dd>
864d6d55a72bdb982ebabbc95cf8f051c43fa6ddrbowen
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dt><code class="module"><a href="/mod/mod_proxy_fcgi.html">mod_proxy_fcgi</a></code></dt>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dd>FastCGI Protocol backend for <code class="module"><a href="/mod/mod_proxy.html">mod_proxy</a></code></dd>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dt><code class="module"><a href="/mod/mod_proxy_scgi.html">mod_proxy_scgi</a></code></dt>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dd>SCGI Protocol backend for <code class="module"><a href="/mod/mod_proxy.html">mod_proxy</a></code></dd>
6c4ef4a72d9897e53365b94103f4bd819fd0d3acnd
22d5d84393d960a2027f472036f3fee15d7dbce9nd <dt><code class="module"><a href="/mod/mod_ratelimit.html">mod_ratelimit</a></code></dt>
22d5d84393d960a2027f472036f3fee15d7dbce9nd <dd>Provides Bandwidth Rate Limiting for Clients</dd>
864d6d55a72bdb982ebabbc95cf8f051c43fa6ddrbowen
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dt><code class="module"><a href="/mod/mod_reflector.html">mod_reflector</a></code></dt>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dd>Provides Reflection of a request body as a response via the output filter stack.</dd>
4b311579b2c8aebac85fb7cb8ac89e6c37b4bc1asf
50c04f297d76a57ead2fa6b73845f7563b1fc788sf <dt><code class="module"><a href="/mod/mod_remoteip.html">mod_remoteip</a></code></dt>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dd>Replaces the apparent client remote IP address and hostname for the request
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd with the IP address list presented by a proxies or a load balancer via
864d6d55a72bdb982ebabbc95cf8f051c43fa6ddrbowen the request headers.</dd>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd
635e08c1d8332adc365b1c20bbe3577d59ebcd78kess <dt><code class="module"><a href="/mod/mod_reqtimeout.html">mod_reqtimeout</a></code></dt>
623eebe956d9c2d6d073ed3eae855b56030b40e9noodl <dd>Set timeout and minimum data rate for receiving requests</dd>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dt><code class="module"><a href="/mod/mod_request.html">mod_request</a></code></dt>
ffb88a4885747797937e30a5ac8b1606da3cb4adnd <dd>Provides Filters to handle and make available HTTP request bodies</dd>
909ce17e2bd0faef7b1c294f2307f009793fd493nd
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dt><code class="module"><a href="/mod/mod_slotmem_shm.html">mod_slotmem_shm</a></code></dt>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dd>Provides a Slot-based shared memory provider (ala the scoreboard).</dd>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe </dl>
65a611af7093423efb91e5794b8887a527d4cf63trawick </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
65a611af7093423efb91e5794b8887a527d4cf63trawick<div class="section">
42af92a661a06b3cebc88d585aad75064a309d51nd<h2><a name="module" id="module">Module Enhancements</a></h2>
42af92a661a06b3cebc88d585aad75064a309d51nd
ffb88a4885747797937e30a5ac8b1606da3cb4adnd <dl>
6fe26506780e73be2a412d758af77fafdf03291and <dt><code class="module"><a href="/mod/mod_ssl.html">mod_ssl</a></code></dt>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dd><code class="module"><a href="/mod/mod_ssl.html">mod_ssl</a></code> can now be configured to use an
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd OCSP server to check the validation status of a client
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd certificate. The default responder is configurable, along with
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd the decision on whether to prefer the responder designated in
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd the client certificate itself.</dd>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dd><code class="module"><a href="/mod/mod_ssl.html">mod_ssl</a></code> now also supports OCSP stapling, where the
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd server pro-actively obtains an OCSP verification of its certificate and
08cf4a15275e4cb65a424b3a1db5410bfb51085cjim transmits that to the client during the handshake. </dd>
f6066dc0a6ad0432b74774e290c04c3cc4aa2dafrbowen
78f97ce162b66a0dbfd7af4dcd9984f162569b04minfrin <dd><code class="module"><a href="/mod/mod_ssl.html">mod_ssl</a></code> can now be configured to share SSL Session
f5a398cc8880978754903f9ece8e4beb63a81cedrbowen data between servers through memcached</dd>
f5a398cc8880978754903f9ece8e4beb63a81cedrbowen
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dt><code class="module"><a href="/mod/mod_proxy.html">mod_proxy</a></code></dt>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dd>The <code class="directive"><a href="/mod/mod_proxy.html#proxypass">ProxyPass</a></code> directive
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd is now most optimally configured within a
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <code class="directive"><a href="/mod/core.html#location">Location</a></code> or
7906201913b68fe78b9d6a22ab33bf21d82c490eminfrin <code class="directive"><a href="/mod/core.html#locationmatch">LocationMatch</a></code>
7906201913b68fe78b9d6a22ab33bf21d82c490eminfrin block, and offers a significant performance advantage over the traditional
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd two-parameter syntax when present in large numbers.</dd>
864d6d55a72bdb982ebabbc95cf8f051c43fa6ddrbowen
864d6d55a72bdb982ebabbc95cf8f051c43fa6ddrbowen <dt><code class="module"><a href="/mod/mod_proxy_balancer.html">mod_proxy_balancer</a></code></dt>
e8b603fa9ccf7b17b11b42df6d8916fd97c2331dnd
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dd>More runtime configuration changes for BalancerMembers via balancer-manager</dd>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd
4ed26c413f67a5aae20b95909828f30bb5dc2286poirier <dd>Additional BalancerMembers can be added at runtime via balancer-manager</dd>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dd>Runtime configuration of a subset of Balancer parameters</dd>
611049e38bfbaeb173d2d7fab2e44a48753436a1nd
9a58dc6a2b26ec128b1270cf48810e705f1a90dbsf <dt><code class="module"><a href="/mod/mod_cache.html">mod_cache</a></code></dt>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dd><code class="module"><a href="/mod/mod_cache.html">mod_cache</a></code> can now cache HEAD requests.</dd>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd
2eb7a8afc318286c210a1fbb2ff2ba904471956frjung <dd>Where possible, <code class="module"><a href="/mod/mod_cache.html">mod_cache</a></code> directives can now be set
d8b761beec42bbe2847bb14e3b706642c6eed47cnd per directory, instead of per server.</dd>
d8b761beec42bbe2847bb14e3b706642c6eed47cnd
d8b761beec42bbe2847bb14e3b706642c6eed47cnd <dd>The base URL of cached URLs can be customised, so that a cluster of
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd caches can share the same endpoint URL prefix.</dd>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dd><code class="module"><a href="/mod/mod_cache.html">mod_cache</a></code> is now capable of serving stale cached
03a4ff9ac4c9b8009249010e7c53bb86ff05915and data when a backend is unavailable (error 5xx).</dd>
5effc8b39fae5cd169d17f342bfc265705840014rbowen
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dd><code class="module"><a href="/mod/mod_cache.html">mod_cache</a></code> can now insert HIT/MISS/REVALIDATE into
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd an X-Cache header.</dd>
864d6d55a72bdb982ebabbc95cf8f051c43fa6ddrbowen
864d6d55a72bdb982ebabbc95cf8f051c43fa6ddrbowen <dt><code class="module"><a href="/mod/mod_include.html">mod_include</a></code></dt>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dd>Support for the 'onerror' attribute within an 'include' element,
6329991d5f023c1c4ae02cfbbda636c66e6392aand allowing an error document to be served on error instead of the default
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd error string.</dd>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dt><code class="module"><a href="/mod/mod_cgi.html">mod_cgi</a></code>, <code class="module"><a href="/mod/mod_include.html">mod_include</a></code>,
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <code class="module"><a href="/mod/mod_isapi.html">mod_isapi</a></code>, ...</dt>
6c4ef4a72d9897e53365b94103f4bd819fd0d3acnd <dd>Translation of headers to environment variables is more strict than
2704de98885368683621b01c8f8f4e4b01557611takashi before to mitigate some possible cross-site-scripting attacks via header
2704de98885368683621b01c8f8f4e4b01557611takashi injection. Headers containing invalid characters (including underscores)
2704de98885368683621b01c8f8f4e4b01557611takashi are now silently dropped. <a href="env.html">Environment Variables
b43f840409794ed298e8634f6284741f193b6c4ftakashi in Apache</a> has some pointers on how to work around broken legacy
2704de98885368683621b01c8f8f4e4b01557611takashi clients which require such headers. (This affects all modules which
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd use these environment variables.)</dd>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd
c819c19c2f1ffbf3a3f12a4070cc6c3f4ea2a6f2sf </dl>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd<div class="section">
4ed26c413f67a5aae20b95909828f30bb5dc2286poirier<h2><a name="programs" id="programs">Program Enhancements</a></h2>
4ed26c413f67a5aae20b95909828f30bb5dc2286poirier
e60187855fd0488f48f37e88acde742754308d39rbowen <dl>
04bab87733a0e93a926e82311c85cd8ac06a032fnd <dt>fcgistarter</dt>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dd>FastCGI deamon starter utility</dd>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dt>htcacheclean</dt>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dd>Current cached URLs can now be listed, with optional metadata
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd included.</dd>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dd>Allow explicit deletion of individual cached URLs from the
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd cache.</dd>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <dd>File sizes can now be rounded up to the given block size, making
5effc8b39fae5cd169d17f342bfc265705840014rbowen the size limits map more closely to the real size on disk.</dd>
5effc8b39fae5cd169d17f342bfc265705840014rbowen <dd>Cache size can now be limited by the number of inodes, instead
27d778df0b517e1578f907d2e51eb961cd8ee5fbjim of or in addition to being limited by the size of the files on
a610901168de82df5fc5d99b8759fd80e0f70aeasf disk.</dd>
a43bfa789f4e52dde53ae8e53fa0427b5c1cf977nd </dl>
a43bfa789f4e52dde53ae8e53fa0427b5c1cf977nd </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
28c9d384aa958b321280b4ac886941dcad25396bnd<div class="section">
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd<h2><a name="developer" id="developer">Module Developer Changes</a></h2>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd
438b4817913a5ff55d9cad4c7ddf133330b4466ejim <dl>
438b4817913a5ff55d9cad4c7ddf133330b4466ejim <dt>Check Configuration Hook Added</dt>
1d980e5489836e977ba59b419e27b0ec875c4bd3takashi
e5ce3ac0e9b720c0fa23782e29168a0810697fdetakashi <dd>A new hook, <code>check_config</code>, has been added which runs
604c89126c27104f659d7a51b0113e3bd435faf8fielding between the <code>pre_config</code> and <code>open_logs</code>
50cb7e2b30597f481fee57bac945190f06ebcc58jorton hooks. It also runs before the <code>test_config</code> hook
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd when the <code>-t</code> option is passed to
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <code class="program"><a href="/programs/httpd.html">httpd</a></code>. The <code>check_config</code> hook
4126704c4950bfd46d32ad54e3b106ac6d868a73sf allows modules to review interdependent configuration directive
4126704c4950bfd46d32ad54e3b106ac6d868a73sf values and adjust them while messages can still be logged to the
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd console. The user can thus be alerted to misconfiguration problems
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd before the core <code>open_logs</code> hook function redirects
0a69d9bb491d9810892a9949c01403a1de3c7ac2nd console output to the error log.</dd>
2544c1693130c0a3106f2ff2c0ef7e3cf0a228e0jim
245eb3a84b8bc2b350c3a39ba2599444d443b50ajim <dt>Expression Parser Added</dt>
4ed26c413f67a5aae20b95909828f30bb5dc2286poirier
4ed26c413f67a5aae20b95909828f30bb5dc2286poirier <dd>We now have a general-purpose expression parser, whose API is
5effc8b39fae5cd169d17f342bfc265705840014rbowen exposed in <var>ap_expr.h</var>. This is adapted from the
5effc8b39fae5cd169d17f342bfc265705840014rbowen expression parser previously implemented in
9652bc3a93433d52f80579062986ead2afe0d11fsf <code class="module"><a href="/mod/mod_include.html">mod_include</a></code>.</dd>
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe
11495c9f0bd33e51a25b4d532beadfbcf9b944a3nilgun <dt>Authorization Logic Containers</dt>
11495c9f0bd33e51a25b4d532beadfbcf9b944a3nilgun
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe <dd>Advanced authorization logic may now be specified using the
ecc5150d35c0dc5ee5119c2717e6660fa331abbftakashi <code class="directive"><a href="/mod/mod_authz_core.html#require">Require</a></code> directive
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd and the related container directives, such as
50cb7e2b30597f481fee57bac945190f06ebcc58jorton <code class="directive"><a href="/mod/mod_authz_core.html#requireall">&lt;RequireAll&gt;</a></code>, all
79b024b81f6bb3c44dce77a7552191daf8b522d2jim provided by the <code class="module"><a href="/mod/mod_authz_core.html">mod_authz_core</a></code> module.</dd>
f772e8f448c223e5ea306f1bf92d97d968f972d5jim
f772e8f448c223e5ea306f1bf92d97d968f972d5jim <dt>Small-Object Caching Interface</dt>
fac8c35bfb158112226ab43ddf84d59daca5dc30nd
f772e8f448c223e5ea306f1bf92d97d968f972d5jim <dd>The <var>ap_socache.h</var> header exposes a provider-based
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd interface for caching small data objects, based on the previous
1de1266f0ea387d6373be8415745dfd2ab876341jim implementation of the <code class="module"><a href="/mod/mod_ssl.html">mod_ssl</a></code> session cache.
1de1266f0ea387d6373be8415745dfd2ab876341jim Providers using a shared-memory cyclic buffer, disk-based dbm
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd files, and a memcache distributed cache are currently
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd supported.</dd>
5effc8b39fae5cd169d17f342bfc265705840014rbowen
5effc8b39fae5cd169d17f342bfc265705840014rbowen <dt>Cache Status Hook Added</dt>
5effc8b39fae5cd169d17f342bfc265705840014rbowen
5effc8b39fae5cd169d17f342bfc265705840014rbowen <dd>The <code class="module"><a href="/mod/mod_cache.html">mod_cache</a></code> module now includes a new
b41a0dbe6310c576e96b7ea6910051fd84fb06f5sf <code>cache_status</code> hook, which is called when the caching
b41a0dbe6310c576e96b7ea6910051fd84fb06f5sf decision becomes known. A default implementation is provided
b41a0dbe6310c576e96b7ea6910051fd84fb06f5sf which adds an optional <code>X-Cache</code> and
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <code>X-Cache-Detail</code> header to the response.</dd>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd </dl>
0237f43ab925775250e266e479d0a337ff374a4btakashi
0237f43ab925775250e266e479d0a337ff374a4btakashi <p>The developer documentation contains a
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd <a href="developer/new_api_2_4.html">detailed list of API changes</a>.</p>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd </div></div>
898711b68797304101de0882fa576c8908acfae6nd<div class="bottomlang">
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd<p><span>Available Languages: </span><a href="/en/new_features_2_4.html" title="English">&nbsp;en&nbsp;</a> |
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd<a href="/fr/new_features_2_4.html" hreflang="fr" rel="alternate" title="Fran�ais">&nbsp;fr&nbsp;</a></p>
4044e4b6cb07cf7fa8e90676fafffe543c1d439bjim</div><div id="footer">
a8855705fee1545ac35b482d58d03b2e4064b3aend<p class="apache">Copyright 2011 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>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd<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>
b05ab3ff5ab54aa22610b13d56eaba6ddfc3db60nd</body></html>