摘要
- Apache 的起点,是网站管理员已经分别为 NCSA httpd 1.3 编写修补程序。邮件列表、共享工作空间和贡献者在各自服务器上的测试,让这些修补第一次成为可共同检查、发布和采用的版本。
- 1995 年的 NCSA 并未消失:它恢复了开发,并与 Apache 成员交换修复。Apache 则从汇集补丁,转向 Robert Thau 设计的 Shambhala 模块化架构。
用户已经在维护服务器
1995 年初,NCSA httpd 是 Web 上广泛使用的服务器软件,但 Rob McCool 于 1994 年中离开 NCSA 后,项目开发明显放缓。运行服务器的人没有都坐等机构重新投入。有些网站管理员已为自己的部署增加功能、修复缺陷。缺少的是一条可靠路径,让各处的改动能相互比较、组合起来,并成为别人可以实际测试的版本。
Apache 项目的后期历史记载,最初是有人通过私人邮件联系这些管理员。随后,Brian Behlendorf 和 Cliff Skolnick 建立邮件列表、共享信息空间,并在旧金山湾区的一台机器上为核心开发者开设账号;HotWired 捐出了带宽。到 1995 年 2 月底,八名核心贡献者组成了最初的 Apache Group。这些设施没有把不同网站的服务器变成同一套系统,却为运营者提供了共同查看和讨论改动的地方。
团队以 NCSA httpd 1.3 为基础,汇集已发布的修复和有价值的增强,并在成员自己的服务器上测试合并后的版本。Apache 0.6.2 于 1995 年 4 月首次公开发布。Randy Terbush 在 4 月 27 日的同期公告中称,它是基于 NCSA 1.3 补丁的公共领域 HTTP 服务器,并列出内容协商、多域名、定制错误响应、原样发送文件、提高协议规范符合度和 DBM 身份验证等功能。
公告还点名了早期使用者,包括 HotWired、MIT AI Lab、Organic 和 Hyperreal,并列出经过测试的多种 Unix 系统。公告同时说明这是测试版,仍可能存在缺陷。共同发布并未消除运行风险;它让一组具体的改动能够被其他人看见和评估。
NCSA 仍在自己的路线开发
一种常见的简化叙述是:NCSA 完全放弃了服务器,Apache 填补留下的空白。但 Apache 项目的回顾记载,NCSA 在同期恢复了开发。NCSA 服务器团队的 Brandon Long 和 Beth Frank 于 3 月以荣誉成员身份加入列表,使两个项目可以交换想法和修复。1995 年 10 月的一则 Usenet 讨论也提到 NCSA 新版本仍在开发,并指出其中采用了 Apache 的一些功能。
两个团队争夺实际部署,却没有被一道技术边界隔开。对运营者来说,关键问题更具体:哪个版本能在自己的机器上运行,改了什么,出问题时能否退回。补丁可以先被检查,不必要求所有站点同步升级;发布版本让改动变得可复现,是否安装仍由每个站点决定。
这种协作也有成本。来自不同环境的补丁合并后,可能产生不兼容;团队必须测试更多平台、记录版本变化,还要响应不断增长的用户群。Apache 自己承认,0.6.2 虽然迅速受到欢迎,代码基础仍需要整体改造。开放协作不会让维护消失,它只是分担了工作;随着使用增长,协调要求也会增加。
补丁集合转成新的架构
1995 年 5 月和 6 月,团队一边开发 0.7 系列功能,例如预派生子进程,一边支持更多用户。与此同时,Robert Thau 设计了 Shambhala:采用模块结构和 API、基于内存池的分配方式,以及自适应预派生进程模型。团队在 7 月切换到新架构,Apache 0.8.8 于 8 月发布。经过更多测试、平台移植和文档工作后,Apache 1.0 于 1995 年 12 月 1 日推出。
这一步改变了未来修改能够如何加入服务器。最初,合作的重点是围绕一个已有服务器筛选和组合修复。Shambhala 则改变了后续开发所依附的结构:模块和 API 让扩展能力成为服务器设计的一部分,不再只是不断叠加新的补丁。
模块化也会重新分配约束。清晰的边界可以减少扩展对核心部分的干扰,却要求接口稳定、兼容性经过测试,并且有人长期维护。架构改造没有使维护自动化,而是把一部分协调问题移到了 API、模块和兼容约定上。站点运营者仍然选择运行什么版本,NCSA 也继续维护自己的服务器分支。
采用情况要看实际运行的主机
Apache 的增长证据主要来自 1996 年。Netcraft 在当年 8 月发布的调查帖子比较了 1995 年 8 月的 18,957 个响应主机与一年后的 342,081 个。在 1996 年的样本中,Apache 占 35%,NCSA 占 18%。Netcraft 提醒,样本扩大既反映 Web 自身增长,也反映它发现网站的能力提高。这些数字统计的是调查中响应并被识别的主机名,不是独立企业、用户、访问量,也不能单独证明 Apache 成功的原因。
但调查提供了发布公告无法证明的一环:许多运营者已经选择了 Apache。过程可见于实际环境:已知的基础版本、可比较的改动、本地测试、共同发行,之后再进行服务器架构重做。共同版本的实际权威来自它能否运行、能否被检验;邮件列表和维护团队促成了这种采用,却不能代替采用本身。
来源与证据边界
Apache 项目历史属于后来的机构回顾;1995 年 4 月公告和 1996 年 Netcraft 调查则是同期材料。本篇没有找到早期开发邮件列表的原始归档和完整部署日志。因此,Netcraft 数字只能视为有边界的样本;现有来源也不能证明 Apache 的维护方式单独改变了整个 Web 服务器市场。
主要资料
- Apache HTTP Server Project:《How Apache Came to Be》
- Randy Terbush:《Announcing the Apache HTTP web server project》(1995年4月27日)
- Mike Prettejohn / Netcraft:《August 1996 Web Server Survey》
- comp.infosystems.www.servers.unix:《Apache vs NCSA httpd 1.4》(1995年10月)
- Netcraft:《December 1996 Web Server Survey》
- Apache Software Foundation:《Timeline》
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance
