NCSA httpd version 0.3

robm@ncsa.uiuc.edu (Rob McCool)
Message-id: <9304220900.AA15015@void.ncsa.uiuc.edu>
From: robm@ncsa.uiuc.edu (Rob McCool)
Date: Thu, 22 Apr 1993 04:00:01 -0500
X-Mailer: Mail User's Shell (7.2.5 10/14/92)
To: www-talk@nxoc01.cern.ch, www-announce@nxoc01.cern.ch
Subject: NCSA httpd version 0.3



    The beta version .3 of NCSA's HTTP server has been released and is
on ftp.ncsa.uiuc.edu (141.142.20.50) under /Web/ncsa_httpd.

    NCSA's httpd is a public domain implementation of the HTTP1
protocol, with some gopher-related extensions. I have attached the
README.BETA.3 and README.GOPHER files below.

    There are precompiled binaries for DEC's DECstation and DEC AXP
workstations, sun4 (SPARC) workstations, SGI Iris workstations,
NeXT's, and IBM RS/6000 workstations available on the ftp server. If
you port the server to another platform and need to modify anything to
do so, please let me know what the modifications were.

Any suggestions or bug/problem reports please send to
robm@ncsa.uiuc.edu.

--Rob

--
Rob McCool, NCSA SDG System Administrator
robm@ncsa.uiuc.edu r-mccool@uiuc.edu robm@imsa.edu
It was working ten minutes ago, I swear...


--- README.BETA.3 ---

NCSA HTTP server.

Beta release .3

This code is in the public domain. Specifically, we give to the public
domain all rights for future licensing of the source code, all resale
rights, and all publishing rights.

We ask, but do not require, that the following message be included in
all derived works:

Portions developed at the National Center for Supercomputing
Applications at the University of Illinois at Urbana-Champaign.

THE UNIVERSITY OF ILLINOIS GIVES NO WARRANTY, EXPRESSED OR IMPLIED,
FOR THE SOFTWARE AND/OR DOCUMENTATION PROVIDED, INCLUDING, WITHOUT
LIMITATION, WARRANTY OF MERCHANTABILITY AND WARRANTY OF FITNESS FOR A
PARTICULAR PURPOSE.


Now that that's out of the way, we can move on to more interesting
things.

OVERVIEW
--------

    You've found the Beta release of NCSA's HTTP server. This code is
in testing and development, but is currently fully functional as an
HTTP1 server. 

This is beta release .3

NEW IN RELEASE .3
-----------------

    o Security hole (should be the last) fixed
    o Nearly complete drop-in gopher support. See README.GOPHER for details
    o Not being able to find the config file does not send back a path

NEW IN RELEASE .2
-----------------

    o Two security holes fixed
    o Double slashes in root index fixed
    o Not being able to find the error files no longer hangs the server

FEATURES
--------

    o Directory aliasing and denial. The server can be configured to
map different directories to different places in the filesystem, and
easily deny access to a particular directory or file by mapping it to
something which does not exist. The interface is designed to be simple.

    o Automatic directory index files and on-the-fly index generation.
If the server finds that the client is requesting a directory, it
first checks for a file, by default called "index.html" but which can
be compiled to any name, and if it does not find such a file it
generates an HTML index of the directory and sends it back to the
client.

    o Drop-in gopher support. This server is able to automatically
interpret gopher directory structures and construct, on the fly, HTML
indexes of them. Should be faster than gopherd in HTML mode.

    o Designed to be small and low-impact: the entire source is
currently ~500 lines, without gopher support. It's 800 with gopher support.

FUTURE PLANS
------------

    o HTTP2 support.

    o The ability to run from something other than inetd, so people
who are not root can use it.

    o Transfer logging

    o On the fly uncompression.


That should be all you need. E-mail problems, suggestions for features
or documentation, cash donations, food, etc. to robm@ncsa.uiuc.edu. I 
encourage you to try and break the server, or compromise its security, and 
let me know how you did it so I can fix it.

--Rob (robm@ncsa.uiuc.edu)


--- README.GOPHER ---


NCSA HTTP server.

Beta release .3

This code is in the public domain. Specifically, we give to the public
domain all rights for future licensing of the source code, all resale
rights, and all publishing rights.

We ask, but do not require, that the following message be included in
all derived works:

Portions developed at the National Center for Supercomputing
Applications at the University of Illinois at Urbana-Champaign.

THE UNIVERSITY OF ILLINOIS GIVES NO WARRANTY, EXPRESSED OR IMPLIED,
FOR THE SOFTWARE AND/OR DOCUMENTATION PROVIDED, INCLUDING, WITHOUT
LIMITATION, WARRANTY OF MERCHANTABILITY AND WARRANTY OF FITNESS FOR A
PARTICULAR PURPOSE.


Now that that's out of the way, we can move on to more interesting
things.


OVERVIEW OF GOPHER SUPPORT
--------------------------

    As of beta release .3, this server will automatically generate
HTML listings of a gopher directory without going through gopherd.
This means that . files which are links are processed, and .cap files
are processed. Any request which begins with /gopher-data will be
considered a gopher request if gopher is turned on. Therefore, mapping
/gopher-data to the location of your server's data will allow you to
access /gopher-data and get a gopher listing in return.

    These features are new to .3, and I would appreciate any and all
feedback on its usefulness, features and/or lack thereof, problems,
and suggestions.

KNOWN PROBLEMS
--------------

    o Shell scripts are not executed; i.e. a file of type 0 with #! at
the beginning is returned plaintext instead of being executed.

    o There is a slight ordering inconsistency between this server and
the real gopherd, i.e. all numbered are placed first, in order, THEN
the unnumbered files are placed in alphabetical order. The gopher
server fills in the holes with alphabetized entries.

    o Not all gopher features are currently supported, namely the ph
interface.

    o Files of type 's', 'G', 'I', and any files which are special and
need to be treated in a special way are sent back to the client.
Therefore, if the file does not have the proper extension the client
may not recognize it. i.e. if a GIF does not have the .gif extension
NCSA Mosaic probably won't recognize it.


INSTALLATION
------------

    See the file INSTALL for normal and gopher installations. Be sure
you define GROK_GOPHER in httpd.h if you are compiling the server, or
that you use the binary with gopher support if you are using a
precompiled one.

    
--Rob (robm@ncsa.uiuc.edu)