With the advent of the World Wide Web, the Internet gained tremendous popularity. This greatly increased the volume of requests users made for information from Web sites. It became evident that the degree of interactivity between the user and the Web site would be crucial. The power of the Web resides not only in serving content to users, but also in responding to user requests and generating Web content dynamically.
In this chapter, we discuss specialized softwarecalled a Web serverthat responds to client (e.g., Web browser) requests by providing resources (e.g., XHTML documents) for display on clients. For example, when a user enters a Uniform Resource Locator (URL) address, such as www.deitel.com, into a Web browser, the user is requesting a specific document from a Web server. The Web server maps the URL to a file on the server (or to a file on the server's network) and returns the requested document to the client. During this interaction, the Web server and the client communicate through the Hypertext Transfer Protocol (HTTP), a platform-independent protocol for transferring requests and files that answer those requests over the Internet (i.e., between Web servers and Web browsers).
 The Extensible HyperText Markup Language (XHTML) has replaced the HyperText Markup Language (HTML) as the primary way of describing Web content. Readers not familiar with XHTML should read Appendix J, Introduction to XHTML, before reading this chapter.
Our Web server discussion introduces the Apache HTTP Server. For illustration purposes, we use Microsoft's Internet Explorer Web browser to request documents and, later, to display content returned from "CGI scripts." We discuss the Apache HTTP Server and CGI scripts in Section 19.5 and Section 19.7, respectively.