This HTTPD is written in Tcl and Tk.
Written by Stephen Uhler and Brent Welch of Sun Microsystems Laboratory.
Brent is now at Ajuba Solutions, previously known as Scriptics Corporation.
See the file "license.terms" for information on usage and redistribution
of this file, and for a DISCLAIMER OF ALL WARRANTIES.

Version: 3.0.3
Last Modified: Wed May 31 09:53:48 PDT 2000

It requires Tcl 8.3 and the new Standard Tcl Library.
This uses the cmdline, base64, ncgi, and html
modules of the Standard Tcl Library. If you must, you
can probably get by with Tcl 8.0 or later if you install
the Standard Tcl Library.

The Web server runs under either tclsh or wish.
With wish you get a simple GUI that shows some counters.

For a quick test that runs a server on port 8015, do
UNIX:

1) Test preconditions
	tclsh8.3
	package require tcllib 0.4

2) If you can do the above, then you should be able to run the
server directly from this distribution directory without bothering
to configure, make, and install it.

	tclsh8.3 bin/httpd.tcl -debug 1
Windows and Macintosh:
	Run wish or tclsh and source bin/httpd.tcl

3) If you do not have the Standard Tcl Library, then perhaps the
easiest thing to do is get the "bundled distribution" of TclHttpd
and use its configure, make, and make install scripts.

For a complete set of command line options, do
httpd.tcl -help
This lets you set basic parameters like port number and server name.

Version 3.0.3 fixes another bug with Doc_AddRoot, and fixes the
bundled distribution so you can use the Thread extension again.

Version 3.0.2 fixes a serious SECURITY BUG that let 3.0.0 and 3.0.1 
serve up any old file on your system.  That bug was not present in earlier
versions of the server.

Version 3.0.1 has minor bug fixes and (hopefully) some improvements
in the bundled distribution.

Version 3.0.0 has three major changes:
* Use of Standard Tcl Library modules.  The server looks around for the
tcllib distribution and automatically uses it.  One goal of this conversion
is to eliminate the use of the page global array and replace that with
calls to the ncgi module.
* Support for threads.  If you configure and build Tclsh with --enable-threads
and you have the Thread extension available, the the server can 
use threads to service requests.
* Support for SSL.  If you have the "tls" extension installed, then you can
start an SSL server by giving the -https_port command line argument.

Version 2.3.6 is the last in the 2.3 series.  It has a few minor
bug fixes.  The next release, 3.0, will support threading using
the Thread extension and SSL using the TLS extension.

Version 2.3 changes the way post data is  handled.
The various point releases (e.g., 2.3.4) fix important
bugs in cookie handling and the new post data handler.

Version 2.1.6 introduces a configuration file, tclhttpd.rc
You can edit this to tune the set of modules used by the server,
or to hardwire the port, etc.

If you have Scotty installed, then you can try out the SNMP demo.
You'll need to arrange to have the Tnm*.so library on the
auto_path for your shell.  I have found that 2.1.5 works
with 8.0a2, but not with 8.0b1 because Tcl_GetFile has gone.

There is a mailing list for users of the Tcl web server.
Send a message containing the word "subscribe" to
tcl-httpd-request@scriptics.com
or, if that is dead, send email to
welch@acm.org
to find out the current location of the mailing list

Send messages for the list to
tcl-httpd@scriptics.com

Bugs and comments to the mailing list, or to <welch@acm.org>
Put "httpd" in the subject of the mail so I can sort it automatically.

The current URL for the distribution can be found in
ftp://ftp.scriptics.com/pub/tcl/httpd/

There is documentation at
http://www.beedub.com/tclhttpd/
http://www.scriptics.com/tclhttpd/

There is a netCVS repository on cvs.scriptics.com.
For details, please see http://www.scriptics.com/products/tcltk/netcvs.html
