Re: CGI/1.0 status

robm@ncsa.uiuc.edu (Rob McCool)
Message-id: <9312031004.AA12618@void.ncsa.uiuc.edu>
From: robm@ncsa.uiuc.edu (Rob McCool)
Date: Fri, 3 Dec 1993 04:04:15 -0600
In-Reply-To: George Phillips <phillips@cs.ubc.ca>
       "Re: CGI/1.0 status" (Dec  2, 10:31am)
X-Mailer: Mail User's Shell (7.2.5 10/14/92)
To: George Phillips <phillips@cs.ubc.ca>, <luotonen@ptsun00.cern.ch>
Subject: Re: CGI/1.0 status
Cc: <www-talk@nxoc01.cern.ch>
/*
 * Re: CGI/1.0 status  by George Phillips (phillips@cs.ubc.ca)
 *    written on Dec  2, 10:31am.
 *
 * Ari:
 * >Why does nph: (or now nph-) have to be present in the URL at all? -- It's
 * >information controlling the server.  I would prefer it being in the
 * >script filename suffix, automatically added by the server when searching
 * >for executable.  If you want to change a previously normal script to
 * >an nph- script you would have to modify all the docs containing URLs
 * >to that script.  If .nph is added by server no docs need to be changed.
 * 
 * Ah, yes, I knew there was some other reason why "nph-" in the URL
 * can cause you trouble.  However, I believe this is not a problem
 * under NCSA HTTPD because you can use ScriptAlias to hide the
 * script name (right?).  Even without the "nph" problem I'd use
 * scriptalias anyways -- no need to hard-code script names into the
 * URL.
 * 
 * I'll assume plexus is only one line of perl code away from a
 * similar mechanism, but maybe the CERN server can't do ScriptAlias
 * as easily.  Certainly I'd go along with Ari's suggestion, but
 * it may be a little painful for DOS, NT, OS/2 users -- they may
 * depend on .exe suffixes to execute things, I think.
 */

What I have currently implemented in NCSA httpd 1.0a6 is ScriptAlias for
CGI scripts and OldScriptAlias for non-CGI scripts. 

The other problem I see with Ari's suggestion (I'm picking performance nits
again) is that in order to implement extra path information, under my server
I'd have to do twice the stat() calls, and Ari would have to do three times
the stat() calls (assuming he's still using a .cgi extension to identify CGI
scripts).

I support using ScriptAlias to hide the nph-, even though it requires that
no-parse-header scripts either reside in a different directory, or (in NCSA
httpd's case) that the scripts that are nph- are explicitly listed before
their directory... i.e.

ScriptAlias /cgi/blast /usr/local/httpd/cgi/nph-blast

Or, better, would be to keep them in a separate directory and have

ScriptAlias /cgi/ /usr/local/httpd/cgi-nph/

Does this sound sensible?

--Rob