完 结 篇
Apache HTTP Server和 FastCGI介 绍

陈 彦 铭

Apache HTTP Server Project
http://www.apache.org/
  Apache HTTP Server在 七 月 初 时 推 出 了 1.1版 。 根 据 NetCraft公 司 同 时 间 公 布 的 调 查 结 果 指 出 , 在 目 前 HTTP Server市 场 占 有 率 为 第 一 的 正 是 Apache HTTP Server! 它 的 占 有 率 大 约 为 36%! 接 下 来 就 来 看 看 Apache HTTP Server的 一 些 资 料 。

  APACHE这 个 名 字 来 自 “ A PAtCHy server” 。 它 是 衍 生 自 1995年 初 相 当 风 行 的 NCSA HTTPD 1.3版 。 Apache的 作 者 以 其 为 基 础 加 以 改 进 後 推 出 。 由 於 当 时 Apache的 设 定 方 式 与 NCSA HTTPD差 不 多 , 且 增 加 了 一 些 功 能 , 更 重 要 的 是 , 它 的 速 度 比 NCSA HTTPD快 。 所 以 很 快 地 , 这 个 免 费 的 APACHE HTTP Server就 迅 速 获 得 各 Web sites管 理 者 的 青 睐 。

  Apache HTTP Server 1.1版 有 什 麽 新 的 特 点 呢 ?? 除 了 大 幅 改 写 的 核 心 部 份 (core), 还 有 更 加 方 便 的 Server API, 同 时 也 推 出 OS/2的 版 本 。 我 们 先 来 看 看 配 合 HTTP 1.1版 规 格 草 稿 的 一 些 新 功 能 :

Keep-Alive
  这 项 功 能 能 够 让 浏 览 器 和 伺 服 器 之 间 一 旦 建 立 起 连 接 之 後 , 就 能 够 善 用 两 者 间 的 TCP连 接 , 尽 可 能 地 多 传 资 料 , 根 据 实 验 , 在 某 些 情 况 下 , 增 加 的 速 率 可 能 高 达 50%!

Content-Negotiation
  前 几 期 曾 提 到 HTTP 1.1规 格 中 有 这 项 功 能 。 简 言 之 , 这 项 功 能 的 目 的 就 是 让 浏 览 器 拿 到 最 合 适 它 的 文 件 。 APACHE在 1.0版 的 时 候 加 了 一 个 模 组 (module)开 始 支 援 这 项 功 能 。 所 以 , 你 可 以 提 供 多 种 不 同 语 文 的 文 件 , 若 来 访 者 的 浏 览 器 有 设 定 较 喜 好 的 语 言 , 就 可 以 依 需 要 而 得 到 相 对 应 语 言 的 文 件 。

  除 了 这 两 个 特 点 外 , Apache 1.1版 有 个 很 重 要 的 新 功 能 , 就 是 它 也 同 时 具 备 有 Caching proxy 的 功 能 。 相 当 於 把 CERN httpd所 具 备 的 功 能 给 加 了 进 来 。 不 过 , 这 是 个 实 验 性 的 功 能 , 所 以 先 警 告 使 用 者 要 小 心 任 何 可 能 的 後 果 。

  看 了 Apache 1.1的 这 些 新 特 性 (以 上 只 列 举 其 中 一 部 份 而 已 ), 也 许 已 经 让 读 者 心 动 而 想 要 自 己 架 一 台 Linux(或 Freebsd)的 机 器 上 面 跑 Apache HTTP Server提 供 WWW的 服 务 了 。 笔 者 个 人 觉 得 , Apache最 特 别 的 一 个 特 点 在 於 它 的 模 组 化 。 许 多 额 外 或 特 别 的 功 能 都 写 成 一 个 个 的 模 组 (module), 然 後 在 compile server时 加 进 去 一 起 compile, 就 使 得 最 後 出 来 的 Server具 有 那 项 特 别 的 功 能 。 甚 至 於 读 者 也 可 以 根 据 Apache的 Server API自 行 修 改 或 撰 写 合 适 的 module, 然 後 再 加 进 去 。 网 路 上 有 不 少 人 热 中 於 贡 献 自 己 写 的 模 组 。 目 前 已 有 数 十 个 模 组 提 供 多 种 不 同 的 功 能 。

  本 文 後 段 会 介 绍 另 一 个 模 组,同 时 也 是 对 现 有 CGI规 格 的 一 大 改 进 FastCGI。 若 要 看 看 现 在 有 哪 些 专 门 为 Apache写 的 模 组 , 可 以 到 : http://www.zyzzyva.com/server/module_registry/

  这 是 一 个 专 门 给 Apache专 用 模 组 注 册 的 地 方 , 里 面 还 有 分 两 个 , 一 个 是 随 Apache原 始 码 一 起 散 布 的 模 组 , 另 一 个 是 其 他 人 贡 献 的 模 组 , 它 们 的 URLs分 别 是 : http://www.zyzzyva.com/server/module_registry/retreive.cgi? branch=corehttp://www.zyzzyva.com/server/module_registry/retreive.cgi?branch=contrib

  而 若 要 看 有 关 Apache HTTP Server的 一 切 正 式 资 料 , 台 湾 地 区 有 两 个 有 注 册 的 mirror web sites分 别 是 : http://www.ucnet.hinet.net/apache/, 读 者 就 可 以 不 必 大 老 远 跑 到 国 外 去 「 取 经 」 了 ! !

FastCGI
http://www.fastcgi.com/
  CGI Common Gateway Interface的 缩 写 。 它 的 存 在 使 得 避 免 针 对 不 同 Web Server API发 展 不 同 的 程 式 成 为 可 能 。 软 体 发 展 者 可 以 用 各 种 语 言 撰 写 程 式 作 为 W3 Server与 其 他 各 种 不 同 的 伺 服 器 间 沟 通 的 桥 梁 。 在 第 五 届 国 际 WWW会 议 中 , Open Market这 家 公 司 发 表 了 一 篇 论 文 , 标 题 是 “ FastCGI:A High-Performance Gateway Interface” 。 文 中 提 出 了 对 於 现 有 CGI规 格 的 改 进 与 功 能 的 增 强 。 现 有 的 CGI规 格 具 有 如 下 的 特 点 :

● 开 放 标 准
● 简 单 易 了 解
● 适 合 各 种 程 式 语 言
● 与 机 器 软 硬 体 架 构 无 关
● 与 Server的 程 序 (process)无 关
  而 CGI的 缺 点 在 於 执 行 的 速 度 不 够 快 (相 较 於 Server API写 的 程 式 )。 而 且 CGI所 扮 演 的 角 色 也 局 限 於 反 应 者 (responder)的 角 色 。 FastCGI除 了 具 有 CGI所 具 有 的 优 点 外 , 并 且 也 大 幅 改 进 执 行 的 速 度 。 此 外 最 大 的 特 点 还 有 一 个 , 就 是 它 也 使 得 分 散 执 行 应 用 程 式 成 为 可 能 的 事 情 。 目 前 可 以 发 展 FastCGI的 Server有 Open Market自 己 出 的 Secure WebServer, NCSA HTTPD 1.5.1, 还 有 上 面 提 到 的 Apache HTTP Server。 Apache用 的 FastCGI module可 以 在 http://www.fastcgi.com/servers/apache/连 同 说 明 文 件 一 起 取 得 。

Inferno
http://inferno.bell-labs.com/inferno/
  着 名 的 贝 尔 实 验 室 又 推 出 了 新 的 东 西 。 这 次 是 个 名 叫 “ Inferno” 的 网 路 作 业 系 统 (Network Operating System)及 程 式 设 计 环 境 和 一 个 名 叫 “ Limbo” 的 程 式 语 言 。 至 於 它 和 Java又 有 什 麽 异 同 呢 ??各 位 读 者 可 以 亲 自 到 这 个 Web site去 看 , 里 面 有 专 文 做 比 较 。

  笔 者 於 六 月 中 旬 自 学 校 毕 业 , 不 久 之 後 就 要 去 服 役 , 暂 时 无 法 再 继 续 写 文 章 , 给 我 网 网 可 能 因 此 暂 停 或 是 由 其 他 作 者 继 续 为 您 服 务 !