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[1] 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).
[1] 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.
Introduction to Computers, the Internet and World Wide Web
Introduction to C++ Programming
Introduction to Classes and Objects
Control Statements: Part 1
Control Statements: Part 2
Functions and an Introduction to Recursion
Arrays and Vectors
Pointers and Pointer-Based Strings
Classes: A Deeper Look, Part 1
Classes: A Deeper Look, Part 2
Operator Overloading; String and Array Objects
Object-Oriented Programming: Inheritance
Object-Oriented Programming: Polymorphism
Templates
Stream Input/Output
Exception Handling
File Processing
Class string and String Stream Processing
Web Programming
Searching and Sorting
Data Structures
Bits, Characters, C-Strings and structs
Standard Template Library (STL)
Other Topics
Appendix A. Operator Precedence and Associativity Chart
Appendix B. ASCII Character Set
Appendix C. Fundamental Types
Appendix D. Number Systems
Appendix E. C Legacy Code Topics
Appendix F. Preprocessor
Appendix G. ATM Case Study Code
Appendix H. UML 2: Additional Diagram Types
Appendix I. C++ Internet and Web Resources
Appendix J. Introduction to XHTML
Appendix K. XHTML Special Characters
Appendix L. Using the Visual Studio .NET Debugger
Appendix M. Using the GNU C++ Debugger
Bibliography