CGI, the common gateway interface, is used to generate web pages dynamically; essentially, the browser invokes a program on the server that creates a new page on the fly. This web page may be based purely on server data, or it may process the results of a client form submission, the URL the client chose, or various environment variables. CGI programs can be written in almost any language, including Java, though currently most CGI programming is done in Perl, C, or AppleScript.

CGI programs run as independent processes, initiated by the HTTP server each time a request for services is received. This has three important consequences. First, CGI programs are relatively safe to run. A CGI program can crash without damaging the server, at least on preemptively multitasking memory-protected operating systems such as Unix and NT. Second, the CGI program has strictly limited access to the server. Third, CGI programs exact a performance penalty relative to serving a static file, because of the overhead of spawning a separate process for each request.

The simplest CGI programs run without any input from the user. From the viewpoint of the client, these are accessed like any other web page and aren’t of much concern to this book. The difference between a web page produced by a CGI program that takes no input and a web page written in static HTML is all on the server side. What happens on the server side has been adequately covered in several other books. For more information about writing ...

Get Java Network Programming, Second Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.