Apache HTTP Server: Difference between revisions

From Citizendium
Jump to navigation Jump to search
imported>Eric M Gearhart
imported>Eric M Gearhart
Line 9: Line 9:
==Apache's Architecture==
==Apache's Architecture==
===The 1.x Branch===
===The 1.x Branch===
''note: you can help! Please add to this section''
''note: you can help! Please [http://en.citizendium.org/wiki?title=Apache_HTTP_Server&action=edit&section=3 add to] this section''


===The 2.0 Branch===
===The 2.0 Branch===

Revision as of 12:25, 11 July 2007

The Apache "feather" logo

The Apache HTTP Server is one of the first World Wide Web servers to gain popularity on the Internet. The explosive growth of the Web can be directly correlated with Apache's growth, due primarily to its popularity as a free, open source project. The Apache HTTP Server project itself is now "held up" as another example of a success in open source software, much the same as the operating system Linux has been.

Apache can be run on a variety of platforms: various Unix and Unix like systems, Microsoft Windows, Novell NetWare, Mac OS X and other operating systems.

History

When first released, Apache was the only viable free/open source alternative to the Netscape Communications Corporation web server (currently known as Sun Java System Web Server). It has since evolved to rival other Unix-based web servers in terms of functionality and performance. Since April 1996, Apache has been the most popular HTTP server on the World Wide Web; as of March 2007 Apache served 58% of all websites.[1]

Apache's Architecture

The 1.x Branch

note: you can help! Please add to this section

The 2.0 Branch

The 2.0 branch of Apache was a major step forward in terms of its architecture and development system, across every platform that Apache ran on at the time. Specific performance issues were addressed, and will be discussed below.

Version 2.0 finally brought true POSIX multithreading to the Unix platforms, improving scalability.[2] Better support for non-Unix platforms was also addressed, by using a new concept where the "engine" of Apache was now modular, and is able to be chosen when Apache is compiled. These "Multi-Processing Modules" (MPMs) are responsible for binding to network ports on the machine, accepting requests, and dispatching children to handle the requests. [3] This vastly improved Apache's performance and stability on non-Unix platforms because it allowed operating system-specific MPMs to be built without adherence to specific standards, such as POSIX. On some operating systems (such as Windows NT) using the native POSIX layer hindered performance significantly.

The build system was also rewritten from scratch to be based on the popular build tools autoconf and libtool. Instead of a custom build process, Apache's configuration and compilation was now much more similar to that of other common Unix programs.[2]

The curent 2.2 Branch

References

  1. March 2007 Web Server Survey. Netcraft (2007-03).
  2. 2.0 2.1 "Overview of new features in Apache 2.0" (Retrieved 2007-04-15).
  3. "Multi-Processing Modules (MPMs)" (Retrieved 2007-04-15).

External Links

  • The Apache HTTP Server Project Homepage, one project among many at the Apache Software Foundation