Tcl Web Server -- A reliable Web server, good for sites with scripting or open-source software.

By ServerWatch Staff (Send Email)
Posted Jun 25, 2002

Written completely in Tcl (Tool Command Language), the Tcl Web Server might not be the fanciest Web server under the sun, but what it lacks in bells and whistles it makes up for in reliability, stability, and openness. With a real-world track record - serving with solid performance the Ajuba Solutions Web site - the Tcl Web Server is a good fit for sites with experience with scripting or open-source software. Tcl Web Server is best thought of not as a static shrink-wrapped product, but rather as an outstanding Tcl script that can serve as the basis for your future httpd development efforts.

Tcl Web Server requires Tcl versions 7.5 or better (Tcl 8.0 is recommended; the current version of Tcl is 8.1). Ajuba Solutions, formerly Scriptics, the corporation founded by Tcl/Tk creator John Ousterhout, oversees Tcl Web Server development as well as general Tcl/Tk development. (Ajuba Solutions also sells commercial versions of Tcl.) Tcl is available on a wide variety of platforms - Linux, Windows NT, FreeBSD, NetBSD, and virtually every UNIX variant - and as such the Tcl Web Server is also available to run on the same number of platforms. Written completely in Tcl (Tool Command Language), the Tcl Web Server might not be the fanciest Web server under the sun, but what it lacks in bells and whistles it makes up for in reliability, stability, and openness

The Tcl Web Server uses the native Tcl I/O system to provide event-driven I/O facilities and run a primitive that copies data from one I/O channel to another. After the data is copied from the I/O channel, the server manages the HTTP protocol handling and directs the I/O system to send data from disk storage to a network socket.

This is a simple transaction, but that's not what makes Tcl Web Server worth your attention. Basically, since Tcl Web Server is a Tcl-based implementation of a Web server, it can generate dynamic page content using the standard data-processing tools inherent in Tcl. It also works well with legacy applications - Tcl is a good tool for processing data after being embedded into the legacy application - and it features SNMP integration, where the server can generate pages containing data from SNMP MIBs and include forms for configuring SNMP devices. (You'll need the Scotty network management extension for Tcl in order to implement SNMP, but this can be downloaded here.)

The support is the same as you'll find for most open-source software. While there's no formal support mechanism, there is an active development team that responds to electronic mail, and there's extensive documentation from the lead developer, Brent Welch, the noted Tcl author who covers the Tcl Web Server in his book Practical Programming in Tcl & Tk.

It is not a tool that's appropriate for all situations, however, and it's probably better as an embedded application than a standalone Web server in an enterprise situation. The authentication tools are limited, consisting of scrambled passwords, and there's no support for SSL, limiting Tcl Web Server's applicability for any secure or e-commerce solutions (SSL support is planned for a future release). Still, if you have a commitment to open-source technologies and experience with Tcl, and want to add HTTP output capabilities to an existing Tcl setup, then the Tcl Web Server is definitely worth a look.

Pros: Easy to install and configure, 7 Works best as embedded server in existing Tcl installation, 7 Suited to extracting data from legacy applications, 7 Support for SNMP, 7 Extensive cross-platform support

Cons: Limited security mechanisms

New: SNMP support, debugging tools
Upgrade Meter: 3

New in v3.1.0: Fixes a security bug found in v3.0.0 and v3.0.1 that would let the server return files outside the URL tree; supports CGI; supports server-side includes; basic authentication features; image maps that are processed directly by the server to reduce processing overhead; standard logging and monitoring facilities; HTTP 1.0 and HTTP 1.1 keep-alives for efficient use of socket resources; handlers for whole sub-trees of the URL hierarchy; handlers for different document types and authentication schemes; template-based system for dynamic page generation; SNMP integration; works nicely with TclPro Debugger to let users debug Web applications; Tcl libraries to facilitate the implementation of Application-Direct URLs by OEMs; SSL via the TLS Tcl extension; Release Notes
Upgrade Meter: 4

New in v3.3: Changes made to handle multiple group and user specifications in .htaccess files; changed Auth_AccessFile to Auth_InitCrypt; updated documents in htdocs/access/index.html; new tests added to htdocs/access/multiple; sample group and password files added for htaccess; updated to Auth_InitCrypt from Auth_AccessFile; switched from debug/parray to debug/pvalue for more general htdocs/x/hacks.tml; added StatusHeader procedure tolib/status.tcl; added check for Config(lib) directory in lib/debug.tcl to set of places used by /debug/source; Release Notes
Upgrade Meter: 2

Version Reviewed: 2.2.1
Date of Review: 8/16/99
Reviewed by: Kevin Reichard
Last Updated: 5/9/01

Page 1 of 1

Comment and Contribute

Your name/nickname

Your email

(Maximum characters: 1200). You have characters left.