The Development History of GoHTTP


Mike Cowlishaw, IBM UK, wrote the fine OS/2 gopher server package known as GoServe, which has been released to the public by IBM as Employee Written Software. This package employs a REXX-based filter script which allows tremendous latitude in customizing the server to individual systems, as well as providing varied services. (Two sample scripts are included in the archive.)

Shortly after the release of version 1.20, (Current version is 2.40) David Singer at IBM - Almaden modified the original filter script, adding very basic support for HTTP file requests. These modifications enabled GoServe to function as both a gopher server and a HTTP/0.9 server simultaneously.

When I finally got around to it, I sat down and came up with the original GoHTTP code -- I merely extended the HTTP/0.9 modified gopher filter to support several of the major HTTP/1.0 functions that are widely used in the WWW community, namely support for Content-typing, imagemap processing and external scripts.

The GoServe version 2.00 package was released with a zip archive called GoHTTP.zip, which contains a REXX filter that Mike Cowlishaw has rewritten to provide a very basic level of HTTP/1.0 support. This filter handles Content-typing of outbound files in the HTTP/1.0 format. It also provides a rudimentary example of a specifically written graphical mapping procedure, as well as rudimentary text search and authorization procedures. The GoHTTP package that ships with GoServe v2.x does not, however, provide full support for imagemaps & forms.

Recently, I've taken Mike's new sample script, modified several of his procedures to perform better, and added the imagemap functionality from my original GoHTTP filter script. In addition, based on a number of cautions & pointers from Mike, I totally rewrote the CGI support from my original implementation to work around some problem areas that had been identified in them. In the process, I was able to achieve full CGI/1.1 compatibility. (However, most of the credit must go to Mike for modifying GoServe to accomodate POST method URL requests...)

Finally, I gradually made modifications to improve configurability and flexibility, and increase functionality by adding several additional features. For a better idea of what features and capabilities the current version of the GoHTTP filter provides, check out the 'Description'.


Updated 27 June, 1995 / Suggestions & Comments to meyer@larch.ag.uiuc.edu