brian 98/05/11 22:08:42
Modified: htdocs/manual new_features_1_3.html Log: Major rewrite. Reorganized layout into sections. Cleaned up, standardized HTML to make it more readable for those who edit. Revision Changes Path 1.59 +486 -563 apache-1.3/htdocs/manual/new_features_1_3.html Index: new_features_1_3.html =================================================================== RCS file: /export/home/cvs/apache-1.3/htdocs/manual/new_features_1_3.html,v retrieving revision 1.58 retrieving revision 1.59 diff -u -r1.58 -r1.59 --- new_features_1_3.html 1998/05/11 20:08:03 1.58 +++ new_features_1_3.html 1998/05/12 05:08:42 1.59 @@ -4,17 +4,11 @@ </HEAD> <!-- Background white, links blue (unvisited), navy (visited), red (active) --> -<BODY - BGCOLOR="#FFFFFF" - TEXT="#000000" - LINK="#0000FF" - VLINK="#000080" - ALINK="#FF0000" -> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" + VLINK="#000080" ALINK="#FF0000"> <!--#include virtual="header.html" --> -<H1 ALIGN="CENTER">Overview of new features</H1> +<H1 ALIGN="CENTER">Overview of New Features in Apache 1.3</H1> -<H2>New Features with Apache 1.3</H2> <P>New features with this release, as extensions of the Apache functionality. Because the core code has changed so significantly, there are certain liberties that earlier versions of @@ -22,394 +16,350 @@ pickier about - please check the <A HREF="misc/compat_notes.html">compatibility notes</A> if you have any problems.</P> + <P>If you're upgrading from Apache 1.2, you may wish to read -the <A HREF="upgrading_to_1_3.html">upgrade notes</A>.</P> -<HR> +the <A HREF="upgrading_to_1_3.html">upgrade notes</A>. -<P>In addition to a number of bug fixes and internal performance -enhancements, <A HREF="http://www.apache.org/dist/">Apache -1.3</A> has the following specific new user features:</P> +<P>Enhancements: <A HREF="#core">Core</A> | +<A HREF="#perf">Performance</A> | +<A HREF="#config">Configuration</A> | +<A HREF="#mod">Modules</A> | +<A HREF="#api">API</A> | +<A HREF="#misc">Misc</A> + +<P><HR> + +<A NAME="core"> +<H2>Core Enhancements:</H2> +</A> + +<DL> +<DT><B><A HREF="sharedobjects.html">Dynamic Shared Object (DSO) support</A></B> +<DD>Apache modules may now be loaded at runtime; this means that + modules can be loaded into the server process space only when + necessary, thus overall memory usage by Apache will be + significantly reduced. DSO works on Linux, FreeBSD, Solaris, + SunOS, IRIX, OSF1, UnixWare, and AIX. + +<DT><B><A HREF="windows.html">Support for Windows NT/95</A></B> +<DD>Apache now experimentally supports the Windows NT and Windows 95 + operating systems. + +<DT><B><A HREF="sourcereorg.html">Re-organised + Sources</A></B> +<DD>The source files for Apache have been re-organised. The main + difference for Apache users is that the "Module" lines in + <CODE>Configuration</CODE> have been replaced with "AddModule" + with a slightly different syntax. For module authors there are + some changes designed to make it easier for users to add their + module. + +<DT><B>Reliable Piped Logs</B> +<DD>On almost all Unix architectures Apache now implements "reliable" + piped logs in <A + HREF="mod/mod_log_config.html">mod_log_config</A>. Where reliable + means that if the logging child dies for whatever reason, Apache + will recover and respawn it without having to restart the entire + server. Furthermore if the logging child becomes "stuck" and + isn't reading its pipe frequently enough Apache will also restart + it. This opens up more opportunities for log rotation, hit + filtering, real-time splitting of multiple vhosts into separate + logs, and asynchronous DNS resolving on the fly. + +</DL> + +<P><HR> + +<A NAME="performance"> +<H2>Performance Improvements</H2> +</A> <UL> - <LI><A - HREF="mod/mod_speling.html" - ><STRONG>Optional «Spelling Correction» module added to distribution</STRONG></A> - <BR> - This optional module corrects frequently occurring spelling errors in - document names requested from the server. This includes the correction - of miscapitalized requests (as was available in a separately available - <EM>mod_speling</EM> module as of Apache 1.1 already) but extends - spelling correction to single inserted, omitted, transposed or - mistyped characters. This catches the majority of mistyped requests. - To make use of this module, it must be enabled in the server's - <CODE>Configuration</CODE> file, and the - <A HREF="mod/mod_speling.html#checkspelling"><SAMP>CheckSpelling</SAMP></A> - directive must be set to <CODE>on</CODE>. - </LI> - <LI><A - HREF="mod/mod_setenvif.html" - ><STRONG>Enhanced Conditional Setting of Environment Variables</STRONG></A> - <BR> - The - <A - HREF="mod/mod_setenvif.html#BrowserMatch" - ><SAMP>BrowserMatch*</SAMP></A> - directives of Apache 1.2 have been joined by some more powerful - brethren: - <A - HREF="mod/mod_setenvif.html#SetEnvIf" - ><SAMP>SetEnvIf</SAMP></A> - and - <A - HREF="mod/mod_setenvif.html#SetEnvIfNoCase" - ><SAMP>SetEnvIfNoCase</SAMP></A>. These allow you to set environment - variables for server and CGI use based upon all <EM>sorts</EM> of - attributes of the request. - </LI> - <LI><STRONG>Easier navigation in ftp server directory trees</STRONG> - <BR> - When accessing ftp servers using mod_proxy and the ftp method, the - generated directory listings now allow easier navigation. The full - directory path as shown in the header line now consists of a list of - clickable links which directly jump to the selected subdirectory level. - </LI> - <LI><STRONG>Better Logging for Proxy Connect Errors</STRONG> - <BR> - In Apache 1.2 and earlier, when the proxy had difficulty connecting to - a system it would log the error but no details. It now includes the - IP address and port to which it couldn't connect. - </LI> - <LI><A - HREF="mod/mod_include.html#flowctrl" - ><STRONG>Enhanced SSI String Comparisons</STRONG></A> - <BR> - The string-based server-side include (SSI) flow-control directives - provided by - <A - HREF="mod/mod_include.html" - ><SAMP>mod_include</SAMP></A> - now include comparison for less-than (<), less-than-or-equal - (<=), greater-than (>), and greater-than-or-equal (>=). - Previously comparisons could only be made for equality or inequality. - </LI> -<LI><A - HREF="sourcereorg.html" - ><STRONG>Re-organised Sources</STRONG></A> - <BR> - The source files for Apache have been re-organised. The main difference - for Apache users is that the "Module" lines in <CODE>Configuration</CODE> - have been replaced with "AddModule" with a slightly different syntax. - For module authors there are some changes designed to make it - easier for users to add their module. -</LI> -<LI><A - HREF="install.html#install" - ><STRONG>Default Apache directory path changed to <SAMP>/usr/local/apache/</SAMP></STRONG></A> - <BR> - The default directory for the apache ServerRoot changed from the NCSA-compatible - <SAMP>/usr/local/etc/httpd/</SAMP> to <SAMP>/usr/local/apache/</SAMP>. - This change covers only the default setting (and the documentation); it - is of course possible to override it using the <A HREF="invoking.html"> - -d <EM>ServerRoot</EM> and -f <EM>httpd.conf</EM></A> switches when starting apache. -</LI> -<LI><A - HREF="mod/mod_autoindex.html" - ><STRONG>Sortable Directory Listings</STRONG></A> - <BR> - If a directory listing is displayed using - <A - HREF="mod/mod_autoindex.html#indexoptions" - ><SAMP>FancyIndexing</SAMP></A>, - clicking on a column title will now sort the listing in - order by the values in that column. Selecting the column - repeatedly will toggle between ascending and descending order. - This feature can be disabled with the <SAMP>SuppressColumnSorting</SAMP> - <A - HREF="mod/mod_autoindex.html#indexoptions" - >IndexOptions</A> - keyword. -</LI> + <LI>IP-based virtual hosts are looked up via hash table. + <LI><Directory> parsing speedups. + <LI>The critical path for static requests has fewer system calls. + This generally helps all requests. (45 syscalls for a static + request in 1.2 versus 22 in 1.3 in a well tuned + configuration). + <LI><A HREF="mod/mod_proxy.html#proxyreceivebuffersize"> + <CODE>ProxyReceiveBufferSize</CODE></A> directive gives + <CODE>mod_proxy</CODE>'s outgoing connections larger network + buffers, for increased throughput. + <LI>The low level I/O routines use <CODE>writev</CODE> (where + available) to issue multiple writes with a single system call. + They also avoid copying memory into buffers as much as + possible. The result is less CPU time spent on transferring + large files. + <LI>Static requests are served using <CODE>mmap</CODE>, which + means bytes are only copied from the disk buffer to the + network buffer directly by the kernel. The program never + copies bytes around, which reduces CPU time. (Only where + available/tested.) + <LI>When presented with a load spike, the server quickly adapts by + spawning children at faster rates. + <LI>The code which dispatches modules was optimized to avoid + repeatedly skipping over modules that don't implement certain + phases of the API. (This skipping showed up as 5% of the cpu + time on profiles of a server with the default module mix.) + <LI>Revamp of the Unix scoreboard management code so that less + time is spent counting children in various states. Previously + a scan was performed for each hit, now it is performed only + once per second. This should be noticeable on servers running + with hundreds of children and high loads. + <LI>New serialization choices improve performance on Linux, and + IRIX. + <LI><CODE><A + HREF="mod/mod_log_config.html">mod_log_config</A></CODE> can + be compile-time configured to buffer writes. + <LI>Replaced <CODE>strncpy()</CODE> with + <CODE>ap_cpystrn()</CODE>, a routine which doesn't have to + zero-fill the entire result. This has dramatic effects on + <CODE>mod_include</CODE> speed. + <LI>Additions to the internal "table" API (used for keeping lists + of key/value string pairs) provide for up to 20% performance + improvement in many situations. +</UL> + +<P>See <A HREF="misc/perf-tuning.html">the new performance +documentation</A> for more information. + +<P><HR> + +<A NAME="config"> +<H2>Configuration Enhancements</H2> +</A> + +<DL> +<DT><B>Apache Autoconf-style Interface (APACI)</B> +<DD>Until Apache 1.3 there was no real out-of-the-box batch-capable + build and installation procedure for the complete Apache + package. This is now provided by a top-level + <CODE>configure</CODE> script and a corresponding top-level + <CODE>Makefile.tmpl</CODE> file. The goal is to provide a GNU + Autoconf-style frontend which is capable to both drive the old + <CODE>src/Configure</CODE> stuff in batch and additionally + installs the package with a GNU-conforming directory layout. Any + options from the old configuration scheme are available plus a lot + of new options for flexibly customizing Apache. + +<DT><B>APache eXtenSion (APXS) support tool</B> +<DD>Now that Apache provides full support for loading modules under + runtime from dynamic shared object (DSO) files, a new support tool + <CODE>apxs</CODE> was created which provides off-source building, + installing and activating of those DSO-based modules. It + completely hides the platform-dependend DSO-build commands from + the user and provides an easy way to build modules outside the + Apache source tree. To achieve this APACI installs the Apache C + header files together with the <CODE>apxs</CODE> tool. + +<DT><A HREF="install.html#install"><B>Default Apache directory + path changed to <CODE>/usr/local/apache/</CODE></B></A><BR> +<DD>The default directory for the apache ServerRoot changed from the + NCSA-compatible <CODE>/usr/local/etc/httpd/</CODE> to + <CODE>/usr/local/apache/</CODE>. This change covers only the + default setting (and the documentation); it is of course possible + to override it using the <A HREF="invoking.html"> -d + <EM>ServerRoot</EM> and -f <EM>httpd.conf</EM></A> switches when + starting apache. + +<DT><B>Improved HTTP/1.1-style Virtual Hosts</B> +<DD>The new <A + HREF="mod/core.html#namevirtualhost"><CODE>NameVirtualHost</CODE></A> + directive is used to list IP address:port pairs on which + HTTP/1.1-style virtual hosting occurs. This is vhosting based on + the <CODE>Host:</CODE> header from the client. Previously this + address was implicitly the same as the "main address" of the + machine, and this caused no end of problems for users, and was not + powerful enough. Please see the <A + HREF="vhosts/index.html">Apache Virtual Host documentation</A> for + further details on configuration. + +<DT><B><CODE>Include</CODE> directive</B> +<DD>The <A HREF="mod/core.html#include" ><CODE>Include</CODE></A> + directive includes other config files immediately at that point in + parsing. + +<DT><B>-S command line option for debugging vhost setup</B> +<DD>If Apache is invoked with the <CODE>-S</CODE> command line option + it will dump out information regarding how it parsed the + <CODE>VirtualHost</CODE> sections. This is useful for folks + trying to debug their virtual host configuration. + +</DL> + +<P><HR> + +<A NAME="mod"> +<H3>Module Enhancements</H3> +</A> + +<DL> +<DT><A HREF="mod/mod_speling.html"><B>NEW - Spelling correction + module</B></A><BR> +<DD>This optional module corrects frequently occurring spelling and + capitalization errors in document names requested from the server. + +<DT><A HREF="mod/mod_setenvif.html"><B>NEW - Conditional setting of + environment variables</B></A><BR> +<DD>The addition of + <A HREF="mod/mod_setenvif.html#SetEnvIf"> + <CODE>SetEnvIf</CODE></A> and + <A HREF="mod/mod_setenvif.html#SetEnvIfNoCase"> + <CODE>SetEnvIfNoCase</CODE></A>. These allow you to set + environment variables for server and CGI use based upon attributes + of the request. + +<DT><B><A HREF="mod/mod_mime_magic.html">NEW - "Magic" MIME-typing</A></B> +<DD>The optional <CODE>mod_mime_magic</CODE> has been + added. It uses "magic numbers" and other hints from a file's + contents to figure out what the contents are. It then uses this + information to set the file's media type, if it cannot be + determined by the file's extension. + +<DT><B><A HREF="mod/mod_unique_id.html">NEW - Unique Request + Identifiers</A></B> +<DD><A HREF="mod/mod_unique_id.html">mod_unique_id</A> can be included + to generate a unique identifier that distinguishes a hit from + every other hit. ("Unique" has some restrictions on it.) The + identifier is available in the environment variable + <CODE>UNIQUE_ID</CODE>. + +<DT><B>mod_proxy enhancements:</B> +<UL> <LI><A - HREF="mod/mod_autoindex.html#indexoptions" - ><STRONG><SAMP>SuppressHTMLPreamble</SAMP> Option for - FancyIndexed Directories</STRONG></A> - <BR> - If a directory is marked for display with FancyIndexing, the listing - page usually follows a predefined format using server-generated HTML. - <STRONG>If</STRONG> the <SAMP>IndexOptions</SAMP> directive for the directory - includes the <SAMP>SuppressHTMLPreamble</SAMP> option, - <STRONG>and</STRONG> a file specified by the - <A - HREF="mod/mod_autoindex.html#headername" - ><SAMP>HeaderName</SAMP></A> - directive is found in the directory, <STRONG>and</STRONG> the header - file is recognized as containing HTML (determined by the file - extension), <STRONG>then</STRONG> the module will assume that the - header file contains the necessary introductory HTML tags and will not - generate them itself. -</LI> -<LI><STRONG>Less Buffering of CGI Script Output</STRONG> - <BR> - In previous versions of Apache, the output from CGI scripts would be - internally buffered by the server, and wouldn't be forwarded to the - client until either the buffers were full or the CGI script completed. - As of Apache 1.3, the buffer to the client is flushed any time it - contains something and the server is waiting for more information from - the script. This allows CGI script to provide partial status reports - during long processing operations. -</LI> -<LI><STRONG><A HREF="windows.html">Support for Windows NT/95</A></STRONG><BR> -Apache now supports the Windows NT and Windows 95 operating systems, -as well as the Unix systems supported in previous releases. Although the -Windows version of Apache may not be perform as well as on the Unix -systems for which Apache was originally written, the ability to run on -Windows gives Apache the ability to run on a large number of web -servers it was not previously able to. -</LI> -<LI><STRONG><A HREF="ebcdic.html">Port to EBCDIC mainframe machine running BS2000/OSD</A></STRONG><BR> -As a premiere, this version of Apache comes with a beta version of a port -to a mainframe machine which uses the EBCDIC character set as its native -codeset (It is the SIEMENS NIXDORF family of mainframes running the -BS2000/OSD operating system on a IBM/390 compatible processor -This mainframe OS nowadays features a SVR4-like POSIX subsystem).<BR> -Provisions to convert between EBCDIC documents and the ASCII encoded -HTTP protocol have been integrated into Apache, and most of -the provided Apache modules have been ported to this platform. -</LI> -<LI><STRONG><A HREF="mod/mod_alias.html">Regular Expression support for -<SAMP>Alias</SAMP> and <SAMP>Redirect</SAMP></A></STRONG> -<BR> -New <A HREF="mod/mod_alias.html#aliasmatch"><SAMP>AliasMatch</SAMP></A>, -<A HREF="mod/mod_alias.html#scriptaliasmatch" -><SAMP>ScriptAliasMatch</SAMP></A>, and -<A HREF="mod/mod_alias.html#redirectmatch"><SAMP>RedirectMatch</SAMP></A> -directives allow for the use of regular expression matching. -Additionally, new -<A HREF="mod/core.html#directorymatch"><SAMP><DirectoryMatch></SAMP></A>, -<A HREF="mod/core.html#locationmatch"><SAMP><LocationMatch></SAMP></A>, -and -<A HREF="mod/core.html#filesmatch"><SAMP><FilesMatch></SAMP></A> -sections provide a new syntax for regular expression sectioning. - -<LI><STRONG><A HREF="mod/mod_mime_magic.html">New "Magic" MIME-typing - module</A></STRONG><BR> - A new module, the optional <CODE>mod_mime_magic</CODE>, has been - added. It uses "magic numbers" and other hints from a file's contents - to figure out what the contents are. It then uses this information to - set the file's media type, if it cannot be determined by the file's - extension. - -<LI><STRONG>Directory indexing modules split</STRONG><BR> - The <CODE>mod_dir</CODE> module has been split in two, with - <A HREF="mod/mod_dir.html">mod_dir</A> handling directory index - files, and <A HREF="mod/mod_autoindex.html">mod_autoindex</A> - creating directory listings. Thus allowing folks to remove - the indexing function from critical servers. + HREF="mod/mod_proxy.html#noproxy"><CODE>NoProxy</CODE></A> and <A + HREF="mod/mod_proxy.html#proxydomain"><CODE>ProxyDomain</CODE></A> + directives added to proxy, useful for intranets. +<LI>New <CODE><A HREF="mod/mod_proxy.html#proxypassreverse"> + ProxyPassReverse</A></CODE> directive. It lets Apache adjust the + URL in the <TT>Location</TT> header on HTTP redirect + responses. +<LI>Easier navigation in ftp server directory trees. +</UL> - <LI><STRONG>Support for Directory Icon Sizing</STRONG> - <BR> - The - <A - HREF="mod/mod_autoindex.html" - ><SAMP>mod_autoindex</SAMP></A> - module provides listings of directory contents when appropriate. If - the <SAMP>FancyIndexing</SAMP> option is enabled, each file in the - list is preceded by an icon representing the content type. In earlier - versions of Apache, the HTML <SAMP>IMG</SAMP> tags for these icons - weren't sized, so the browser had to wait until the images were loaded - before it could lay out the page. With 1.3, the - <A - HREF="mod/mod_autoindex.html#indexoptions" - ><SAMP>IndexOptions</SAMP></A> - directive has two new keywords which allow you to control whether - pre-sized <SAMP>IMG</SAMP> tags are used. This can substantially - speed up the display of large directory listings. - -<LI><STRONG><A HREF="mod/core.html#accessfilename"><SAMP>AccessFileName</SAMP> -Enhancement</A></STRONG><BR> -The <SAMP>AccessFileName</SAMP> directive can now take more than one -filename. This lets sites serving pages from network file systems and -more than one Apache web server, configure access based on the server -through which shared pages are being served. - -<LI><STRONG><SAMP>HostNameLookups</SAMP> now defaults to "Off"</STRONG><BR> - The <A - HREF="mod/core.html#hostnamelookups"><SAMP>HostNameLookups</SAMP></A> - directive now defaults to "Off". This means that, unless explicitly - turned on, the server will not resolve IP addresses into names. This - was done to spare the Internet from unnecessary DNS traffic. +<DT><A HREF="mod/mod_include.html#flowctrl"><B>Enhanced + <CODE>mod_include</CODE> string comparisons</B></A><BR> +<DD>The string-based server-side include (SSI) flow-control directives + now include comparison for less-than (<), less-than-or-equal + (<=), greater-than (>), and greater-than-or-equal (>=). + Previously comparisons could only be made for equality or + inequality. + +<DT><B>ServerRoot relative auth filenames</B> +<DD>Auth filenames for the various authentication modules are now + treated as relative to the ServerRoot if they are not full paths. -<LI><STRONG>Double-Reverse DNS enforced</STRONG><BR> - The - <A HREF="mod/core.html#hostnamelookups"><SAMP>HostnameLookups</SAMP></A> - directive - now supports double-reverse DNS. (Known as <EM>PARANOID</EM> in the - terminology of tcp_wrappers.) An IP address passes a double-reverse - DNS test if the forward map of the reverse map includes the original - IP. Regardless of the HostnameLookups setting, - <A HREF="mod/mod_access.html">mod_access</A> access lists using DNS - names <STRONG>require</STRONG> all names to pass a double-reverse DNS test. - (Prior versions of Apache required a compile-time switch to enable - double-reverse DNS.) - -<LI><STRONG>CIDR and Netmask access control</STRONG><BR> - <A HREF="mod/mod_access.html">mod_access</A> directives now support - CIDR (Classless Inter-Domain Routing) style prefixes, and netmasks for - greater control over IP access lists. - -<LI><STRONG><A HREF="mod/mod_proxy.html#noproxy"><SAMP>NoProxy</SAMP></A> -and <A HREF="mod/mod_proxy.html#proxydomain"><SAMP>ProxyDomain</SAMP></A> -directives added to proxy, useful for intranets.</STRONG> - -<LI><STRONG><A HREF="mod/mod_info.html#addmoduleinfo" -><SAMP>AddModuleInfo</SAMP></A> -directive added to <A HREF="mod/mod_info.html">mod_info</A></STRONG><BR> -Allows additional information to be listed along with a specified module. - -<LI><STRONG>Experimental module to load modules at runtime on Unix</STRONG><BR> - The new module <SAMP><A HREF="mod/mod_so.html">mod_so</A></SAMP> - enables the addition of modules when Apache is started, rather - than requiring a recompilation. This is currently experimental, - and replaces the old <SAMP>mod_dld</SAMP> module. - -<LI><STRONG>Performance Improvements</STRONG> - <UL> - <LI>IP-based virtual hosts are looked up via hash table, - giving a performance boost on servers with large numbers of vhosts. - <LI><Directory> parsing of requests has been vastly improved, giving - speedups on configs with a lot of sections. - <LI>The critical path for static requests has fewer system calls. This - generally helps all requests. (45 syscalls for a static request - in 1.2 versus 22 in 1.3 in a well tuned configuration). - <LI><A HREF="mod/mod_proxy.html#proxyreceivebuffersize" - ><SAMP>ProxyReceiveBufferSize</SAMP></A> - directive gives <CODE>mod_proxy</CODE>'s outgoing connections - larger network buffers, for increased throughput. - <LI>The low level I/O routines use <CODE>writev</CODE> (where available) - to issue multiple writes with a single system call. They also avoid - copying memory into buffers as much as possible. The result is - less CPU time spent on transferring large files. - <LI>Static requests are served using - <CODE>mmap</CODE>, which means bytes are only copied from the - disk buffer to the network buffer directly by the kernel. The - program never copies bytes around, which reduces CPU time. - (Only where available/tested.) - <LI>When presented with a load spike, the server quickly adapts by - spawning children at faster rates. - <LI>The code which dispatches modules was optimized to avoid repeatedly - skipping over modules that don't implement certain phases of the - API. (This skipping showed up as 5% of the cpu time on profiles of - a server with the default module mix.) - <LI>Revamp of the Unix scoreboard management code so that less time is - spent counting children in various states. Previously a scan was - performed for each hit, now it is performed only once per second. - This should be noticeable on servers running with hundreds of - children and high loads. - <LI>New serialization choices improve performance on Linux, and IRIX. - <LI><CODE><A HREF="mod/mod_log_config.html">mod_log_config</A></CODE> - can be compile-time configured to buffer writes. - <LI>Replaced <CODE>strncpy()</CODE> with <CODE>ap_cpystrn()</CODE>, a - routine which doesn't have to zero-fill the entire result. This - has dramatic effects on <CODE>mod_include</CODE> speed. - <LI>Additions to the internal "table" API (used for keeping lists of - key/value string pairs) provide for up to 20% performance - improvement in many situations. - </UL> - - <P>See <A HREF="misc/perf-tuning.html">the new performance - documentation</A> for more information. - -<LI><STRONG>Unique Identifiers</STRONG><BR> - <A HREF="mod/mod_unique_id.html">mod_unique_id</A> can be included - to generate a unique identifier that distinguishes a hit from every - other hit. ("Unique" has some restrictions on it.) The identifier - is available in the environment variable <CODE>UNIQUE_ID</CODE>. - -<LI><STRONG>Reliable Piped Logs</STRONG><BR> - On almost all Unix architectures Apache now implements "reliable" - piped logs in <A HREF="mod/mod_log_config.html">mod_log_config</A>. - Where reliable means that if the logging child dies for whatever - reason, Apache will recover and respawn it without having to restart - the entire server. Furthermore if the logging child becomes "stuck" - and isn't reading its pipe frequently enough Apache will also restart - it. This opens up more opportunities for log rotation, hit filtering, - real-time splitting of multiple vhosts into separate logs, and - asynchronous DNS resolving on the fly. - -<LI><STRONG>LogLevel and syslog support</STRONG><BR> - Apache now has <A HREF="mod/core.html#loglevel">configurable error - logging levels</A> and supports <A HREF="mod/core.html#errorlog">error - logging via syslogd(8)</A>. - -<LI><STRONG>ServerRoot relative auth filenames</STRONG><BR> - Auth filenames for the various authentication modules are now treated - as relative to the ServerRoot if they are not full paths. - -<LI><STRONG><SAMP>Include</SAMP> directive</STRONG><BR> - The - <A - HREF="mod/core.html#include" - ><SAMP>Include</SAMP></A> - directive includes other config files immediately at that - point in parsing. - -<LI><STRONG>Absence of any <SAMP>TransferLog</SAMP> disables logging</STRONG> - <BR> - If no <A HREF="mod/mod_log_config.html#transferlog" - ><SAMP>TransferLog</SAMP></A> - directive is given then no log is written. This supports co-existence - with other logging modules. -<LI><STRONG>Ability to name logging formats</STRONG> - <BR> - The - <A - HREF="mod/mod_log_config.html#logformat" - ><SAMP>LogFormat</SAMP></A> - directive has been enhanced to allow you to give nicknames to - specific logging formats. You can then use these nicknames in other - <SAMP>LogFormat</SAMP> - and - <A - HREF="mod/mod_log_config.html#customlog" - ><SAMP>CustomLog</SAMP></A> - directives, rather than having to spell out the complete log format - string each time. -</LI> -<LI><STRONG>mod_cern_meta configurable per-directory</STRONG><BR> - <A HREF="mod/mod_cern_meta.html">mod_cern_meta</A> is now configurable - on a per-directory basis. - -<LI><STRONG>Detaching from stdin/out/err</STRONG><BR> - On boot Apache will now detach from stdin, stdout, and stderr. It - does not detach from stderr until it has successfully read the config - files. So you will see errors in the config file. This should make - it easier to start Apache via rsh or crontab. - -<LI><STRONG>Improved HTTP/1.1-style Virtual Hosts</STRONG><BR> - The new - <A HREF="mod/core.html#namevirtualhost"><SAMP>NameVirtualHost</SAMP></A> - directive is used to list IP address:port - pairs on which HTTP/1.1-style virtual hosting occurs. This is - vhosting based on the <CODE>Host:</CODE> header from the client. - Previously this address was implicitly the same as the "main address" - of the machine, and this caused no end of problems for users, and - was not powerful enough. - Please see the <A HREF="vhosts/index.html">Apache Virtual Host - documentation</A> for further details on configuration. +<DT><A HREF="mod/mod_autoindex.html"><B>Enhancements to directory indexing:</B></A> -<LI><STRONG>API Additions</STRONG><BR> - - For all those module writers and code hackers: +<UL> +<LI><B>Code split:</B>The <CODE>mod_dir</CODE> module has been split in two, with <A + HREF="mod/mod_dir.html">mod_dir</A> handling directory index + files, and <A HREF="mod/mod_autoindex.html">mod_autoindex</A> + creating directory listings. Thus allowing folks to remove the + indexing function from critical servers. - <UL> - <LI><STRONG><CODE>child_init</CODE> function for module API</STRONG><BR> - A new phase for Apache's API is called once per "heavy-weight process," +<LI><B>Sortable:</B> Clicking on a column title will now sort the + listing in order by the values in that column. This feature can + be disabled using the <CODE>SuppressColumnSorting</CODE> <A + HREF="mod/mod_autoindex.html#indexoptions">IndexOptions</A> + keyword. + +<LI><A HREF="mod/mod_autoindex.html#indexoptions"> + <CODE><B>SuppressHTMLPreamble</B></CODE></A> can be used if your + README.html file includes its own HTML header. + +<LI><B><CODE>IconHeight</CODE> and <CODE>IconWidth</CODE></B> let you set + height and width attributes to the <CODE><IMG></CODE> tag in + directory listings. + +</UL> + +<DT><B>Less Buffering of CGI Script Output</B> +<DD>In previous versions of Apache, the output from CGI scripts would + be internally buffered by the server, and wouldn't be forwarded to + the client until either the buffers were full or the CGI script + completed. As of Apache 1.3, the buffer to the client is flushed + any time it contains something and the server is waiting for more + information from the script. This allows CGI script to provide + partial status reports during long processing operations. + + +<DT><B><A HREF="mod/mod_alias.html">Regular Expression support for + <CODE>Alias</CODE> and <CODE>Redirect</CODE></A></B> +<DD>New <A HREF="mod/mod_alias.html#aliasmatch"><CODE>AliasMatch</CODE></A>, + <A HREF="mod/mod_alias.html#scriptaliasmatch"><CODE>ScriptAliasMatch</CODE></A>, and + <A HREF="mod/mod_alias.html#redirectmatch"><CODE>RedirectMatch</CODE></A> + directives allow for the use of regular expression matching. + Additionally, new + <A HREF="mod/core.html#directorymatch"><CODE><DirectoryMatch></CODE></A>, + <A HREF="mod/core.html#locationmatch"><CODE><LocationMatch></CODE></A>, + and + <A HREF="mod/core.html#filesmatch"><CODE><FilesMatch></CODE></A> + sections provide a new syntax for regular expression sectioning. + +<DT><B><A + HREF="mod/mod_info.html#addmoduleinfo"><CODE>AddModuleInfo</CODE></A> + directive added to <A + HREF="mod/mod_info.html">mod_info</A></B> +<DD>Allows additional information to be listed along with a specified + module. + +<DT><B>Absence of any <CODE>TransferLog</CODE> disables + logging</B> +<DD>If no <A HREF="mod/mod_log_config.html#transferlog" + ><CODE>TransferLog</CODE></A> directive is given then no log is + written. This supports co-existence with other logging modules. + +<DT><B>Ability to name logging formats</B> +<DD>The <A + HREF="mod/mod_log_config.html#logformat"><CODE>LogFormat</CODE></A> + directive has been enhanced to allow you to give nicknames to + specific logging formats. You can then use these nicknames in + other <CODE>LogFormat</CODE> and <A + HREF="mod/mod_log_config.html#customlog" + ><CODE>CustomLog</CODE></A> directives, rather than having to + spell out the complete log format string each time. + +<DT><B>mod_cern_meta configurable per-directory</B> +<DD><A HREF="mod/mod_cern_meta.html">mod_cern_meta</A> is now + configurable on a per-directory basis. + +<DT><B>New map types for + <A HREF="mod/mod_rewrite.html#RewriteMap"><CODE>RewriteMap</CODE></A> + directive</B> +<DD>The new map types `Randomized Plain Text' and `Internal Function' + were added to the <CODE>RewriteMap</CODE> directive of + mod_rewrite. They provide two new features: First, you now can + randomly choose a sub-value from a value which was looked-up in a + rewriting map (which is useful when choosing between backend + servers in a Reverse Proxy situation). Second, you now can + translate URL parts to fixed (upper or lower) case (which is + useful when doing mass virtual hosting by the help of + mod_rewrite). + +<DT><B>CIDR and Netmask access control</B> +<DD><A HREF="mod/mod_access.html">mod_access</A> directives now + support CIDR (Classless Inter-Domain Routing) style prefixes, and + netmasks for greater control over IP access lists. + +</DL> +<P><HR> + +<A NAME="api"> +<H3>API Additions</H3> +</A> + +<P>For all those module writers and code hackers: + +<DL> +<DT><B><CODE>child_init</CODE></B> +<DD>A new phase for Apache's API is called once per "heavy-weight process," before any requests are handled. This allows the module to set up anything that need to be done once per processes. For example, connections to databases. - <LI><STRONG><CODE>child_exit</CODE> function for module API</STRONG><BR> - A new phase called once per "heavy-weight process," when it is +<DT><B><CODE>child_exit</CODE></B> +<DD>A new phase called once per "heavy-weight process," when it is terminating. Note that it can't be called in some fatal cases (such as segfaults and kill -9). The <CODE>child_init</CODE> and <CODE>child_exit</CODE> functions are passed a pool whose lifetime is @@ -418,30 +368,27 @@ the module <CODE>init</CODE> function is passed a pool whose lifetime ends when the parent exits or restarts. - <LI><STRONG><CODE>child_terminate</CODE></STRONG><BR> - Used in the child to indicate the child should exit after finishing +<DT><B><CODE>child_terminate</CODE></B> +<DD>Used in the child to indicate the child should exit after finishing the current request. - <LI><STRONG><CODE>register_other_child</CODE></STRONG><BR> - See <CODE>http_main.h</CODE>. This is used in the parent to register +<DT><B><CODE>register_other_child</CODE></B> +<DD>See <CODE>http_main.h</CODE>. This is used in the parent to register a child for monitoring. The parent will report status to a supplied callback function. This allows modules to create their own children which are monitored along with the httpd children. - <LI><STRONG><CODE>piped_log</CODE></STRONG><BR> - See <CODE>http_log.h</CODE>. This API provides the common code for +<DT><B><CODE>piped_log</CODE></B> +<DD>See <CODE>http_log.h</CODE>. This API provides the common code for implementing piped logs. In particular it implements a reliable piped log on architectures supporting it (<EM>i.e.</EM>, Unix at the moment). - - <LI><STRONG>MD5 functions renamed <CODE>ap_*</CODE></STRONG><BR> - MD5 functions renamed to avoid conflicts with other libraries. - <LI><STRONG>scoreboard format changed</STRONG><BR> - The scoreboard format is quite different. It is considered a +<DT><B>scoreboard format changed</B> +<DD>The scoreboard format is quite different. It is considered a "private" interface in general, so it's only mentioned here as an FYI. - <LI><STRONG><CODE>set_last_modified</CODE> split into three</STRONG><BR> - The old function <CODE>set_last_modified</CODE> performed multiple +<DT><B><CODE>set_last_modified</CODE> split into three</B> +<DD>The old function <CODE>set_last_modified</CODE> performed multiple jobs including the setting of the <CODE>Last-Modified</CODE> header, the <CODE>ETag</CODE> header, and processing conditional requests (such as IMS). These functions have been split into three functions: @@ -450,36 +397,36 @@ added to <CODE>request_rec</CODE> to facilitate <CODE>meets_conditions</CODE>. - <LI><STRONG>New error logging function: <CODE>aplog_error</CODE></STRONG><BR> - All old logging functions are deprecated, we are in the process of - replacing them with a single function called <CODE>aplog_error</CODE>. +<DT><B>New error logging function: <CODE>ap_log_error</CODE></B> +<DD>All old logging functions are deprecated, we are in the process of + replacing them with a single function called <CODE>ap_log_error</CODE>. This is still a work in progress. - <LI><STRONG><CODE>set_file_slot</CODE> for config parsing</STRONG><BR> - The <CODE>set_file_slot</CODE> routine provides a standard routine that +<DT><B><CODE>set_file_slot</CODE> for config parsing</B> +<DD>The <CODE>set_file_slot</CODE> routine provides a standard routine that prepends ServerRoot to non-absolute paths. - <LI><STRONG><CODE>post_read_request</CODE> module API</STRONG><BR> - This request phase occurs immediately after reading the request (headers), +<DT><B><CODE>post_read_request</CODE> module API</B> +<DD>This request phase occurs immediately after reading the request (headers), and immediately after creating an internal redirect. It is most useful for setting environment variables to affect future phases. - <LI><STRONG><CODE>psocket</CODE>, and <CODE>popendir</CODE></STRONG><BR> - The <CODE>psocket</CODE> and <CODE>pclosesocket</CODE> functions allow +<DT><B><CODE>psocket</CODE>, and <CODE>popendir</CODE></B> +<DD>The <CODE>psocket</CODE> and <CODE>pclosesocket</CODE> functions allow for race-condition free socket creation with resource tracking. Similarly <CODE>popendir</CODE> and <CODE>pclosedir</CODE> protect directory reading. - <LI><STRONG><CODE>is_initial_req</CODE></STRONG><BR> - Test if the request is the initial request (<EM>i.e.</EM>, the one +<DT><B><CODE>is_initial_req</CODE></B> +<DD>Test if the request is the initial request (<EM>i.e.</EM>, the one coming from the client). - <LI><STRONG><CODE>kill_only_once</CODE></STRONG><BR> - An option to <CODE>spawn_child</CODE> functions which prevents Apache +<DT><B><CODE>kill_only_once</CODE></B> +<DD>An option to <CODE>spawn_child</CODE> functions which prevents Apache from aggressively trying to kill off the child. - <LI><STRONG><CODE>alloc debugging code</CODE></STRONG><BR> - Defining <CODE>ALLOC_DEBUG</CODE> provides a rudimentary memory +<DT><B><CODE>alloc debugging code</CODE></B> +<DD>Defining <CODE>ALLOC_DEBUG</CODE> provides a rudimentary memory debugger which can be used on live servers with low impact -- it sets all allocated and freed memory bytes to 0xa5. Defining <CODE>ALLOC_USE_MALLOC</CODE> will cause the alloc code to use @@ -488,170 +435,146 @@ such as Electric Fence and Purify. See <CODE>main/alloc.c</CODE> for more details. - <LI><STRONG><CODE>ap_cpystrn</CODE></STRONG><BR> - The new <CODE>strncpy</CODE> "lookalike", with slightly different +<DT><B><CODE>ap_cpystrn</CODE></B> +<DD>The new <CODE>strncpy</CODE> "lookalike", with slightly different semantics is much faster than <CODE>strncpy</CODE> because it doesn't have to zero-fill the entire buffer. - <LI><STRONG><CODE>table_addn</CODE>, <CODE>table_setn</CODE>, - <CODE>table_mergen</CODE></STRONG><BR> - These new functions do <STRONG>not</STRONG> call <CODE>pstrdup</CODE> +<DT><B><CODE>table_addn</CODE>, <CODE>table_setn</CODE>, + <CODE>table_mergen</CODE></B> +<DD>These new functions do <B>not</B> call <CODE>pstrdup</CODE> on their arguments. This provides for big speedups. There is also some debugging support to ensure code uses them properly. See <CODE>src/CHANGES</CODE> for more information. - <LI><STRONG><CODE>construct_url</CODE></STRONG><BR> - The function prototype for this changed from taking a +<DT><B><CODE>construct_url</CODE></B> +<DD>The function prototype for this changed from taking a <CODE>server_rec *</CODE> to taking a <CODE>request_rec *</CODE>. - <LI><STRONG><CODE>get_server_name</CODE>, <CODE>get_server_port</CODE></STRONG><BR> - These are wrappers which deal with the +<DT><B><CODE>get_server_name</CODE>, <CODE>get_server_port</CODE></B> +<DD>These are wrappers which deal with the <A HREF="mod/core.html#usecanonicalname">UseCanonicalName</A> directive when retrieving the server name and port for a request. +</DL> - </UL> +<P><HR> - <LI><STRONG>Year-2000 Improvements</STRONG> - <BR> - The default <SAMP>timefmt</SAMP> string used by - <A - HREF="mod/mod_include.html" - ><SAMP>mod_include</SAMP></A> - has been modified to display the year using four digits rather than the - two-digit format used previously. The - <A - HREF="mod/mod_autoindex.html" - ><SAMP>mod_autoindex</SAMP></A> - module has also been modified to display years using four digits in - FancyIndexed directory listings. - </LI> - - <LI><STRONG><SAMP>ap_*()</SAMP> Routines Moving to a Separate Library</STRONG> - <BR> - There are a number of functions and routines that have been developed - for the Apache project that supplement or supersede library routines - that differ from one operating system to another. While most of these - are used only by the Apache server itself, some are referenced by - supporting applications (such as <SAMP>htdigest</SAMP>), and these - other applications would fail to build because the routines were built - only into the server. These routines are now being migrated to a - separate subdirectory and library so they can be used by other - applications than just the server. - </LI> - - <LI><STRONG>New <SAMP><A HREF="mod/core.html#serversignature">ServerSignature</A></SAMP> directive</STRONG> - <BR> - This directive optionally adds a line containing the server version and - virtual host name to server-generated pages (error documents, ftp - directory listings, mod_info output etc.). This makes it easier for users - to tell which server produced the error message, especially in a proxy - chain (often found in intranet environments). - </LI> - - <LI><STRONG>New <SAMP><A HREF="mod/core.html#usecanonicalname">UseCanonicalName</A></SAMP> directive</STRONG> - <BR> - This directive gives control over how Apache creates self-referential URLs. - Previously Apache would always use the <A HREF="mod/core.html#servername"> - ServerName</A> and <A HREF="mod/core.html#port">Port</A> directives to - construct a "canonical" name for the server. With <SAMP>UseCanonicalName - off</SAMP> Apache will use the hostname and port supplied by the client, - if available. - </LI> - - <LI><STRONG>New <SAMP><A HREF="mod/mod_proxy.html#proxypassreverse">ProxyPassReverse</A></SAMP> directive</STRONG> - <BR> - This directive was added in addition to the <SAMP>ProxyPass</SAMP> - directive. It lets Apache adjust the URL in the <TT>Location</TT> header on - HTTP redirect responses. For instance this is essential when Apache is used - as a reverse proxy to avoid by-passing the reverse proxy because of HTTP - redirects on the backend servers which stay behind the reverse proxy. - </LI> - - <LI><STRONG>New map types for - <A HREF="mod/mod_rewrite.html#RewriteMap"><SAMP>RewriteMap</SAMP></A> - directive</STRONG> - <BR> - The new map types `Randomized Plain Text' and `Internal Function' were added - to the <SAMP>RewriteMap</SAMP> directive of mod_rewrite. They provide two - new features: First, you now can randomly choose a sub-value from a value - which was looked-up in a rewriting map (which is useful when choosing - between backend servers in a Reverse Proxy situation). Second, you now can - translate URL parts to fixed (upper or lower) case (which is useful when - doing mass virtual hosting by the help of mod_rewrite). - </LI> - <LI><STRONG><SAMP>SERVER_VERSION</SAMP> definition abstracted, and - server build date added</STRONG> - <BR> - In earlier versions, the Apache server version was available to modules - through the <SAMP>#define</SAMP>d value for <SAMP>SERVER_VERSION</SAMP>. - In order to keep this value consistent when modules and the core server - are compiled at different times, this information is now available - through the core API routine - <CODE>const char *apapi_get_server_version()</CODE>. The use of - the <SAMP>SERVER_VERSION</SAMP> symbol is deprecated and anti-recommended. - In addition, a related datum is now available through the use of the - API routine <CODE>const char *apapi_get_server_built()</CODE>, - which returns a string representing the time the core server was linked. - </LI> - <LI><STRONG>Apache Autoconf-style Interface (APACI)</STRONG> - <BR> - Until Apache 1.3 there was no real out-of-the-box batch-capable build and - installation procedure for the complete Apache package. This is now provided - by a top-level <CODE>configure</CODE> script and a corresponding top-level - <CODE>Makefile.tmpl</CODE> file. The goal is to provide a GNU Autoconf-style - frontend which is capable to both drive the old <CODE>src/Configure</CODE> - stuff in batch and additionally installs the package with a GNU-conforming - directory layout. Any options from the old configuration scheme are - available plus a lot of new options for flexibly customizing Apache. - </LI> - <LI><STRONG>Dynamic Shared Object (DSO) support</STRONG> - <BR> - The support for loading Apache modules under runtime from DSO files was - greatly enhanced: First, <CODE>mod_so</CODE> was cleaned up and the - <CODE>src/Configure</CODE> script was extended to setup the totally - platform-dependend commands to build DSO files on all major Unix platforms - which support the pragmatic <CODE>dlopen()</CODE> interface (Linux, FreeBSD, - Solaris, SunOS, IRIX, OSF1, UnixWare). The two popular platforms HP/UX and - AIX are not supported because they both use a very special proprietary - interface. Second the modules <CODE>mod_proxy</CODE> and - <CODE>mod_mime</CODE> were unbundled to be able to use them independend from - each other. Finally the Makefile generation stuff in - <CODE>src/Configure</CODE> was overhauled to support building shared objects - as clean as building static objects. Additionally the new APACI (see below) - provides a powerful mechanism for out-of-the-box enabling, building, - installing and activating those DSO-based modules. - </LI> - <LI><STRONG>APache eXtenSion (APXS) support tool</STRONG> - <BR> - Now that Apache provides full support for loading modules under runtime from - dynamic shared object (DSO) files, a new support tool <CODE>apxs</CODE> was - created which provides off-source building, installing and activating of - those DSO-based modules. It completely hides the platform-dependend - DSO-build commands from the user and provides an easy way to build modules - outside the Apache source tree. To achieve this APACI installs the Apache C - header files together with the <CODE>apxs</CODE> tool. - </LI> - <li><strong>-S command line option for debugging vhost setup</strong> - <br> - If Apache is invoked with the <code>-S</code> command line option it will - dump out information regarding how it parsed the <code>VirtualHost</code> - sections. This is useful for folks trying to debug their virtual host - configuration. - </li> - <LI><A - HREF="mod/core.html#servertokens" - ><STRONG>Including the operating system in the server - identity</STRONG></A> - <BR> - A new directive, <SAMP>ServerTokens</SAMP>, allows the Webmaster - to change the value of the <SAMP>Server</SAMP> response header - field which is sent back to clients. The <SAMP>ServerTokens</SAMP> - directive controls whether the server will include a non-specific - note in the server identity about the type of operating system on - which the server is running as well as included module information. - As of Apache 1.3, this additional information is included by default. - </LI> -</UL> +<A NAME="misc"> +<H3>Miscellanous Enhancements</H3> +</A> + +<DL> +<DT><B><A HREF="ebcdic.html">Port to EBCDIC mainframe machine + running BS2000/OSD</A></B> +<DD>As a premiere, this version of Apache comes with a beta version of + a port to a mainframe machine which uses the EBCDIC character set + as its native codeset (It is the SIEMENS NIXDORF family of + mainframes running the BS2000/OSD operating system on a IBM/390 + compatible processor This mainframe OS nowadays features a + SVR4-like POSIX subsystem). + +<DT><B><A HREF="mod/core.html#accessfilename"><CODE>AccessFileName</CODE> + Enhancement</A></B> +<DD>The <CODE>AccessFileName</CODE> directive can now take more than + one filename. This lets sites serving pages from network file + systems and more than one Apache web server, configure access + based on the server through which shared pages are being served. + +<DT><B><CODE>HostNameLookups</CODE> now defaults to "Off"</B> +<DD>The <A + HREF="mod/core.html#hostnamelookups"><CODE>HostNameLookups</CODE></A> + directive now defaults to "Off". This means that, unless explicitly + turned on, the server will not resolve IP addresses into names. This + was done to spare the Internet from unnecessary DNS traffic. + +<DT><B>Double-Reverse DNS enforced</B> +<DD>The <A + HREF="mod/core.html#hostnamelookups"><CODE>HostnameLookups</CODE></A> + directive now supports double-reverse DNS. (Known as + <EM>PARANOID</EM> in the terminology of tcp_wrappers.) An IP + address passes a double-reverse DNS test if the forward map of the + reverse map includes the original IP. Regardless of the + HostnameLookups setting, <A + HREF="mod/mod_access.html">mod_access</A> access lists using DNS + names <B>require</B> all names to pass a double-reverse + DNS test. (Prior versions of Apache required a compile-time + switch to enable double-reverse DNS.) + +<DT><B>LogLevel and syslog support</B> +<DD>Apache now has <A HREF="mod/core.html#loglevel">configurable error + logging levels</A> and supports <A + HREF="mod/core.html#errorlog">error logging via syslogd(8)</A>. + +<DT><B>Detaching from stdin/out/err</B> +<DD>On boot Apache will now detach from stdin, stdout, and stderr. It + does not detach from stderr until it has successfully read the + config files. So you will see errors in the config file. This + should make it easier to start Apache via rsh or crontab. + +<DT><B>Year-2000 Improvements</B> +<DD>The default <CODE>timefmt</CODE> string used by <A + HREF="mod/mod_include.html"><CODE>mod_include</CODE></A> has been + modified to display the year using four digits rather than the + two-digit format used previously. The <A + HREF="mod/mod_autoindex.html"><CODE>mod_autoindex</CODE></A> + module has also been modified to display years using four digits + in FancyIndexed directory listings. + +<DT><B>Common routines Moving to a Separate Library</B> +<DD>There are a number of functions and routines that have been + developed for the Apache project that supplement or supersede + library routines that differ from one operating system to another. + While most of these are used only by the Apache server itself, + some are referenced by supporting applications (such as + <CODE>htdigest</CODE>), and these other applications would fail to + build because the routines were built only into the server. These + routines are now being migrated to a separate subdirectory and + library so they can be used by other applications than just the + server. See the <CODE>src/ap/</CODE> subdirectory. + +<DT><B>New <CODE><A HREF="mod/core.html#serversignature"> + ServerSignature</A></CODE> directive</B> +<DD>This directive optionally adds a line containing the server + version and virtual host name to server-generated pages (error + documents, ftp directory listings, mod_info output etc.). This + makes it easier for users to tell which server produced the error + message, especially in a proxy chain (often found in intranet + environments). + +<DT><B>New <CODE><A HREF="mod/core.html#usecanonicalname"> + UseCanonicalName</A></CODE> directive</B> +<DD>This directive gives control over how Apache creates + self-referential URLs. Previously Apache would always use the <A + HREF="mod/core.html#servername"> ServerName</A> and <A + HREF="mod/core.html#port">Port</A> directives to construct a + "canonical" name for the server. With <CODE>UseCanonicalName + off</CODE> Apache will use the hostname and port supplied by the + client, if available. + +<DT><B><CODE>SERVER_VERSION</CODE> definition abstracted, and server + build date added</B> +<DD>In earlier versions, the Apache server version was available to + modules through the <CODE>#define</CODE>d value for + <CODE>SERVER_VERSION</CODE>. In order to keep this value + consistent when modules and the core server are compiled at + different times, this information is now available through the + core API routine <CODE>ap_get_server_version()</CODE>. The use of + the <CODE>SERVER_VERSION</CODE> symbol is deprecated. Also, + <CODE>ap_get_server_built()</CODE> returns a string representing + the time the core server was linked. + +<DT><A HREF="mod/core.html#servertokens"><B>Including the operating + system in the server identity</B></A><BR> +<DD>A new directive, <CODE>ServerTokens</CODE>, allows the Webmaster + to change the value of the <CODE>Server</CODE> response header + field which is sent back to clients. The + <CODE>ServerTokens</CODE> directive controls whether the server + will include a non-specific note in the server identity about the + type of operating system on which the server is running as well as + included module information. As of Apache 1.3, this additional + information is included by default. + +</DL> <!--#include virtual="footer.html" --> </BODY>