The World Wide Web, as it is known today, began as a project of Tim Berners-Lee at the European Center for Particle Physics (CERN). The original goal was to provide one consistent interface for geographically dispersed researchers and scientists who needed access to information in a variety of formats. From this idea came the concept of using one client (the Web browser) to access data (text, images, sounds, video, and binary files) from several types of servers (HTTP, FTP, SMTP, Gopher, NNTP, WAIS, Finger, and streaming-media servers).
The Web server usually has a simpler job: to accept HTTP (HyperText Transfer Protocol) requests and send a response to the client. However, this job can get much more complex (as the server can also), executing functions such as:
Performing access-control based on file permissions, user name/password pairs, and hostname/IP address restrictions.
Parsing a document (substituting appropriate values for any conditional fields within the document) before sending it to the client.
Spawning a CGI (Common Gateway Interface) script or custom API (Application Program Interface) program to evaluate the contents of a submitted form, presenting a dynamically created document, or accessing a database.
Sending a Java applet to the client.
Logging any successful accesses, failures, and errors.
The Apache Web server was originally based on HTTPd, a free server from NCSA (the National Center for Supercomputing Applications). At the time, HTTPd was the most common server on the Internet.
Unfortunately, the development of the server wasn't keeping up with the needs of Webmasters, and several security problems had been discovered. Many Webmasters had been independently applying their own features and fixes to the NCSA source code. In early 1995, a group of these developers pooled their efforts and created "a patchy server," initially just a collection of patches to the HTTPd code. Since then, the Apache Group has largely rewritten the code and created a stable, multiplatform Web server daemon.
Apache is also the base for several other Web servers, most of which use Apache's freely available source code and add improved security features such as SSL (Secure Sockets Layer) for encrypted data transfer or advanced authentication modules.
Several of the main features of the Apache Web server include:
The stability and rapid development cycle associated with a large group of cooperative volunteer programmers.
Full source code, downloadable at no charge. Ease of configuration using plain-text files.
Access-control based on client hostname/IP address or user name/password combinations. Support for server-side scripting as well as CGI scripts.
A custom API that enables external modules (for example, for extended logging capabilities, improved authentication, caching, connection tracking, and so on) to be utilized by the server daemon.
Although Apache is widely used, it is not the only one available for Red Hat Linux. See the accompanying sidebar for descriptions of other Web servers that are available for Red Hat and other Linux flavors.
Apache is not the only Web server that runs on Red Hat Linux, but it is the most popular and the most common server on the Internet, according to recent Netcraft surveys (www.netcraft.com/survey/). Some other servers are described below, with URLs that provide more detailed information.
Stronghold 3 — Based on Apache 1.3.6, this server features 128-bit SSL encryption and a digital certificate. According to Netcraft, Stronghold is the number one commercial SSL Web server running on UNIX systems. Although it is not a free server, it does include full source code. Details are available from http://www.c2net.com/. Red Hat has acquired C2Net, resulting in a combination of their popular Web technologies.
iPlanet Web Server — The iPlanet Web Server is offered by an alliance of Sun Microsystems and Netscape. The FastTrack Edition is a free version that includes support for Java, SSL, and LDAP. It also contains a full GUI. You can download a free copy of the FastTrack Edition or trial of the Enterprise Edition from http://www.iplanet.com/.
AOLserver 3 — Originally called NaviPress, it features Web-based administration, access-control, SSL encryption, and SQL database drivers. More information and downloadable source code can be found at www.aolserver.com/.
Boa 0.94 — Designed to be fast and simple and not laden with features, Boa requires less system resources than other servers and is ideal for older hardware. It can be downloaded from www.boa.org/.
CERN (W3C) httpd — The original (HTTP/1.0) "reference server" of the W3C (World Wide Web Consortium), this program is no longer being developed. The code is still available at www.w3c.org/Daemon/.
CERN (W3C) Jigsaw 2.2 — The latest HTTP/1.1 reference server, written completely in Java and freely available, can be found at www.w3c.org/Tigsaw/. It features extensive caching, an improved mechanism for executing external programs (although CGI is also supported), and a graphical administration tool.
NCSA HTTPd — One of the earliest Web-server daemons and the original code base for the Apache project. Although it is no longer being developed, the source code is still available at http://hoohoo.ncsa.uiuc.edu/.
Servertec iServer 1.1 — Written in Java, this relatively small server provides load balancing and fault tolerance in a clustered environment and can be easily coupled with application and database servers. Further details are available at www.servertec.com/products/iws/iws.html.
WN 2.3 — More features than Boa but still somewhat small, this server features an advanced searching facility, parsed and conditionally served documents, and improved file-security features. Details and source code can be found at http://hopf.math.nwu.edu/docs/overview.html.
Zeus Web Server — Designed for use by Internet Service Providers (ISPs), it features clustering support, 128-bit SSL encryption, and a GUI for management. More information and pricing details can be found at www.zeustech.net/products.
Was this article helpful?