The Common Gateway Interface (CGI)
One of the most popular uses for Perl on the Web is writing CGI programs. These run on a web server to process the results of a form, perform a search, produce dynamic web content, or count the number of accesses to a web page.
The CGI module, which comes
with Perl, provides an easy way to access the form parameters and to
generate some HTML in responses. It may be tempting to skip the module
and simply copy-and-paste one of the snippets of code that purport to
give access to the form parameters, but nearly all of these are
buggy.[*] When writing CGI programs, though, there are several big
issues to keep in mind. These make this topic too broad to fully include
in this book:[†]
- Security, security, security
We can’t overemphasize security. Somewhere around half of the successful attacks on computers around the world involve a security-related bug in a CGI program.
- Concurrency issues
It’s easy to have several processes that are concurrently trying to access a single file or resource.
- Standards compliance
No matter how hard you try, you probably won’t be able to test your program thoroughly with more than about 1 or 2% of the web browsers and servers that are in use today.[*] That’s because there are literally thousands of different programs available, with new ones popping up every week. The solution is to follow the standards, so your program will work with all of them.[†]
- Troubleshooting and debugging
Since the CGI program runs in a different environment ...