Windows httpd beta released

Bob Denny <>
Date: Fri, 20 May 1994 08:16:02 +0200
Message-id: <>
Precedence: bulk
From: Bob Denny <>
To: Multiple recipients of list <>
Subject: Windows httpd beta released
X-Listprocessor-Version: 6.0c -- ListProcessor by Anastasios Kotsikonas
Content-Type: TEXT/PLAIN; charset=US-ASCII
Content-Type: TEXT/PLAIN; charset=US-ASCII
Mime-Version: 1.0
Mime-Version: 1.0
X-Mailer: Chameleon - TCP/IP for Windows by NetManage, Inc.
X-Mailer: Chameleon - TCP/IP for Windows by NetManage, Inc.

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