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
forms 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:
- You (the webmaster) specify a form tag which includes the name of
the CGI routine.
- You create HTML tags which retrieves data from your visitors.
- 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.
- 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.
- This CGI routine can get data from variable names. It retrieves the
data and does whatever action is required.
- 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 does support CGI, but it tends 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.
Themestream Comments
VERY useful information. Thanks! - Amanda Wilkes Roa
Additional Reading
- CGI scripting CGI scripts are a way to get data to and from a server. Many paid hosts support it, and some of the free hosts are beginning to.
- CGI- What the Heck Is That? What is CGI? It's a way to get a web server to do something for you.
- CGI protection codes Adding CGI scripts to your web site? Be sure you understand how the protection scheme works before you do!
- Drawbacks Of CGI CGI scripts are a universal and easy way to get a server to do something for you. However, there are some drawbacks.
- Formmail Security Issues Formmail is a great CGI routine which is very common on the internet. It is used to allow data to be entered and emailed, and it
has a basic security flaw.
Unless otherwise noted, all photos and text is Copyright © Richard G Lowe, Jr.