Essentials
Developer Info
Download!
Documentation
Subprojects
Miscellaneous
|
What the Apache HTTP Server Project?
|
The Apache Project is a collaborative software development effort aimed
at creating a robust, commercial-grade, featureful, and freely-available
source code implementation of an HTTP (Web) server. The project is
jointly managed by a group of volunteers located around the world, using
the Internet and the Web to communicate, plan, and develop the server and
its related documentation. These volunteers are known as the Apache Group.
In addition, hundreds of users have contributed ideas, code, and
documentation to the project. This file is intended to briefly describe
the history of the Apache Group and recognize the many contributors.
|
How Apache Came to Be
|
In February of 1995, the most popular server software on the Web was the
public domain HTTP daemon developed by Rob McCool at the National Center
for Supercomputing Applications, University of Illinois, Urbana-Champaign.
However, development of that httpd had stalled after Rob left NCSA in
mid-1994, and many webmasters had developed their own extensions and bug
fixes that were in need of a common distribution. A small group of these
webmasters, contacted via private e-mail, gathered together for the purpose
of coordinating their changes (in the form of "patches").
Brian Behlendorf and Cliff Skolnick put together a mailing list,
shared information space, and logins for the core developers on a
machine in the California Bay Area, with bandwidth donated by HotWired.
By the end of February, eight core contributors formed the foundation of
the original Apache Group:
-
Brian Behlendorf |
Roy T. Fielding |
Rob Hartill |
David Robinson |
Cliff Skolnick |
Randy Terbush |
Robert S. Thau |
Andrew Wilson |
with additional contributions from
-
Eric Hagberg |
Frank Peters |
Nicolas Pioch |
Using NCSA httpd 1.3 as a base, we added all of the published bug fixes
and worthwhile enhancements we could find, tested the result on our own
servers, and made the first official public release (0.6.2) of the Apache
server in April 1995. By coincidence, NCSA restarted their own development
during the same period, and Brandon Long and Beth Frank of the NCSA Server
Development Team joined the list in March as honorary members so that the
two projects could share ideas and fixes.
The early Apache server was a big hit, but we all knew that the codebase
needed a general overhaul and redesign. During May-June 1995, while
Rob Hartill and the rest of the group focused on implementing new features
for 0.7.x (like pre-forked child processes) and supporting the rapidly growing
Apache user community, Robert Thau designed a new server architecture
(code-named Shambhala) which included a modular structure and API for better
extensibility, pool-based memory allocation, and an adaptive pre-forking
process model. The group switched to this new server base in July and added
the features from 0.7.x, resulting in Apache 0.8.8 (and its brethren)
in August.
After extensive beta testing, many ports to obscure platforms, a new set
of documentation (by David Robinson), and the addition of many features
in the form of our standard modules, Apache 1.0 was released on
December 1, 1995.
Less than a year after the group was formed, the Apache server passed
NCSA's httpd as the #1 server on the Internet.
The survey by Netcraft
shows that Apache is today more widely used than all other web servers
combined.
|
Getting Involved
|
If you just want to send in an occasional suggestion/fix, then you can
just use the bug reporting form at
<http://httpd.apache.org/bug_report.html>.
You can also subscribe to the announcements mailing list
(announce@apache.org) which we use to
broadcast information about new releases, bugfixes, and upcoming
events. There's a lot of information about the development process
(much of it in serious need of updating) to be found at
<http://dev.apache.org/>.
NOTE:
The developer mailing list is not
a user support forum; it is for people actively working on development
of the server code and documentation, and for planning future
directions. If you have user/configuration questions, send them
to the USENET newsgroup
"comp.infosystems.www.servers.unix" or
"comp.infosystems.www.servers.ms-windows"
(as appropriate for the platform you use).
|
Development
|
There is a core group of contributors (informally called the
"core") which was formed from the project founders and is
augmented from time to time when core members nominate outstanding
contributors and the rest of the core members agree. The core group
focus is more on "business" issues and limited-circulation
things like security problems than on mainstream code development.
The term "The Apache Group" technically refers to this core of
project contributors.
The Apache Group is a meritocracy -- the more work you have done, the
more you are allowed to do. The group founders set the original rules, but
they can be changed by vote of the active members. There is a group
of people who have logins on our server and access to the
CVS repository. Everyone has access to the CVS snapshots. Changes to
the code are proposed on the mailing list and usually voted on by active
members -- three +1 (yes votes) and no -1 (no votes, or vetoes) are needed
to commit a code change during a release cycle; docs are usually committed
first and then changed as needed, with conflicts resolved by majority vote.
Our primary method of communication is our mailing list. Approximately 40
messages a day flow over the list, and are typically very conversational in
tone. We discuss new features to add, bug fixes, user problems, developments
in the web server community, release dates, etc. The actual code development
takes place on the developers' local machines, with proposed changes
communicated using a patch (output of a unified
"diff -u oldfile newfile" command), and committed
to the source repository by one of the core developers using remote CVS.
Anyone on the mailing list can vote on a particular issue, but we only
count those made by active members or people who are known to be experts
on that part of the server. Vetoes must be accompanied by a convincing
explanation.
New members of the Apache Group are added when a frequent contributor is
nominated by one member and unanimously approved by the voting members.
In most cases, this "new" member has been actively contributing
to the group's work for over six months, so it's usually an easy decision.
The above describes our past and current (as of January 1998) guidelines,
which will probably change over time as the membership of the group changes
and our development/coordination tools improve.
|
Why Apache is Free
|
Apache exists to provide a robust and commercial-grade reference
implementation of the HTTP protocol. It must remain a platform upon which
individuals and institutions can build reliable systems, both for
experimental purposes and for mission-critical purposes. We believe the
tools of online publishing should be in the hands of everyone, and
software companies should make their money providing value-added services
such as specialized modules and support, amongst other things. We realize
that it is often seen as an economic advantage for one company to
"own" a market - in the software industry that means to control
tightly a particular conduit such that all others must pay. This is
typically done by "owning" the protocols through which
companies conduct business, at the expense of all those other companies.
To the extent that the protocols of the World Wide Web remain
"unowned" by a single company, the Web will remain a level
playing field for companies large and small. Thus, "ownership"
of the protocol must be prevented, and the existence of a robust reference
implementation of the protocol, available absolutely for free to all
companies, is a tremendously good thing.
Furthermore, Apache is an organic entity; those who benefit from it
by using it often contribute back to it by providing feature enhancements,
bug fixes, and support for others in public newsgroups. The amount of
effort expended by any particular individual is usually fairly light, but
the resulting product is made very strong. This kind of community can
only happen with freeware -- when someone pays for software, they usually
aren't willing to fix its bugs. One can argue, then, that Apache's
strength comes from the fact that it's free, and if it were made
"not free" it would suffer tremendously, even if that money
were spent on a real development team.
We want to see Apache used very widely -- by large companies, small
companies, research institutions, schools, individuals, in the intranet
environment, everywhere -- even though this may mean that companies who
could afford commercial software, and would pay for it without blinking,
might get a "free ride" by using Apache. We would even be
happy if some commercial software companies completely dropped their
own HTTP server development plans and used Apache as a base, with the
proper attributions as described in the LICENSE file.
|
|