Apache Week
Issue 74, 18thJuly1997:

Copyright 2020 Red Hat, Inc

In this issue

Apache Status

Release: 1.2.1 (Released 6th July 1997) (local download sites)
Beta: None

Bugs fixed in 1.3:

  • <File> sections were not being indented by mod_info.
  • Definitions of CC and OPTIM at compilation time were not being propagated to the support directory Makefile

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.

Windows Config Files

The next release of Apache, called version 1.3, will run on Windows 95 and Windows NT systems. Although Apache will be very similar on Unix and Windows, there are some differences. The main ones are:

  • The Windows version is multithreaded
  • The Windows version loads optional modules from DLL files

There are also some differences in the configuration files between Unix and Windows. For example, on Unix the file /dev/null is used to represent a non-existant file. Under Windows this needs to be NUL. In addition, the Windows version will be distributed mainly as a set of executable programs and DLLs, rather than source, so the configuration files will show how to load additional modules as DLLs (under Unix this would normally mean recompiling the server). Because of these differences, the Windows release will contain separate configuration files for Windows and Unix.

SSI String Comparisons

The SSI language will be enhanced in the next release to allow more string comparisons. At the moment the only comparisons allowed between strings an exact match or no match (= and !=). From 1.3 onwards, strings can also be compared with <, >, >= and <=.

New API Phase

A new phase has been added to the Apache module API. This is called the "child init" phase, and is called once for each new child process. It has the same parameters as the existing "init" phase (which is called once when the server starts). This "child_init" phase is only called for each process, not per thread (this only applies to the Windows version of Apache for now).

Higher and Higher Hit Rates

Following last week's article on how to achieve hit rates of up to 5 million per day, we have seen some reports of much higher hit rates. In fact, 50 or so hits per second is probably the low end of what you should expect from Apache (provided you have sufficient RAM, such as 128Mb). For example, the unofficial Wimbledon site, www.wimbledon.com got bursts of over 1,000 hits per second, according to a recent posting in comp.infosystems.www.servers.unix.

New Internet Explorer HTTP Bugs

Microsoft has recently released Platform Prevew 2 of Internet Explorer 4. This is aimed mainly at developers since it makes considerable changes to the underlying Windows operating system when it is installed. However there are a couple of bugs related to how Internet Explorer 4 PR 2 (IE4PR2) implements HTTP which may cause problems against Apache and other HTTP/1.1 servers.

Firstly, IE4PR2 does not handle kept-alive connections for responses other than 200 (OK).

Secondly, the Java virtual machine makes a HTTP/1.1 request but does not understand HTTP/1.1 responses. There have been examples of other clients which do not understand HTTP/1.1 responses, and Apache can be configured to mark its response as HTTP/1.0 (although it is still really HTTP/1.1). But in this case the client is specifically making a HTTP/1.1 request, so Apache should not need to reply with HTTP/1.0.

It may be possible to implement work-arounds for both these problems. However this a beta version of the software, so bugs are to be expected and these problems certainly ought to be fixed before the final release.

RealAudio 4 Player Cannot Understand HTTP/1.1 Responses

The RealAudio player version 4.0 cannot understand the normal Apache responses. Apache responds to all requests (except HTTP/0.9 ones) with an HTTP/1.1 format message. This is the correct thing to do according to the specifications and most browsers and plug-ins work correctly, ignoring the extra HTTP/1.1 fields that they do not understand. However some browsers and plug-ins check the exact version number and do not work unless it is HTTP/1.0. Apache has a work-around for these broken clients. To fix RealAudio 4.0, the following line needs to be added to a configuration file.

  BrowserMatch "RealPlayer 4.0" force-response-1.0

This will be included in the configuration files distributed with the next release.