Web Servers

Web servers are often referred to as HTTP servers. The term "HTTP server" is a good summary of their function: their basic task is to listen for HTTP requests on a network, receive HTTP requests made by user agents (usually web browsers), serve the requests, and return HTTP responses that contain the requested resources.

There are essentially two types of request made to a web server: the first asks for a file-often a static HTML web page or an image-to be returned, and the second asks for a program to be run and its output to be returned to the user agent. Simple requests for files are further discussed in Appendix B.

Requests for web scripts that access a database are examples of HTTP requests that require a server to run a program. With the software used in this tutorial, the HTTP requests are for PHP script resources, which require that the PHP Zend engine be run, a script retrieved and processed, and the script output captured.

The Apache HTTP server, Version 2.0

Version 1.3 of Apache has some limitations that will be addressed in Version 2.0. Version 2.0 is available for download, but at the time of writing remains in the beta-testing phase. Only around 20 sites are known to be using the beta version.

The significant enhancements in Apache 2.0 are:

  • Use of lighter-weight processes or threads in conjunction with the process model on the older versions. This will most likely offer significant performance improvement in starting new servers and reduce the overall memory requirements of running servers.

  • Better support, performance, and stability on non-Unix machines.

  • Addition of filtering modules so that data can be modified as it is processed by the web server.

  • Support for IPv6, the new version of the IP protocol in the TCP/IP networking suite.