NCSA httpd version 0.3

Rob McCool (robm@ncsa.uiuc.edu)
Thu, 22 Apr 1993 04:00:01 -0500


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)