As mentioned in the previous section, the flip side of a Web browser is the Web server, the application that actually locates and delivers content from a specified URI to the browser. What does a Web server have to do? At the most basic level, it simply has to deliver HTML and other content in response to incoming requests. However, to be useful in a modern Web-oriented environment, a Web server has to do several things. The most important of these are the following:
■ Be flexible and configurable to make it easy to add new capabilities, Web sites, and support increasing demand without recompilation and/or reinstallation.
■ Support authentication to limit users who can access specific pages and Web sites.
■ Support applications that dynamically generate Web pages, such as Perl and PHP, to support a customizable and personal user experience.
■ Maintain logs that can track requests for various pages so that you can both identify problems and figure out the popularity of various pages and Web sites.
■ Support encrypted communications between the browser and server, to guarantee and validate the security of those communications.
The order of importance of these various requirements depends on whether you are a systems administrator or e-commerce merchant, but all modern Web servers must provide at least these capabilities.
Many different Web servers are available today, depending on your hardware platform, the software requirements of third-party software that a Web site depends on, your fealty to a particular operating system vendor, and whether or not you are willing to run open source software, get additional power, and save money.
As you might expect, the first Web server in the world went online at CERN, along with the first Web browser. These were written and ran on NeXT workstations, not exactly the world's most popular platform (sadly enough). The first test of a Web server outside of Europe was made using a server running at the Stanford Linear Accelerator Center (SLAC) in the United States.
The development focus of Web servers that ran on more popular machines was initially the NCSA (National Center for Supercomputing Applications) Web server, known as NCSA httpd (HTTP Daemon). Their development of a freely available Web server paralleled their development of the NCSA browser, known as Mosaic. (See Chapter 11 for information about Mosaic and its place in Web browser history.) When one of the primary developers of NCSA httpd (Rob McCool) left the NCSA, a group of NCSA httpd fans, maintain-ers, and developers formed to maintain and support a set of patches for NCSA httpd. This patched server eventually came to be known as the Apache Web server. Although the official Apache Web site used to claim that the name "Apache" was chosen because of their respect for the endurance and fighting skills of the Apache Indians, most people (myself included) think that this was a joke, and that the name was chosen because the Web server initially consisted of many patches—in other words, it was "a patchy Web server."
Although some Linux distributions still provide Apache 1.x servers as an installation option, the Ubuntu repositories only provide the apache2 Web server because its code base and configuration mechanisms are much improved over earlier versions of Apache. Apache 2.x is a far superior Web server and where future Apache extension development is going to take place. Any references to Apache in this chapter should be taken to refer to the Apache 2.x Web server.
Today, Apache Web servers installed at sites across the Internet deliver more Web content than any other Web server. I forget the name of the second most popular Web server, but it only runs on a single operating system (which is not Linux) and therefore loses conceptually as well as numerically.
Was this article helpful?