GoHTTP System Description


The GoHTTP System consists of a single REXX script which, when used by the IBM EWS GoServe program as its filter, provides most of the features / functionality needed in a HTTP server. GoServe is provided with a sample script that will handle file services "out of the box", and can be freely customized to add functions, but one has to be a REXX programmer and know what functionality to add in order to succeed. Since I've already gone to the trouble of adding much of the desired HTTP server functionality to my filter for my server needs, I'm merely making it available to the public.

The currently available version is 2.01.9-N. See Distribution for how to obtain a copy.

See the history file for a list of the revisions, additions, and bug fixes.


The GoHTTP.v20 filter provides the following functionality:


Limitations of the system:

Speed / Performance of the CGI support.
The biggest limitation of the system is the speed/performance of the CGI support -- due to the overhead involved in acquiring separate environments for each external process, the speed of completion of a CGI request is not nearly as fast as the integrated imagemap processing or normal file services. Expect CGI requests to take better than 1 second to complete -- on my 486DX33, it averaged just over 2 seconds per request.

Now a caveat upon my own caveat: After further testing, I find that my OS2HTTPD server process on the same machine is actually returning responses for the very same script with an average delay of just over 3 seconds per request. It may be that the GoHTTP code might actually be a bit faster, but further testing is definitely needed... [DLM, 16 May]

In addition to speed, the asynchronous nature of the CGI (it pipes script output to temporary files...) prevents correct operation of CGI scripts that employ what is called Server-Push, or multipart segmented documents. The multipart, segmented documents will be successfully transmitted -- all at the same time, which defeats the intent of Server-Push.

A solution to this is has been developed, and is currently in testing. Early results show that the method which allows Server-Push is approximately 40% slower than the existing method, therefore work will have to be done to optimize performance. This may mean defining a special CGI directory for those CGI programs requiring the special treatment...

Proxy support
The current filter does not support proxy requests. Several individuals are working on a solution, hopefully one will come up with something that can be rolled into the filter.

Under Development...

I am currently working on the following improvements/modifications:

Of course, other suggestions are welcome...
Updated 12 September, 1995 / Suggestions & Comments to meyer@larch.ag.uiuc.edu