# WASD Hypertext Services - Environment Overview

## 2 - HyperText Transport Protocol Daemon

> 2.1 - Auto-Scripting

[next] [previous] [contents] [full-page]

The most fundamental component of the WASD VMS hypertext environment is the HTTPd, or HyperText Protocol Transport Daemon, a program serving the hypertext environment to the browser clients.

The WASD version provides a complete implementation of a basic HTTP server, including:

- concurrent, multi-threaded client support
- "DELETE", "GET", "HEAD", "POST" and "PUT" HTTP method support
- "If-Modified-Since:" / "304 Not Modified" functionality (document is only sent if modified since time specified by client)
- HTTP/1.0 de-facto persistent connections (i.e. "Keep-Alive:", reducing the number of TCP/IP connects required)
- versatile directory listing (generic and VMS-style)
- CGI-compliant scripting (with configurable, automatic, MIME content-type initiated activation)
- CGIplus scripting (offering reduced latency, increased throughput and reduced system impact when scripting)
- script processor (e.g. PERL) configurable on file type (extension)
- Server Side Includes (HTML pre-processing)
- configurable cache, with automatic, time-based and forced re-validation (reload)
- clickable-image support (both NCSA and CERN formats)
- smart rule mapping (conditional rules)
- "Basic" and "Digest" user authentication and path/group-based authorization
- Optional SYSUAF-authentication and VMS user security profile based file access control (only for the most secure of LAN environments!)
- Web-standard, "common" and "combined" access log formats (allowing processing by most log-analysis tools), along with a user-definition capability, allowing custom log formats
- logging periods, where log files automatically change on a daily, weekly or monthly basis (keeps log files ordered and at a managable size)
- host-level access control, on per-host or per-domain acceptance or rejection
- single server can support multi-homed (host name) and multiple port services
- on-line server configuration, including reports on requests, loaded configuration, mapping rules, authorization information and graphical activity displays
- cookie support ("Cookie:" HTTP header field)
- customizable message database (capable of supporting non-English and concurrent, multiple languages)
- configurable, automatic conversion of documents from VARIABLE to STREAM-LF record format (much more efficient with this server)

###
Scripts

The WASD scripting mechanism is based on the WWW CGI Common Gateway Interface (CGI, modelled on the CERN and NCSA VMS implementations).

Scripts are programs external to the main server that behave as gateways to non-hypertext data formats, usually interpreting those formats into HTML before transport to and use by the browser. The WASD environment provides a number of scripts for accessing VMS-specific, DEC-specific and some other WASD-specific information.

###
2.1 - Auto-Scripting

A script can be automatically activated by the server through it detecting the content-type of the specified document (based on the file extension (e.g. ".TXT")).

This auto-scripting can occur whenever the document specification includes no file version number. If a file version number is present the file is always returned directly to the browser. The browser must then process the document in some fashion (often by activating a save as dialog). A simple way of suppressing the auto-scripting facility is to include a latest-version number (i.e. ";0"), as in this specification "/sys$common/syshlp/helplib.hlb;0".

[next] [previous] [contents] [full-page]