# Overview of new features

## API Changes

A few changes to the Apache API were made for 1.1. It is possible that some third-party modules will no longer work with 1.1, though we have made every effort to provide backwards-compatibility. If you encounter a module that does not work with 1.1, please let us know.

## New Features with Apache 1.1

New features with this release, as extensions of the Apache functionality (see also more detailed `CHANGES` file in the source directory.) Because the core code has changed so significantly, there are certain liberties that earlier versions of Apache (and the NCSA daemon) took that recent Apache versions are pickier about - please check the compatibility notes if you have any problems.

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

- Support for Keep-Alive Persistent Connections
  Apache now has (optional) support for persistent connections, as defined by the HTTP/1.1 draft. This protocol, supported by a number of current HTTP servers and browsers (including Netscape Navigator 2.0) has been shown to increase speed of document transfer by up to 50% in certain cases.
- New non-IP Intensive VirtualHost Support
  Apache's support for virtual hosts has been enhanced to be able to use information sent by some new Web browsers to determine the server being accessed, without requiring an additional IP address for each host.
- Listen to Multiple Addresses and Ports
  Using the new `Listen` directive, Apache can listen to more than one port and IP address, using the same configuration set.
- Status Module
  Apache now contains a module that gives the webmaster accurate, up-to-date information about the server's status and its resource consumption. It also gives the current state of each server process including the current URL being processed. For an example, check out the status of the www.apache.org server.
- Server Information Module This module gives a plethora of information about the other modules installed, their directives, and their configurations. It is extremely helpful in debugging configuration problems. For an example, check out information about the www.apache.org server.
- Experimental Caching Proxy Server
  Apache can now act as an HTTP proxy server, allowing clients behind firewalls to use the server to access the outside world. In addition, it can cache documents it proxies, speeding up access to frequently requested documents.
- URL-based Access Protection
  In addition to access checking and authorization by filename (with `<Directory>`), the new `<Location>` directive allows protection by URL.
- Filetype-based Script "Actions"
  You can now run CGI scripts whenever a file of a certain type is requested. This makes it much easier to execute scripts that process files. In addition, you can use the new Script directive to enable scripts for files called with HTTP methods Apache does not natively support.
- New "Handler" Directives
  The new `AddHandler` and `SetHandler` directive allows "handlers" to be defined for filename extensions or directories. These handlers, which can either be built into Apache or added with the Action directive, extend Apache's range of usability, and almost entirely remove the "magic" media types.
- Customizable CGI Environment Variables
  New `PassEnv` and `SetEnv` directives allow you to modify the environment variables passed to CGI scripts.
- CERN Metafile Support
  Now emulates the CERN httpd's support for metafiles containing additional HTTP headers to be supplied with a document.
- Improved Imagemap Support
  The internal imagemap handling code has been rewritten and reorganized, adding new handling of default, base and relative URLs, and support for creating non-graphical menus for use with clients that do not support imagemaps.
- Improved UserDir Directive
  Now supports the ability to point user's files (as specificed by URLs beginning with the "`~`" character) at directories other than those specified by the Unix password file.
- Minimal DNS Now Runtime Option
  New `HostnameLookups` server configuration directive can be used to turn `On` or `Off` DNS lookups. This supercedes the -DMINIMAL_DNS compile-time configuration option. This option can be set per-directory.
- IdentityCheck Now Per-Directory Option
  The `IdentityCheck` directive, which controls the use of ident to check the remote user name, can now be set per directory. The ident support is also RFC 1413-compliant.
- Redirect Now Usable in `.htaccess` Files
  The `Redirect` directive can now be used in `.htaccess` files when the `FileInfo` directive has been set on. This allows users to redirect parts of their directories without requiring CGI scripts
- ErrorDocument Now Usable in `.htaccess` Files
  The `ErrorDocument` directive can now be used in `.htaccess` files when the `FileInfo` directive has been set on. This allows users to have different error messages for different sections of a site.
- `ForceType` Directive
  This new directive, in `<Directory>` sections or .htaccess files, allows you to override the filename extensions and force a single content type. (e.g. `ForceType application/octet-stream`)
- File Owner Available to Included CGI Scripts
  Server-side includes that call CGI scripts will now set a `USER_NAME` environment variable that contains the owner of the file which included it.
- Improved Icons
  Thanks to Kevin Hughes, Apache's nifty color GIF icons for directory listings have been updated. In addition, the Powered by Apache (`apache_pb.gif`) logo has been included.

### New Authentication Modules

Note: These modules are not compiled into the server by default, as they require special support on the host system. They must be enabled specifically in the `Configuration` file.

- Anonymous HTTP Logins
  New options allow you to allow, using Basic HTTP Authentication, anonymous logins, like those of FTP. This allows you to collect email addresses of people accessing your site.
- Support for Digest Authentication [Documentation to be written]
  Apache now supports digest authentication using RSA MD5 encryption. When used with a supporting web browser, this provides a more secure alternative to Basic authentication.
- Support for Unix DB Authentication - `mod_auth_db.c`
  In addition to DBM support, Apache now contains optional support for Berkeley DB databases.
- mSQL Database Authentication - `mod_auth_msql.html`
  Support for the use of mSQL databases for user authentication via HTTP is now supported.

### OS/2 Support

Apache now includes support for OS/2, thanks to Softlink Services.