As you traverse the vast frontier
of the World Wide Web, you will come across documents that make
you wonder, "How did they do this?" These documents
could consist of, among other things, forms that ask for feedback
or registration information, imagemaps that allow you to click on
various parts of the image, counters that display the number of
users that accessed the document, and utilities that allow you to
search databases for particular information. In most cases, you'll
find that these effects were achieved using the Common Gateway Interface,
commonly known as CGI.
One of the Internet's worst-kept
secrets is that CGI is astoundingly simple. That is, it's trivial
in design, and anyone with an iota of programming experience can
write rudimentary scripts that work. It's only when your needs are
more demanding that you have to master the more complex workings
of the Web. In a way, CGI is easy the same way cooking is easy:
anyone can toast a muffin or poach an egg. It's only when you want
a Hollandaise sauce that things start to get complicated.
CGI is
the part of the Web server that can communicate with other programs
running on the server. With CGI, the Web server can call up a program,
while passing user-specific data to the program (such as what host
the user is connecting from, or input the user has supplied using
HTML form syntax). The program then processes
that data and the server passes the program's response back to the
Web browser.
CGI isn't magic; it's just programming
with some special types of input and a few strict rules on program
output. Everything in between is just programming. Of course, there
are special techniques that are particular to CGI, and that's what
this book is mostly about. But underlying it all is the simple model
shown in Figure 1.1.