1 <?xml version='1.0' encoding='UTF-8' ?>
2 <!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
3 <?xml-stylesheet type="text/xsl" href="./style/manual.en.xsl"?>
4 <!-- $LastChangedRevision$ -->
7 Licensed to the Apache Software Foundation (ASF) under one or more
8 contributor license agreements. See the NOTICE file distributed with
9 this work for additional information regarding copyright ownership.
10 The ASF licenses this file to You under the Apache License, Version 2.0
11 (the "License"); you may not use this file except in compliance with
12 the License. You may obtain a copy of the License at
14 http://www.apache.org/licenses/LICENSE-2.0
16 Unless required by applicable law or agreed to in writing, software
17 distributed under the License is distributed on an "AS IS" BASIS,
18 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19 See the License for the specific language governing permissions and
20 limitations under the License.
23 <manualpage metafile="new_features_2_0.xml.meta">
25 <title>Overview of new features in Apache 2.0</title>
28 <p>This document describes some of the major changes between the
29 1.3 and 2.0 versions of the Apache HTTP Server.</p>
32 <seealso><a href="upgrading.html">Upgrading to 2.0 from 1.3</a></seealso>
35 <title>Core Enhancements</title>
38 <dt>Unix Threading</dt>
40 <dd>On Unix systems with POSIX threads support, Apache can
41 now run in a hybrid multiprocess, multithreaded mode. This
42 improves scalability for many, but not all configurations.</dd>
44 <dt>New Build System</dt>
46 <dd>The build system has been rewritten from scratch to be
47 based on <code>autoconf</code> and <code>libtool</code>.
48 This makes Apache's configuration system more similar to
49 that of other packages.</dd>
51 <dt>Multiprotocol Support</dt>
53 <dd>Apache now has some of the infrastructure in place to
54 support serving multiple protocols. <module>mod_echo</module> has
55 been written as an example.</dd>
57 <dt>Better support for non-Unix
60 <dd>Apache 2.0 is faster and more stable on non-Unix
61 platforms such as BeOS, OS/2, and Windows. With the
62 introduction of platform-specific <a
63 href="mpm.html">multi-processing modules</a> (MPMs) and the
64 Apache Portable Runtime (APR), these platforms are now
65 implemented in their native API, avoiding the often buggy and
66 poorly performing POSIX-emulation layers.</dd>
68 <dt>New Apache API</dt>
70 <dd>The API for modules has changed significantly for 2.0.
71 Many of the module-ordering/-priority problems from 1.3 should
72 be gone. 2.0 does much of this automatically, and module ordering
73 is now done per-hook to allow more flexibility. Also, new calls
74 have been added that provide additional module capabilities
75 without patching the core Apache server.</dd>
79 <dd>On systems where IPv6 is supported by the underlying
80 Apache Portable Runtime library, Apache gets IPv6 listening
81 sockets by default. Additionally, the <directive
82 module="mpm_common">Listen</directive>, <directive module="core"
83 >NameVirtualHost</directive>, and <directive module="core"
84 >VirtualHost</directive> directives support
85 IPv6 numeric address strings (e.g., "<code>Listen
86 [2001:db8::1]:8080</code>").</dd>
90 <dd>Apache modules may now be written as filters which act on
91 the stream of content as it is delivered to or from the
92 server. This allows, for example, the output of CGI scripts to
93 be parsed for Server Side Include directives using the
94 <code>INCLUDES</code> filter in <module>mod_include</module>. The
95 module <module>mod_ext_filter</module> allows external programs to
96 act as filters in much the same way that CGI programs can act as
99 <dt>Multilanguage Error Responses</dt>
101 <dd>Error response messages to the browser are now provided in
102 several languages, using SSI documents. They may be customized
103 by the administrator to achieve a consistent look and feel.</dd>
105 <dt>Simplified configuration</dt>
107 <dd>Many confusing directives have been simplified. The often
108 confusing <code>Port</code> and <code>BindAddress</code> directives
109 are gone; only the <directive module="mpm_common">Listen</directive>
110 directive is used for IP address binding; the <directive
111 module="core">ServerName</directive> directive specifies the
112 server name and port number only for redirection and vhost
115 <dt>Native Windows NT Unicode Support</dt>
117 <dd>Apache 2.0 on Windows NT now uses utf-8 for all filename
118 encodings. These directly translate to the underlying Unicode
119 file system, providing multilanguage support for all Windows
120 NT-based installations, including Windows 2000 and Windows XP.
121 <em>This support does not extend to Windows 95, 98 or ME, which
122 continue to use the machine's local codepage for filesystem
125 <dt>Regular Expression Library Updated</dt>
127 <dd>Apache 2.0 includes the <a href="http://www.pcre.org/">Perl
128 Compatible Regular Expression Library</a> (PCRE). All regular
129 expression evaluation now uses the more powerful Perl 5
135 <section id="module">
136 <title>Module Enhancements</title>
139 <dt><module>mod_ssl</module></dt>
141 <dd>New module in Apache 2.0. This module is an interface
142 to the SSL/TLS encryption protocols provided by
145 <dt><module>mod_dav</module></dt>
147 <dd>New module in Apache 2.0. This module implements the HTTP
148 Distributed Authoring and Versioning (DAV) specification for
149 posting and maintaining web content.</dd>
151 <dt><module>mod_deflate</module></dt>
153 <dd>New module in Apache 2.0. This module allows supporting
154 browsers to request that content be compressed before delivery,
155 saving network bandwidth.</dd>
157 <dt><module>mod_auth_ldap</module></dt>
159 <dd>New module in Apache 2.0.41. This module allows an LDAP
160 database to be used to store credentials for HTTP Basic
161 Authentication. A companion module, <module>mod_ldap</module>
162 provides connection pooling and results caching.</dd>
164 <dt><module>mod_auth_digest</module></dt>
166 <dd>Includes additional support for session caching across
167 processes using shared memory.</dd>
169 <dt><module>mod_charset_lite</module></dt>
171 <dd>New module in Apache 2.0. This experimental module allows
172 for character set translation or recoding.</dd>
174 <dt><module>mod_file_cache</module></dt>
176 <dd>New module in Apache 2.0. This module includes the
177 functionality of <code>mod_mmap_static</code> in Apache 1.3,
178 plus adds further caching abilities.</dd>
180 <dt><module>mod_headers</module></dt>
182 <dd>This module is much more flexible in Apache 2.0. It can now
183 modify request headers used by <module>mod_proxy</module>, and
184 it can conditionally set response headers.</dd>
186 <dt><module>mod_proxy</module></dt>
188 <dd>The proxy module has been completely rewritten to take
189 advantage of the new filter infrastructure and to implement a
190 more reliable, HTTP/1.1 compliant proxy. In addition, new
191 <directive module="mod_proxy" type="section">Proxy</directive>
192 configuration sections provide more readable (and internally
193 faster) control of proxied sites; overloaded <code><Directory
194 "proxy:..."></code> configuration are not supported. The module
195 is now divided into specific protocol support modules including
196 <code>proxy_connect</code>, <code>proxy_ftp</code> and
197 <code>proxy_http</code>.</dd>
199 <dt><module>mod_negotiation</module></dt>
201 <dd>A new <directive module="mod_negotiation"
202 >ForceLanguagePriority</directive> directive can be used to assure that
203 the client receives a single document in all cases, rather than
204 NOT ACCEPTABLE or MULTIPLE CHOICES responses. In addition, the
205 negotiation and MultiViews algorithms have been cleaned up to
206 provide more consistent results and a new form of type map that
207 can include document content is provided.</dd>
209 <dt><module>mod_autoindex</module></dt>
211 <dd>Autoindex'ed directory listings can now be configured to
212 use HTML tables for cleaner formatting, and allow finer-grained
213 control of sorting, including version-sorting, and wildcard
214 filtering of the directory listing.</dd>
216 <dt><module>mod_include</module></dt>
218 <dd>New directives allow the default start and end tags for SSI elements
219 to be changed and allow for error and time format configuration
220 to take place in the main configuration file rather than in the
221 SSI document. Results from regular expression parsing and grouping
222 (now based on Perl's regular expression syntax) can be retrieved
223 using <module>mod_include</module>'s variables <code>$0</code>
224 .. <code>$9</code>.</dd>
226 <dt><module>mod_auth_dbm</module></dt>
228 <dd>Now supports multiple types of DBM-like databases using the
229 <directive module="mod_auth_dbm">AuthDBMType</directive>