To serve up pages, websites need a hosta computerand server software that runs on the host. The host manages the communications protocols and houses the pages and the related software required to create a website on the Internet. The host machine often uses the Unix, Windows, Linux, or Macintosh operating systems, which have the TCP/IP protocols built in.
The server software resides on the host and serves up the pages and otherwise acts on the requests sent from the client browser software. The server software is not responsible for TCP/IP communicationsthe host operating system does thatbut instead the server software handles the HTTP requests and communications with the host operating system.
Different types of server software (database servers, FTP servers, or network servers, for example) perform various types of services for various types of clients. Specifically, a web server is an HTTP server, and its function is to send information to the client software (typically a browser) using the Hypertext Transfer Protocol (HTTP).
Usually, the client browser requests that the server return an HTML document. The server receives this request and sends back a response. The top portion of the response includes transmission information, and the rest of the response is the HTML file.
A web server does more than send pages to the browser, however. It passes requests to run Common Gateway Interface (CGI) scripts to CGI applications. These scripts run external mini-programs, such as a database lookup or interactive forms processing. The server sends the script to the application via CGI and communicates the results of the script back to the browser, if appropriate. (For more information about CGI, turn to Chapter 35, "How CGI Scripting Works.") Moreover, the server software includes configuration files and utilities to secure and manage the website in a variety of ways.