Re: CGI and typing files by suffix

Rob McCool (
Thu, 30 Dec 1993 14:06:35 -0600

* Re: CGI and typing files by suffix by Tony Sanders (sanders@BSDI.COM)
* written on Dec 30, 11:30am.
* > Does Plexus parse the URL by doing stats through the file system to
* > find out where the "path/cmd" ends and the "args" begin? I find this
* Plexus has an associative array:
* map /man &do_man($top, $rest, $query)
* So it just looks it up in the table and eval()'s it's contents. Having
* a fixed table of allowed scripts has it's features (security) and drawbacks
* (manual updates). However, I don't add scripts every day so I haven't
* found it to be a problem myself.

As I'm reading it, this would be equivalent to assuming that ScriptAlias
always pointed to a script...

* Let's say I currently have the URLs:
* http://server/man/1/ls
* http://server/man/1/cat
* ...
* Now, let's say I want to change this so that instead of a bunch of files
* in the man directory I want to convert `man' to be a script (maybe I want
* to generate the html on the fly, maybe I want to WAIS all the data and
* provide a search engine as well as a browsing engine). With the ';' scheme
* I would have to change all the URLs in the world that point to my data to
* read "http://server/man;html1/ls" (many of which I do not own or even know
* about).

Speaking as one of the people that has to figure out how to reduce the load
on, there are often a LOT of links you don't know about.

* This is not acceptable. This is a real-life situation, I have
* done this and I know several other people who have done it (converted
* a directory hierarchy to use a search gateway).
* The only advantage to ';' is that it's a little easier to parse. This
* isn't a significant enough advancement that it's worth breaking the
* script/non-script symmetry.

I agree. I also would agree that I could have been a little more sensible in
my implementation of extra path info in NCSA httpd, to make the required
number of stats average 1 instead of 3-4. However, this is something I
feel can be fixed in the current protocol and does not require a new one.