The Apache HTTP Server Project http://www.apache.org/ February 1999 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, recognize the many contributors, and explain how you can join the fun too. 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 and diskspace donated by HotWired and Organic Online. 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 (http://www.netcraft.com/survey/) shows that Apache is today more widely used than all other web servers combined. ============================================================================ Current Apache Group in alphabetical order as of 14 February 1999: Brian Behlendorf O'Reilly and Associates, California Ken Coar IBM Corporation, Research Triangle Park, NC, USA Mark J. Cox C2Net Europe, UK Lars Eilebrecht Cable & Wireless ECRC, Munich, Germany Ralf S. Engelschall Munich, Germany. Roy T. Fielding UC Irvine, California Dean Gaudet Critical Path, California Rob Hartill Internet Movie DB, UK Ben Hyde Gensym, Massachusetts Jim Jagielski jaguNET ISP, Maryland Alexei Kosut Stanford University, California Martin Kraemer Munich, Germany Ben Laurie Freelance Consultant, UK Doug MacEachern Critical Path, California Aram W. Mirzadeh Qosina Corporation, New York Sameer Parekh C2Net, California Cliff Skolnick Freelance, California Marc Slemko Canada Bill Stoddard IBM Corp., Research Triangle Park, NC Paul Sutton C2Net Europe, UK Randy Terbush Covalent Technologies, Nebraska Dirk-Willem van Gulik Freelance Consultant, Italy Apache Emeritae (old group members now off doing other things) Chuck Murcko The Topsail Group, Pennsylvania David Robinson Cambridge University, UK Robert S. Thau MIT, Massachusetts Andrew Wilson Freelance Consultant, UK Other major contributors Howard Fear (mod_include), Florent Guillaume (language negotiation), Koen Holtman (rewrite of mod_negotiation), Kevin Hughes (creator of all those nifty icons), Rasmus Lerdorf (mod_info, mod_php, mod_php3), Brandon Long and Beth Frank (NCSA Server Development Team, post-1.3), Ambarish Malpani (Beginning of the NT port), Rob McCool (original author of the NCSA httpd 1.3), Paul Richards (convinced the group to use remote CVS after 1.0), Garey Smiley (OS/2 port), Henry Spencer (author of the regex library). Many 3rd-party modules, frequently used and recommended, are also freely-available and linked from the related projects page: , and their authors frequently contribute ideas, patches, and testing. In particular, Doug MacEachern (mod_perl) and Rasmus Lerdorf (mod_php). Hundreds of people have made individual contributions to the Apache project. Patch contributors are listed in the src/CHANGES file. Frequent contributors have included Petr Lampa, Tom Tromey, James H. Cloos Jr., Ed Korthof, Nathan Neulinger, Jason S. Clary, Jason A. Dour, Michael Douglass, Tony Sanders, Brian Tao, Michael Smith, Adam Sussman, Nathan Schrenk, Matthew Gray, and John Heidemann. ============================================================================ How to become involved in the Apache project There are several levels of contributing. If you just want to send in an occasional suggestion/fix, then you can just use the bug reporting form at . You can also subscribe to the announcements mailing list (apache-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 . If you'd like to become an active contributor to the Apache project (the group of volunteers who vote on changes to the distributed server), then you need to start by subscribing to the new-httpd@apache.org mailing list. One warning though: traffic is high, 1000 to 1500 messages/month. To subscribe to the list, send "subscribe new-httpd" in the body of a message to . We recommend reading the list for a while before trying to jump in to development. NOTE: The developer mailing list (new-httpd@apache.org) 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". 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 project 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 (hyperreal.com) 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 April 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. Thanks for using Apache! ============================================================================ Roy Fielding, June 1997