综合百科行业百科金融百科经济百科资源百科管理百科
管理百科
管理营销
资源百科
人力财务
经济百科
经济贸易
金融百科
金融证券
行业百科
物流咨询
综合百科
人物品牌

ApacheHTTPServerProject

  	      	      	    	    	      	    

Apache HTTP Server Project——世界使用排名第一的Web服务器软件

目录

Apache HTTP Server Project简介

  Apache HTTP Server Project(简称Apache)是Apache软件基金会的一个开放源码的网页伺服器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将PerlPython等解释器编译到服务器中。

  Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上。

  Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。Apache取自“a patchy server”的读音,意思是充满补丁的服务器,因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。

  本来它只用于小型或试验Internet网络,后来逐步扩充到各种Unix系统中,尤其对Linux的支持相当完美。Apache有多种产品,可以支持SSL技术,支持多个虚拟主机。Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此,在一个Apache Web站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。到目前为止Apache仍然是世界上用的最多的Web服务器市场占有率达60%左右。世界上很多著名的网站如Amazon.comYahoo!、W3 Consortium、Financial Times等都是Apache的产物,它的成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的Unix、 Windows、Linux系统平台上)以及它的可移植性等方面。

  Apache的诞生极富有戏剧性。当NCSA WWW服务器项目停顿后,那些使用NCSA WWW服务器的人们开始交换他们用于该服务器的补丁程序,他们也很快认识到成立管理这些补丁程序的论坛是必要的。就这样,诞生了Apache Group,后来这个团体在NCSA的基础上创建了Apache。

  Apache web服务器软件拥有以下特性:

  •   支持最新的HTTP/1.1通信协议
  •   拥有简单而强有力的基于文件的配置过程
  •   支持通用网关接口
  •   支持基于IP和基于域名的虚拟主机
  •   支持多种方式的HTTP认证
  •   集成Perl处理模块
  •   集成代理服务器模块
  •   支持实时监视服务器状态和定制服务器日志
  •   支持服务器端包含指令(SSI)
  •   支持安全Socket层(SSL)
  •   提供用户会话过程的跟踪
  •   支持FastCGI
  •   通过第三方模块可以支持Java Servlets
  •   如果你准备选择Web服务器,毫无疑问Apache是你的最佳选择。

What IS the Apache HTTP Server Project?

The Apache HTTP Server 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. This project is part of the Apache Software Foundation. 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 HTTP Server 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 and according to the survey by Netcraft, it retains that position today.

In 1999, members of the Apache Group formed the Apache Software Foundation to provide organizational, legal, and financial support for the Apache HTTP Server. The foundation has placed the software on a solid footing for future development, and greatly expanded the number of Open Source software projects, which fall under this Foundation's umbrella.

Getting Involved

If you just want to send in an occasional suggestion/fix, then you can simply use the bug reporting form at <http://httpd.apache.org/bug_report.html>. You can also subscribe to the announcements mailing list (announce@httpd.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://httpd.apache.org/dev/>.

NOTE: The developer mailing list is NOT a user support forum; it is for people actively working on development of the server code. There is also a 'docs' subproject for those who are actively developing and translating the documentation. If you have user/configuration questions, subscribe to the Users list or try the USENET newsgroups "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, formed initially of the project founders, and augmented from time to time by other outstanding contributors. There are 'committers', who are granted access to the source code control respositories to help maintain the project or docs, and the core group now managing the project, which is called the Apache HTTP Project Management Committee (PMC, for short). In fact, each Apache Software Foundation project has its own PMC, to determine committers, project direction and overall management. The terms "The Apache Group" or "Apache Core" are no longer used.

The project is a meritocracy -- the more work you have done, the more you will be allowed to do. The group founders set the original rules, but they can be changed by vote of the active PMC members. There is a group of people who have logins on our server and access to the source code repositories. Everyone has read-only access to the repositories. 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 then applied to the source code control repositories by one of the committers. Anyone on the mailing list can vote on a particular issue, but only those made by active members or people who are known to be experts on that part of the server are counted towards the requirements for committing. Vetoes must be accompanied by a convincing technical justification.

New members of the Apache HTTP Project Management Committee 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 project guidelines continously evolve under the oversight of the PMC, as the membership of the group changes and our development/coordination tools improve.

Why Apache Software is Free

Apache Software exists to provide robust and commercial-grade reference implementations of many types of software. 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 that the tools of online publishing should be in the hands of everyone, and that software companies should make their money by 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 for its use. 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 protocols must be prevented. To this end, the existence of robust reference implementations of various protocols and application programming interfaces, available free to all companies and individuals, is a tremendously good thing.

Furthermore, the Apache Software Foundation is an organic entity; those who benefit from this software by using it, often contribute back to it by providing feature enhancements, bug fixes, and support for others in public lists and newsgroups. The effort expended by any particular individual is usually fairly light, but the resulting product is made very strong. These kinds of communities can only happen with freely available software -- when someone has paid for software, they usually aren't willing to fix its bugs for free. 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 Software 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 are even happy when some commercial software companies completely drop their own HTTP server development plans and use Apache as a base, with the proper attributions as described in the LICENSE. That is to say, the Apache HTTP Sever only comes from the Apache Software Foundation, but many vendors ship their own product "based on the Apache {Project}". There is no "{Vendor} Apache {Product}", this is an abuse of the Apache Software Foundation's marks.