# Overview of new features in Apache 2.2

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 version 1.3, see the 2.0 new features document.

# Core Enhancements

Authn/Authz
  The bundled authentication and authorization modules have been refactored. There is a new authentication backend provider scheme which greatly eases the construction of new authentication backends.
Caching
  mod_cache
  , mod_disk_cache, and mod_mem_cache have undergone a lot of changes are now considered production-quality. htcacheclean has been introduced to cleanup mod_disk_cache setups.
Proxying
  The new mod_proxy_balancer module provides load balancing services for mod_proxy. The new mod_proxy_ajp module adds support for the `Apache JServ Protocol version 1.3` used by Apache Tomcat.
Regular Expression Library Updated
  Apache 2.2 includes version 5.0 of the Perl Compatible Regular Expression Library (PCRE).
Smart Filtering
  mod_filter
  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.

# Module Enhancements

mod_authnz_ldap
  This module is a port of the 2.0 `mod_auth_ldap` module to the 2.2 `Authn/Authz` framework. New features include using LDAP attribute values and complicated search filters in the Require directive.
mod_info
  Added a new `?config` 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 `httpd -V`.
mod_ssl
  Added a support for RFC 2817, which allows connections to upgrade from clear text to TLS encryption.

# Program Enhancements

httpd
  A new command line option `-M` has been added that lists all modules that are loaded based on the current configuration. Unlike the `-l` option, this list includes DSOs loaded via mod_so.

# Module Developer Changes

APR 1.0 API
  Apache 2.2 uses the APR 1.0 API. All depreciated functions and symbols have been removed from `APR` and `APR-Util`. For details, see the APR Website.
Connection Error Logging
  A new function, `ap_log_cerror` has been added to log errors that occure with the client's connection. When logged, the message includes the client IP address.
Test Configuration Hook Added
  A new hook, `test_config` has been added to aid modules that want to execute special code only when the user passes `-t` to httpd.
Set Threaded MPM's Stacksize
  A new directive, `ThreadStackSize` 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.
Protocol handling for output filters
  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 mod_filter, using the `ap_register_output_filter_protocol` or `ap_filter_protocol` calls.