                   OVERVIEW OF NEW FEATURES IN APACHE 1.3

New features with this release, as extensions of the Apache functionality
For more information, see the documentation included with this release
(htdocs/manual/) or http://www.apache.org/docs/

The Apache license has been modified slightly for this version; the
change simply prohibits derived products from claiming themselves to
be "Apache."

In addition to a number of bug fixes and internal performance
enhancements, Apache 1.3 has the following specific new user
features:

  *) Support for Windows NT/95
       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.

  *) Regular Expression support for Alias and Redirect
       New AliasMatch, ScriptAliasMatch, and RedirectMatch directives
       allow for the use of regular expression matching. Additionally,
       new <DirectoryMatch>, <LocationMatch>, and <FilesMatch> sections
       provide a new syntax for regular expression sectioning.

  *) New "Magic" MIME-typing module
       A new module, the optional mod_mime_magic, 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.

  *) Directory indexing modules split
       The mod_dir module has been split in two, with mod_dir handling
       directory index files, and mod_autoindex creating directory
       listings.

  *) Support for Directory Icon Sizing
       The mod_autoindex module provides listings of directory contents
       when appropriate. If the FancyIndexing option is enabled, each
       file in the list is preceded by an icon representing the content
       type. In earlier versions of Apache, the HTML IMG 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
       IndexOptions directive has two new keywords which allow you to
       control whether pre-sized IMG tags are used. This can
       substantially speed up the display of large directory listings.

  *) AccessFileName Enhancement
       The <AccessFileName> 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.

  *) HostNameLookups now defaults to "Off"
       The HostNameLookups 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.

  *) New child_init function for module API
       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.

  *) New child_exit function for module API
       A new phase for Apache's API is called prior to termination of
       a server child, e.g. when max_requests_per_child is reached.
       This allow for modules to tear down anything that need to be done 
       once per processes. For example, connections to databases.

  *) Totally overhauled mod_rewrite:
       First the last officially available release of mod_rewrite (3.0.9) was
       integrated into the Apache source repository. Additionally to the fact
       that this fixed some bugs, mod_rewrite now is no longer developed and
       maintained _externally_ by the original author Ralf S. Engelschall.
       Instead he has officially joined the Apache Group and gifted the
       complete sources to it (removed the shared copyright), so further
       development takes place directly at the Apache Groups source
       repository. No more version synchronizations are needed in the future.
       Additionally the rewriting engine was both enhanced and cleaned up by
       introducing a generic way to interpolate backreferences. The noticeable
       effect is that one now can use backreferences at nearly any string
       construction point (RewriteRule subst string, RewriteCond test string,
       ENV flag key/value, etc.) to access the parts of RewriteRule and
       RewriteCond patterns via $N and %N.

  *) Simple transport and i/o hooks in place
       It is possible to re-define the standalone_main function 
       (with -DSTANDALONE_MAIN) so modules may plugin support for
       transport protocols other than tcp, e.g. DCE RPC
       A new slot in the BUFF structure `t_handle' is provided to
       store the plugin's transport related structures.
       Support for sfio can be enabled with -DB_SFIO, which allows
       modules to re-define lowest-level reads and writes so i/o
       may travel through something other than a tcp socket.
       In addition, sfio support allows plugin modules to manipulate
       the output of all modules, e.g. parsing the output of CGI programs.
       
  *) New dbmmanage script
       A new Perl5 version of dbmmanage allows modification of
       various databases, Berkeley DB, ndbm and gdbm.  Security has 
       been tightened such that passwords will no longer be echoed to
       the terminal, the seed for srand is more random and `add' will not
       overwrite and existing user, use the new `update' command
       instead.  New commands include the `check' command to check a
       users' password and the `import' command to convert existing
       password text-files or dbm files exported with `view'. 

  *) New API function: is_initial_req()
       The function returns true only for the initial call during a
       given HTTP request.  If the request is a sub-request or
       internal redirect, the function will return false.

  *) Apache now ported to a mainframe machine with EBCDIC charset
       This new port makes apache-1.3 compile and run on a
       Siemens Nixdorf mainframe running under the BS2000-OSD
       operating system in the POSIX subsystem. The server is capable
       of serving either "binary-ASCII" or EBCDIC coded HTML text
       documents. See the file README.EBCDIC in the src directory;
       it also explains which modules still need porting (most are ready).

  *) Apache Autoconf-style Interface (APACI) 
       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 "configure" script and a corresponding
       top-level "Makefile.tmpl" file. The goal is to provide a GNU
       Autoconf-style frontend which is capable to both drive the old
       src/Configure 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.

  *) Dynamic Shared Object (DSO) support
       The support for loading Apache modules under runtime from DSO files was
       greatly enhanced: First, mod_so was cleaned up and the src/Configure
       script was extended to setup the totally platform-dependend commands to
       build DSO files on all major Unix platforms which support the pragmatic
       dlopen() 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 mod_proxy and mod_mime were unbundled to be able to use them
       independend from each other. Finally the Makefile generation stuff in
       src/Configure 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.

  *) APache eXtenSion (APXS) support tool
       Now that Apache provides full support for loading modules under runtime
       from dynamic shared object (DSO) files, a new support tool "apxs" 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 "apxs" tool.

  *) THE BIG SYMBOL RENAMING
       To avoid symbol clashes with third-party code compiled into the server,
       the general prefix `ap_' was globally applied to the following classes
       of symbols in the Apache source tree: Apache provided general functions
       (e.g., ap_cpystrn), public API functions (e.g., palloc, bgets) and
       private functions which can't be made static (because of cross-object
       usage) but should be (e.g., new_connection).  For backward source
       compatibility with Apache 1.2 a new header file named compat.h was
       created which provides defines for the old symbol names and should be
       used by third-party module authors.

