Mailing List Archive

CGI specification (was Re: restructuring the server)
Beth wrote:
>... The administration
>and CGI tutorials are another set of meetings suggested. I
>figured those in this group would be most interested in
>the third set of meetings where we listen to gripes, discuss
>requested features and present our grand plans for a
>Dynamic Object Repository (DOR) as a bull's eye for y'all
>to shoot at. In particular we would like help developing
>an Application Program Interface (API) to replace/enhance
>CGI...

I've just tried to write a decent specification for CGI; not very
easy. Have a look at <URL:http://www.ast.cam.ac.uk/&7Edrtr/cgi.html>

I've aimed at a precise definition of all the environment variables;
In particular, PATH_INFO and PATH_TRANSLATED required some thought.
(I started this document to organise my thoughts about these variables
because of a discussion on this list)

I've highlighted problems areas with italicised notes; these still need to
be sorted out.

The main differences with the NCSA docs are:
1. I specify some objects completely; such as complete syntax for all
the environment variables.
2. I don't specify parameters which are features of the host operating system,
such as how the script access `environment variables', or what character
set it must use.
3. I give a rather different interpretation of PATH_INFO, QUERY_STRING and
PATH_TRANSLATED (the latter now optional); I was forced into this
interpretation by the behaviour of httpd/apache.
4. Emphasises that a standard CGI script does not and cannot know the
original URL the client requested. (And hence cannot use it as a base
for relative links in any HTML returned).
5. Some obvious minor improvements, such as ISINDEX queries must use the "GET"
method, or that the authentication information (AUTH_TYPE and REMOTE_USER)
should only be set if the _script_ is protected, rather than always if
the data is sent by the client.

The document is in the nature of a base specification; from it one could
derive CGI specifications for specific systems, such as Unix, MS-Windows etc.

I would welcome comments, especially about what should be done with this
document.

David.