This is the FAQ (Frequently Asked Questions) list for the HTTP Server written by David Jones. of Ohio State University and deals with questions specific to this server implementation. Because we're lame, you are on your own for pointers to documentation for other aspects of WWW tools, e.g., browsing clients and how to write HTML in general.
Questions answered in this FAQ:
The FAQ was last updated 2-JAN-1999
A: The current release version is 3.6b
A: You will see the message:
disable SYSPRV status: 1, prev set: 0 Warning, insufficient privilege to listen on requested TCP port (SYSPRV required
whenever the server is told to listen for requests on a TCP port in the range 0-1023 and the server image cannot enable the privilege SYSPRV. This can happen if you a) didn't INSTALL the HTTP_SERVER.EXE image with the SYSPRV privilege, or b) you have invoked the image in such a way that VMS fails to find its known file entry (KFE). "b" can happen with you mistakenly INSTALL the image with a rooted path instead of from its "regular" path.
A: There is support for TCP/IP stacks from DEC (UCX), TGV (Multinet), CMU (the free CMUTCP), TWG (Pathway), and Process Software (TCPware). See the file AAAREADME.TXT in the top of the source distribution for instructions on how to build the server with support for a given stack.
Note that most commercial TCP/IP offerings support DEC's UCX/BGDRIVER interface; if you need to support multiple servers in a multi-TCP environment, you might consider building a single version of the server with support for UCX. (This doesn't help if you need support for CMUTCP.)
A: The Multinet version of the server may fail to build on VAXes running Multinet 3.3a in combination with the DEC C compiler, complaining about no linkage for time_t. This happens because of a bug in Mutlinets TYPES.H header file - they are testing for the pre-processor symbol __ALPHA where they should be testing for __DECC.
TGV has an official patch, but if you just edit multinet_common_root:[multinet.include.sys]types.h and change occurrences of __ALPHA to __DECC it fixes the problem.
All HREFs (hyperlinks and images) in the server's 'root' page (www_root:[serverdoc]index.html by default) must be in absolute form. A relative reference (e.g. <IMG SRC="campus.gif">), doesn't work because the 'base path' for the document can be either "/" or "/demo/" depending upon which URL the browser referenced. The relative references are appended to the base path by the client broswer, which results in invalid requests when the client's current base is "/" (requests "/campus.gif" instead of "/demo/campus.gif").
The HTTP server leverages DECnet functionality to make a very flexibile and efficient scripting system. Unfortunately, this flexibilty means a fair amount of arcane knowledge must be acquired to configure the scripts properly. The most frequent reasons scripts won't run are
There are no known year 2000 issues with the server. Prior to version 3 of the server, the default date format for generated date strings was 'weekday, DD-MMM-YY hh:mm:ss GMT' (RFC 850) for maximimum compatibility with primitive browsers. Starting with 3.0, the default format is 'wdy, DD MMM YYYY hh:mm:ss GMT' (RFC 1123). The format used is determined by whether file_access.c is compiled with the macro symbol DATE_FORMAT_850 defined.
When the server receives an RFC 850 date string to decode (there are still many browsers that send that format), it assumes year values below 50 are 20xx and those above are 19xx.
The server will probably have problems with times after 2038, which is when the UNIX binary time carries into the sign bit for 32-bit integers.
This message is placed in the error log file (http_server_err.log) when server has no client contexts available to service a newly accepted client connection. When this occurs, the server will wait for up to 3 seconds for a context to become available (due to completion of an existing connection). If a context becomes available within that time, it is assigned to the new connection and a new client thread is created to handle the HTTP request. If no context becomes available, the new connection is abruptly closed (sometime causing a "Document contains no data" message on the browser).
The number of contexts available is determine by the client limit, a number dynamically determined when the server starts based upon the resources available to the server process (e.g. byte limit) and system-wide SYSGEN parameters (e.g. channelcnt).
The 7.2-1 version of the pthreads (DECthreads) library changed the relationship between the requested stack size for a thread and the space actually reserved. Under the new scheme, server versions prior to 3.6b running on VAXes will have stacks that are too small for some of the threads - leading to crashes, hangs, and other erratic behaviour.
Version 3.6b increased the stack size for listener threads and the log flush thread so they now longer overflow on VMS 7.2-1.