Windows httpd beta released

Bob Denny (
Thu, 19 May 94 23:06:34 PDT


This is it, folks. Features are frozen. This version has many fixes
and enhancements, and most importantly of all...


But be forewarned. If you have a broken WinSock package, you won't be
able to use the multi-threading. It is very demanding of the stability of
the asynchronous server support features in the WinSock Spec. I have used
these features to the max in order to provide fine-grain multi-threading
so the server is as friendly to the Windows environment as possible.

A new command line switch, "-m" has been added. It should permit some
WinSock packages with broken asynchronous closesocket() support to be
able to handle multi-threading anyway. See the discussion below.


FILES: <=== Updates 1.2b1 to 1.2b2

*** You need both kits ***

Features supported:

* HTTP/1.0 protocol
* HEAD, GET and POST methods
* Supports up to 8 simultaneous connections with fine-grain overlap
* CGI 1.0 (extended) script interface using DOS Virtual Machine
* Server-generated directory indexes with type-specific icons
* Automatic mapping of MIME types to DOS file extensions
* URL aliasing and redirection permit disjoint document collections
to be mapped to a virtual directory tree as seen by the server.
* Includes NCSA "imagemap" support (DOS port), pre-configured
* Global and local document access controls
* If-Modified-Since support for caching proxy servers
* Access authentication using the "real" Unix crypt() for passwords
* Password file maintenance utility runs from DOS command line
* WinSock 1.1 compliant, uses recommended asynchronous API
* WinSock "fallback" mode for sub-standard WinSock packages (single-
session only)
* Efficient cooperative multitasking, will not bog down your machine,
or make clients wait on other clients' time-consuming transactions
* Common Log Format access log file, opened for shared read and flushed
after each write
* Large integrated set of HTML documentation, including
authoring and administration references and primers.
* Includes Thomas Boutell's "wusage 3.0" statistics reporter (DOS port)
* WinCron utility included for weekly "wusage" runs and other periodic tasks.
* Demo pages (also useful for initial checkout and examples) that
illustrate basic serving, ISINDEX, forms, image maps, password
protection, and wusage
* Extensive built-in tracing facilities to help diagnose problems
* Icon animation, shows when (and how many) people are using your server

Unix httpd 1.1 major features not supported:

* RFC 931 (TAP) identification
* PEM or PGP encryption
* Server-side includes

Unix httpd 1.3 major features not supported:

* Enhanced icon mapping for automatic directory indexes
* CGI 1.1 enhancements
* Server-side include enhancements

Here is an excerpt from the release notes:


Version 1.2b2 is a beta-test update of NCSA httpd V1.2b1 for Microsoft
Windows. It has been released as a replacement executable and these
release notes only. The code is based on the Unix NCSA httpd Versions 1.1
and 1.3 (hence the 1.2 -- in the middle) written by Rob McCool of NCSA.
The Windows version was written by Bob Denny.

WinSock Bugs

Field tests have revealed weaknesses in some of the Windows Sockets
packages that are in common use. My network I/O routines make use of
features that were put into WinSock to permit concurrent transactions,
and to minimize the impact of communications on the rest of the system.
Also, httpd is a server, and therefore uses connection functions that are
different from those used by client programs.

During the alpha test phase, I added workaround code to compensate for
specific brands' WinSock weaknesses. This turned out to be a bad idea for
several reasons. Instead, I have added two options to the server, which
you can use to help isolate WinSock problems.

If you experience communication hangs, incomplete document deliveries,
etc., try adding "-m" to the httpd command line. This causes socket
closes to be performed in synchronous mode. The effect will be to reduce
the efficiency of the server somewhat, but still permit multi-threading
(assuming the rest of the WinSock package's async support is OK).

If you still have problems, your package is really broken. Add "-n" to
the httpd command line. This disables multi-session support, disables all
Windows efficiency optimizations, and reverts to simple blocking-mode
operation. If this "cures" your problem, you need to gather evidence for
submitting a bug report to your WinSock vendor.

Remove the "-n" and enable the network I/O tracing feature of httpd and
look at the log. I will be glad to assist in interpretation. If it turns
out to be a server bug, I'll fix it. If not, you'll have to live with
single-session support and lower performance (with "-n turned on) until
you can get your WinSock package fixed.

There are severe limitations with using COMMAND.COM as the shell for
executing scripts (see the scripting docs). I am very interested to
hear from people who successfully get a real-world script to function in
a production environment. Also, I'd like to hear from people who are
using perl, icon, or Tcl.

Neither NCSA nor the authors are in a position to provide technical
support for this server. Direct your questions and problems to the
comp.infosystems.www USENET newsgroup. The authors do monitor this
newsgroup, as do many other people who may be able to help you with
questions and/or problems.

Server configuration and operation has been kept as similar as possible
to the Unix httpd.

-- Bob