Let's unlock a little bit of the mystery about something
called CGI. If it helps any, CGI means Common Gateway
Interface. This is a method which is used to exchange data
between the server (the hardware and software that actually
allows you to get to your web site) and a web client (your
browser). CGI is actually a set of standards where a program
or script (a series of commands) can send data back to the web
server where it can be processed.
Typically, you use standard HTML tags to get data from a
person, then pass that data to a CGI routine. The CGI routine
then performs some action with the data.
Some of the more common uses of CGI include:
- Guestbooks - The CGI routine is responsible for accepting
the data, ensuring it is valid, sending an email
acknowledgement back to the writer, perhaps sending an email
to the webmaster, and creating the guestbook entry itself.
- Email Forms - A simple CGI form routine just formats the
data into an email and sends it back to the webmaster. More
complicated routines can maintain a database, send an
acknowledgement and validate data.
- Mailing List Maintenance - These routines allow visitors to
subscribe and unsubscribe from a mailing list. In this case,
the CGI routine maintains a database of email addresses, and
the better ones send acknowledgements back to the visitor and
webmaster.
A CGI routine can be anything which understands the CGI
standard. A popular CGI language is called PERL, which is
simple to understand and use (well, compared to other
languages). PERL is a scripting language, which means each
time a PERL routine is executed the web server must examine
the PERL commands to determine what to do. In contrast, a
compiled language such as C++ or Visual Basic can be directly
executed, which is faster and more efficient.
Okay, in a nutshell (and greatly simplified), here's how it
works:
1) You (the webmaster) specify a form tag which includes the
name of the CGI routine.
2) You create HTML tags which retrieve data from your
visitors.
3) Each of the input tags includes a variable name. The data
which is retrieved from the visitor (or directly set if the
tag includes the "hidden" qualifier) is placed in the variable
name.
4) When the visitor presses the "submit" button, the CGI
routine which was specified in the form tag is executed. At
this time, the CGI routine "takes control", meaning the
browser essentially is waiting for it to complete.
5) This CGI routine can get data from variable names. It
retrieves the data and does whatever action is required.
6) When the CGI routine finishes, it returns control back to
the web client (the browser).
Some important things to remember about CGI routines:
- You can install CGI routines on your own site if your host
allows it - Addr.Com is an example of a web host which allows
for CGI routines. Some web hosts do not allow you to install
your own routines but do provide some pre-written ones to you.
If these are not sufficient for your needs, you can find a
remote hosting service to provide the necessary functions.
- Generally, if you install your own routines they must be
installed in the cgi-bin directory of your site. This is a
special location which allows scripts and programs to be
executed.
- CGI routines work best on Apache-style servers. Windows NT
and Windows 2000 do support CGI, but tend to be slow and
problematic.
- If you use a remote hosting service, you must remember that
although they appear to be giving you this for free, you are
actually paying a price. Usually they want to display
advertisements, although some of them actually take visitors
away from your site.
- When you write a CGI routine, you have the choice of a
scripting language like PERL or a compiled language such as
C++ or Visual Basic. Anything which can execute on the web
server is acceptable.
I hope this short introduction to CGI has cleared up some of
the mystery.