At 5:00 PM +0100 9/13/06, David Cantrell wrote:
On Tue, Sep 12, 2006 at 03:08:03PM -0700, Darren Duncan wrote:
 > The word "CGI" generally speaks to an old, weak, and relatively
 inefficient technology ... modern proper stuff does not spin off a
 separate process for each server request; it reuses an existing
 server ala mod_perl.

To me the Commong Gateway Interface means a standard method for dealing
with data supplied by the user, nothing more.  It certainly doesn't
specify how you should implement it.  Indeed, every mod_perl application
I've seen uses CGI.

I beg to differ. "CGI" is very much an implementation detail. It is a gateway protocol for how 2 different processes communicate.


An HTTP server is often used as a gateway to a legacy information system; for example, an existing body of documents or an existing database application. The Common Gateway Interface is an agreement between HTTP server implementors about how to integrate such gateway scripts and programs.


The Common Gateway Interface (CGI) is a standard protocol for interfacing external application software with an information server, commonly a web server. This allows the server to pass requests from a client web browser to the external application. The web server can then return the output from the application to the web browser.

Because this technology generally requires a fresh copy of the program to be executed for every CGI request, the workload could quickly overwhelm web servers, inspiring more efficient technologies such as mod_perl or ASP that allow script interpreters to be integrated directly into web servers as modules, thus avoiding the overhead of repeatedly loading and initializing language interpreters.

So "CGI" is absolutely not a good name for a new and modern module's design where the module's functionality isn't CGI-specific.

-- Darren Duncan

Reply via email to