Apache Week
   Issue 75, 25th July 1997:  

Copyright 1996-2005
Red Hat, Inc.

In this issue

First Windows Alpha Available

An alpha version of Apache for Windows is now available. This is an experimental version that is intended for Windows developers only. It is released as source code only, so potential users must first compile it with Microsoft Visual C++. The intention of this release is to get some feedback about Apache for Windows from people with the tools to track down problems or bugs. Future non-alpha releases will provide binaries for Windows platforms for users without development tools or experience.

Apache is available in three different archives: .tar.gz and .tar.Z for Unix users, and a .zip for Windows. The .zip archive contains files with the correct line endings for Windows systems. It also includes a (correct) Makefile.nt to build all the parts of Apache on Windows.

To fit in with the Windows environment, Apache on Windows has some slight differences to Apache on Unix. It also has two major new features:

  • Modules can be loaded at runtime from pre-compiled libraries (DLLs)
  • A new module is provided to enable support for ISAPI applications. ISAPI is a web server extensions interface, similar to the Apache module API, which is used by Microsoft's IIS server and some other Windows web servers.

This version is also marked alpha rather than beta because new features will be added before the start of the real beta testing phase of Apache 1.3

Apache Status

Release: 1.2.1 (Released 6th July 1997) (local download sites)
Beta: None
Alpha: 1.3a1 (Released 23rd July 1997) (local download sites)

Bugs fixed in 1.3:

  • Better QNX support
  • Compilation problem on Solaris when using Socks
  • Now supports imagemap files created by Microsoft FrontPage
  • The GET method in HTTP/1.1 can have a body, but Apache was not reading it, so it would be treated as the next request on a kept-alive connection. Now fixed to read (and discard) any body on a GET request (and also on OPTIONS and TRACE requests).

Patches to Apache 1.2 bugs will be made available in the apply to 1.2.1 directory on the Apache site. Some new features and other unofficial patches are available in the 1.2 patches directory. For details of all previously reported bugs, see the Apache bug database and Known Bugs page. Many common configuration questions are answered in the Apache FAQ.

Unless otherwise noted, all the new features discussed here are planned for Apache 1.3 and not Apache 1.2.1.

Yet More on HTTP/1.1 Responses

Apache is a HTTP/1.1 server and always returns a HTTP/1.1 format response, even if the original request was marked HTTP/1.0. This is the correct way to behave according to the HTTP standards. However some buggy clients have problems when they see a response marked HTTP/1.1, so as a workaround Apache added a force-response-1.0 environment variable, which when set (usually by BrowserMatch) causes Apache to mark its response as HTTP/1.0. It was recently noticed that it was doing these even if the request actually came from a HTTP/1.1 client. This has been fixed, so now all requests from HTTP/1.1 clients get a HTTP/1.1 response.

This was alright until the recent Microsoft Internet Explorer 4 PR 2 release, which claims to be HTTP/1.1 but infact cannot handle HTTP/1.1 responses in some cases. Because all requests from MSIE4 PR2 are marked as HTTP/1.1, Apache was again correctly returning a HTTP/1.1 response. To work around the bugs in MSIE4 PR2, a new variable has been added: downgrade-1.0. If set this will make Apache treat an incoming HTTP/1.1 request as if it was really marked HTTP/1.0.

A patch for 1.2.1 to implement this new feature is available.

Sorted Fancy Indexes

The auto-indexing module, mod_autoindex (previously part of mod_dir), is being updated to sort the directory index by any column. It works rather like the directory lists in Windows, where selecting a header causes the display to be sorted by that column. Selecting the same header again swaps between sorting in ascending and descending order.

Irix Compilation

A new Configuration rule, IRIXN32, can be used to get Apache to compile with the n32 libraries if they are available.

API Changes

The defined constant APACHE_RELEASE_DATE has been replaced with one called APACHE_RELEASE which contains a release number. This number will always increase for higher version numbers. The problem with using a date was that if, for example, bugs are found in 1.2.1 then a 1.2.2 may be released after a beta release of 1.3. So 1.2.2 would have a later release date, despite having less features. This new release number system lets module authors check the release number to see what features are available.

New Release of Embedded Perl Module

A new version of the embedded perl module (ePerl) is now available. This module lets you put Perl commands directly into HTML pages and get them executed when the page is requested. This is similar to other embedded languages such as SSI, PHP or ASP (on Windows).

There are many ways of embedding commands into HTML pages with Apache. The feature Dynamic Page Languages gives some more information.

Comments or criticisms? Please email us at editors@apacheweek.com