Chapter 20. CGI Scripting and Alternatives
When a web browser (or other web
client) requests a page from a web server, the server may return
either static or dynamic content. Serving dynamic content involves
server-side web programs that generate and deliver content on the
fly, often based on information that is stored in a database. The one
longstanding Web-wide standard for server-side programming is known
as CGI, which stands for Common Gateway Interface. In server-side
programming, a client sends a structured request to a web server. The
server runs another program, passing the content of the request. The
server captures the output of the other program, and sends that
output to the client as the response to the original request. In
other words, the server's role is that of a gateway
between the client and the other program. The other program is called
a CGI program or CGI script.
CGI enjoys the typical advantages of standards. When you program to
the CGI standard, your program can be deployed on different web
servers, and work despite the differences. This chapter focuses on
CGI scripting in Python. It also mentions the downsides of CGI
(basically, issues of scalability under high load) and some of the
alternative, nonstandard server-side architectures that you can use
instead of CGI.
This chapter assumes that you are familiar with both HTML and HTTP.
For reference material on both of these standards, see
Webmaster in a Nutshell, by Stephen Spainhour
and Robert Eckstein (O'Reilly). For detailed
coverage of HTML, I recommend HTML & XHTML: The
Definitive Guide, by Chuck Musciano and Bill Kennedy
(O'Reilly). And for additional coverage of HTTP, see
the HTTP Pocket Reference, by Clinton Wong
(O'Reilly).
|