blob: 23ddac6958d3e131549f282648c2561ae191c9ef [file] [log] [blame]
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 previos
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 explictly turned on, the server will not resolve IP
addresses into names. This was done to spare the Internet from
unneccessary 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 dbmmange script
A new Perl5 version of dbmmange allows modification of
various databases, Berkley 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.