PersonalCorpus 版 (精华区)

发信人: first (匆匆), 信区: Network
标  题: 实 现WWW 的 基 础 技 术 
发信站: 紫 丁 香 (Wed Sep 23 16:55:55 1998), 转信



                                  

 

             实 现WWW 的 基 础 技 术 

 北 方 计 算 中 心Internet 安 全 系 统 实 验 室 宋
                              献 涛 



---- 编 者 按: 与 过 去 本 栏 目 的 文 章 相 比, 本 文 所
谈 到 的 不 算 是 什 么 新 技 术, 不 过,WWW 令 人 眩 目 地
发 展 到 现 在, 其 基 础 技 术 并 没 有 太 大 的 改 变, 今
天 刊 载 本 文 的 目 的 正 在 于 回 顾 这 些 未 变 的 基 础
技 术, 体 会" 温 故 而 知 新" 的 滋 味。 

----WWW 是Internet 上 发 展 最 快、 应 用 最 广 泛 也 最 实
用 的 超 文 本 信 息 通 信 系 统, 它 以Client/Server 模 式
进 行 数 据 通 信。 服 务 器 端 通 过Web Server 可 以 提 供
各 种 服 务; 客 户 端 可 以 通 过 浏 览 器(Browser) 访 问
多 种 协 议 的 多 媒 体 信 息, 依 据 用 户 的 需 要 组 织
和 传 递 信 息。 人 们 可 以 通 过WWW 浏 览 器 浏 览 和 检
索 全 球 所 有WWW 站 点 的 信 息, 这 就 使 得 信 息 的 共
享 与 交 流 越 来 越 迅 速、 越 来 越 方 便, 正 因 为 如 
此,WWW 才 成 为 了 目 前Internet 上 信 息 发 布 与 出 版 的
重 要 途 径。 

----WWW 的 最 大 特 色 在 于 为 用 户 提 供 良 好 的 信 息
查 询 界 面。WWW 把 各 种 形 式 的 信 息, 如 文 本、 图 
像、 声 音、 视 频 等 无 缝 隙 地 集 成 在 一 起, 用 户 只
需 要 提 出 自 己 的 查 询 要 求, 具 体 到 什 么 地 方、 如
何 取 回 信 息 都 由WWW 自 动 完 成。 通 过 浏 览 器, 用 户
只 需 用 鼠 标 点 击 显 示 屏 上 高 亮 度 或 有 下 划 线 的
词 语, 就 可 将 与 该 词 语 相 关 联 的 文 件 取 回 并 显
示 在 屏 幕 上, 用 户 无 需 关 心 这 些 文 件 存 放 在
Internet 上 的 哪 台 计 算 机 中。 

----WWW 信 息 服 务 的 框 架 如 图1 所 示。 

                                      

                                 图1

----首 先, 客 户 端 根 据 某 资 源 的URL 向Web Server 提 出
请 求,Web Server 的HTTP Daemon( 守 护 进 程) 将 此 请 求
的 参 数 通 过 标 准 输 入stdin 和 环 境 变 量(Environment
Variable) 传 递 给 指 定 的CGI 程 序, 并 启 动 此 应 用 程
序 进 行 处 理, 处 理 结 果 通 过 标 准 输 出stdout 返 回
给HTTP Daemon 进 程, 再 由HTTP Daemon 进 程 返 回 给 客 户
端, 由 浏 览 器 负 责 解 释 执 行, 将 最 终 结 果 显 示 在
用 户 面 前。 

----实 现WWW 的 通 信 协 议 是HTTP(Hypertext Transfer
Protocol, 超 文 本 传 输 协 议), 它 定 义 了HTTP 的 通 信
交 换 机 制、 请 求 及 响 应 消 息 的 格 式 等;
HTML(Hypertext Markup Language, 超 文 本 标 注 语 言) 用 来
描 述WWW 上 发 布 的 信 息, 浏 览 器 通 过 解 释 执 行HTML
文 件 显 示 出 图 文 并 茂 的WWW 信 息, 向 用 户 提 供 良
好 的 信 息 查 询 界 面;CGI 负 责 调 用 相 应 的 处 理 程
序, 并 返 回 处 理 结 果。 本 文 将 从HTTP 的 通 信 交 换
机 制 和CGI 的 工 作 原 理 入 手, 对WWW 的 基 础 技 术 进
行 较 详 细 的 介 绍, 以 帮 助 读 者 从 本 质 上 更 深 入
地 理 解WWW 的 一 切 行 为 和 特 征。 

HTTP 的 通 信 交 换 机 制 

----WWW 要 实 现 诸 多 目 标, 其 中 最 基 本 的 四 项 包 
括: 

----* 分 布 式 信 息 系 统; 

----* 对 多 重 协 议 提 供 一 个 统 一 通 用 的 接 口; 

----* 对 超 媒 体 支 持; 

----* 可 扩 充 性, 能 够 支 持 所 有 的 数 据 格 式。 

----HTTP 之 前 的 其 他 协 议 都 不 能 完 全 实 现 上 述 要
求, 因 而HTTP 就 应 运 而 生 了。HTTP 规 范 表 明,HTTP 协
议 是 一 种 根 据 明 确 性 和 速 度 要 求, 为 建 立 分 布
式 协 作 超 媒 体 信 息 系 统 而 设 计 的 协 议, 它 是 一
种 简 单 的、 无 状 态 的、 面 向 对 象 的 协 议, 可 用 于
多 种 任 务, 如 名 字 服 务 器 和 分 布 式 对 象 管 理。 

----HTTP 常 常 在 某 种 程 度 上 引 起 人 们 的 误 解, 仿
佛HTTP 只 能 传 输 超 文 本, 其 实 不 然, 你 可 以 用 它
传 输 各 种 对 象, 而 不 必 考 虑 其 数 据 类 型。 

----一、HTTP 的 特 点 

----HTTP 设 计 得 简 单 而 灵 活, 它 是 无 状 态 和" 无 连
接" 的, 基 于Client/Server 模 式 并 且 支 持 元 信 息 和 内
容 类 型 标 识。 它 具 有 六 个 重 要 的 特 点: 

----1. 以Client/Server 模 型 为 基 础 

----HTTP 支 持 客 户 与 服 务 器 之 间 通 信 及 相 互 传 送
数 据, 一 个 服 务 器 可 以 为 分 布 在 世 界 各 地 的 许
多 客 户 服 务。 

----2. 简 易 性 

----HTTP 被 设 计 成 一 个 非 常 简 单 的 协 议, 使 得Web
服 务 器 能 高 效 地 处 理 大 量 请 求, 客 户 机 要 连 接
到 服 务 器, 只 需 发 送 请 求 方 式 和URL 路 径 等 少 量
信 息。HTTP 规 范 定 义 了 七 种 请 求 方 式, 最 常 用 的
有 三 种:GET、HEAD 和POST。 每 一 种 请 求 方 式 都 允 许
客 户 以 不 同 类 型 的 消 息 与Web 服 务 器 进 行 通 信,
Web 服 务 器 也 因 此 可 以 是 简 单 小 巧 的 程 序。 由 于
HTTP 协 议 简 单,HTTP 的 通 信 与FTP、Telnet 等 协 议 的 通
信 相 比, 速 度 快 而 且 开 销 小。 

----3. 灵 活 性 与 内 容- 类 型(content-type) 标 识 

----HTTP 允 许 任 意 类 型 数 据 的 传 送, 因 此 可 以 利
用HTTP 传 送 任 何 类 型 的 对 象, 并 让 客 户 程 序 能 够
恰 当 地 处 理 它 们, 内 容- 类 型 标 识 指 示 了 所 传 输
数 据 的 类 型。 打 个 比 方, 如 果 数 据 是 罐 头, 内 容-
类 型 标 识 就 是 罐 头 上 的 标 签。 

----4." 无 连 接" 性 

----HTTP 是" 无 连 接" 的 协 议, 但 值 得 特 别 注 意 的 
是, 这 里 的" 无 连 接" 是 建 立 在TCP/IP 协 议 之 上 的,
与 建 立 在UDP 协 议 之 上 的 无 连 接 不 同。 这 里 的" 无
连 接" 意 味 着 每 次 连 接 只 限 处 理 一 个 请 求。 客 户
要 建 立 连 接 需 先 发 出 请 求, 收 到 响 应, 然 后 断 开
连 接, 这 实 现 起 来 效 率 十 分 高。 采 用 这 种" 无 连
接" 协 议, 在 没 有 请 求 提 出 时, 服 务 器 就 不 会 在
那 里 空 闲 等 待。 完 成 一 个 请 求 之 后, 服 务 器 即 不
会 继 续 为 这 个 请 求 负 责, 从 而 不 用 为 保 留 历 史
请 求 而 耗 费 宝 贵 的 资 源。 这 在 服 务 器 的 一 方 实
现 起 来 是 非 常 简 单 的, 因 为 只 需 保 留 活 动 的 连
接(Active Connection), 不 用 为 请 求 间 隔 而 浪 费 时 
间。 

----5. 无 状 态 性 

----HTTP 是 无 状 态 的 协 议, 这 既 是 优 点 也 是 缺 点。
一 方 面, 由 于 缺 少 状 态 使 得HTTP 累 赘 少, 系 统 运
行 效 率 高, 服 务 器 应 答 快; 另 一 方 面, 由 于 没 有
状 态, 协 议 对 事 务 处 理 没 有 记 忆 能 力, 若 后 续 事
务 处 理 需 要 有 关 前 面 处 理 的 信 息, 那 么 这 些 信
息 必 须 在 协 议 外 面 保 存; 另 外, 缺 少 状 态 意 味 着
所 需 的 前 面 信 息 必 须 重 现, 导 致 每 次 连 接 需 要
传 送 较 多 的 信 息。 

----6. 元 信 息(metainformation) 

---- 收 到 数 据 的 浏 览 器 可 以 根 据 元 信 息 确 定 服
务 器 发 来 的 是 什 么 内 容, 预 料 有 多 少 数 据, 确 知
是 否 接 收 到 完 整 的 数 据, 以 及 发 送 过 程 中 是 否
有 错, 这 样 客 户 就 可 以 知 道 传 输 对 象 的 类 型。 元
信 息 被 定 义 为" 关 于 信 息 的 信 息", 元 信 息 允 许 服
务 器 提 供 所 发 送 数 据 的 信 息, 例 如,HTTP 可 以 提
供 所 发 送 的 对 象 的 语 言 和 类 型, 也 可 以 用 元 信
息 来 实 现 有 条 件 请 求 和 报 告 事 务 完 成。 元 信 息
的 引 入 使 得HTTP 协 议 所 能 做 的 工 作 更 多 了。 

----二、HTTP 的 通 信 交 换 过 程 

----HTTP 通 信 建 立 在TCP/IP 连 接 之 上, 缺 省 的TCP 端
口 号 是80, 但 也 可 以 使 用 其 他 端 口 号。 图2 所 示 的
是 一 个HTTP 服 务 器 在 端 口80 上 接 受 来 自 多 个 远 程
客 户 连 接 时 的 情 形。Web 服 务 器 运 行 着 一 个 守 护
进 程(HTTP Daemon), 它 始 终 在 端 口80 监 听 着 来 自 远
端 客 户 的 请 求。 当 一 个 请 求 发 来 时, 它 就 会 产 生
一 个 子 进 程 来 处 理 当 前 请 求, 守 护 进 程 继 续 以
后 台 方 式 运 行, 在 端 口80 继 续 监 听 来 自 远 端 的 连
接 请 求。 

                                      

                                 图2

----HTTP 通 信 中 客 户 提 出 请 求 应 该 带 上 全 部 必 要
的 信 息, 客 户 机 和 服 务 器 之 间 不 能 对 不 明 确 的
问 题 进 行 磋 商。 一 旦 客 户 提 出 请 求, 服 务 器 感 到
信 息 不 够 时 没 有 办 法 要 求 客 户 给 出 进 一 步 信 
息。 客 户 与 服 务 器 通 信 流 程 图 如 图3 所 示。 

                                      

                                 图3

----三、HTTP 的 请 求 和 响 应 消 息 格 式 

----在WWW 信 息 的 传 递 过 程 中, 客 户 端 向 服 务 器 按
照 特 定 的 格 式 发 出 请 求 消 息, 服 务 器 端 处 理 此
请 求, 并 将 结 果 按 照 特 定 的 格 式 作 为 响 应 返 回
给 客 户。HTTP 的 消 息 格 式 与MIME 相 似。 

----1. 请 求 的 格 式 

---- 方法URI HTTP版本号 

---- 首部 

---- (回车换行) 

---- 实体──主体 

----方 法 描 述 了 对 给 定 资 源 应 作 的 处 理。 在
HTTP/1.1 下, 请 求 的 合 法 方 法 有:OPTIONS、GET、HEAD、
PUT、POST、TRACE 和DELETE, 其 中 最 常 用 的 是GET、HEAD
 和POST。 

----GET: 用 于 从 服 务 器 请 求 一 个 用URL 标 识 的 资 源
对 象。 如 果 对 象 是 文 档 或 文 件,GET 将 请 求 其 内 
容; 如 果 对 象 是 程 序 或 脚 本,GET 将 请 求 程 序 的 运
行 结 果 或 脚 本 的 输 出; 如 果 对 象 是 数 据 库 查 询,
GET 将 请 求 查 询 的 结 果。 每 次 循 着 链 浏 览Web 时,
浏 览 器 都 要 用GET 方 法 来 读 取 你 请 求 的 文 档。 

----HEAD: 用 于 服 务 器 请 求 对 象 的 元 信 息, 这 时 用
户 也 许 想 知 道 对 象 的 大 小 或 最 近 的 修 改 日 期,
而 不 是 请 求 对 象 本 身。HEAD 方 法 的 请 求 速 度 要 快
得 多, 因 为 它 不 需 要 传 送 整 个 文 件。 使 用 高 速 缓
存 的 客 户 经 常 使 用HEAD 请 求 来 取 得 文 档 最 近 的 修
改 时 间, 与 缓 存 中 文 档 的 修 改 时 间 进 行 对 比, 如
果 一 致, 则 表 明 文 档 没 有 更 新, 因 而 无 须 读 取 整
个 文 档。 

----POST: 用 于 客 户 向 服 务 器 传 送 数 据, 以 便 服 务
器 作 出 相 应 的 处 理。POST 方 法 经 常 用 于 向HTTP 服 务
器 提 交HTML 表 格 以 便 处 理。 例 如, 网 上 的 联 机 就
业 服 务 中 就 是 靠 提 交 简 历 表 格 来 找 工 作。 当 你
填 写 了 一 份WWW 页 面 表 格 后, 浏 览 器 通 常 就 使 用
POST 方 法 向 服 务 器 提 交 你 输 入 的 数 据。 

----每 个 资 源 都 有 其 特 定 的URL 标 识, 经 由 各 种 不
同 的 协 议, 对Internet 上 任 何 地 方 的 信 息 都 可 以
 用URL 定 位 或 取 回。URL 可 以 指 定FTP 文 件 传 输, 寻
找 新 闻 信 息, 定 义 用 户 的Email 地 址, 标 识HTTP 文 件
和 其 他 类 型 数 据。URL 中 的 字 符 不 区 分 大 小 写。 

----2. 响 应 的 消 息 格 式 

----HTTP-Version Status-Code Reason-Phrase 

----首部 

----(空行) 

----Entity-Body 

----状 态 码 表 示 服 务 器 是 否 成 功 地 满 足 了 客 户 的
请 求, 状 态 码 由 一 个 三 位 整 数 和 解 释 状 态 码 含
义 的 正 文 短 语 组 成。 状 态 码 以1、2、3、4、5 开 头,
在HTTP/1.1 中,1 类 状 态 码 表 示 的 是 信 息 性
(informational) 提 示;2 类 状 态 码 表 示 成 功-- 服 务
器 理 解 客 户 的 请 求, 并 且 毫 无 困 难 地 给 出 了 响
应;3 类 码 表 示 发 生 了 重 定 向-- 服 务 器 理 解 请 求
并 能 够 取 得 资 源, 但 发 现 资 源 不 在 指 定 的 位 置
而 在 其 他 地 方;4 类 码 表 示 客 户 出 错;5 类 码 表 示
服 务 器 出 错。 

----所 有 这 些 状 态 码 中, 需 要 熟 悉 的 只 有 几 个。
经 历 最 多 的 是200(OK), 不 过 也 许 会 碰 到400(Bad
request) 和404(Not found), 偶 尔 也 有500(Internal
server error)。 如 果 想 把 服 务 器 重 定 向 到 新 的 位
置, 而 不 是 返 回 一 个 仅 仅 链 接 到 对 象 新 位 置 的
文 档 时,301(Moved Permanently) 和302(Moved temporarily)
将 特 别 有 用。 

----响 应 消 息 的 首 部 域 中, 通 常 会 指 明 所 传 输 数
据 的 编 码 压 缩 机 制、 服 务 器 端 软 件 等。 

----实 体 主 体 是 所 传 输 的 数 据, 由 于HTTP 对 于 以 任
意 格 式 传 输 文 档 的 自 由 度 很 大, 所 以 它 可 以 是
图 形、 音 频、 视 频 文 件 等 多 媒 体 对 象, 只 需 在 首
部 域 中 标 明 其 类 型 即 可。 对 任 意 格 式 传 输 数 据
的 完 全 开 放 性, 正 是HTTP 和Web 所 提 供 的 最 重 要 的
优 越 性。 

CGI 的 工 作 原 理 

----一、CGI 的 工 作 原 理 

----CGI(Common Gateway Interface) 是 外 部 应 用 程 序 与Web
服 务 器 交 互 的 一 个 标 准 接 口。CGI 应 用 程 序 可 以
完 成 客 户 端 与 服 务 器 的 交 互 操 作, 它 打 破 了 服
务 器 软 件 的 局 限 性, 允 许 用 户 根 据 需 要 采 用 各
种 语 言 去 实 现 无 法 用HTTP、HTML 实 现 的 功 能, 给WWW
提 供 了 更 为 广 阔 的 应 用 空 间。 例 如, 一 个 能 够 访
问 外 部 数 据 库 的CGI 程 序 可 以 使 客 户 端 用 户 通
 过Web 服 务 器 进 行 数 据 库 的 查 询。 同 时,CGI 也 为
如 何 在 不 同 的 平 台 之 间 进 行 沟 通 提 供 了 范 例。 

----CGI 工 作 的 主 要 流 程 是:1. 一 个 用 户 请 求 激 活
一 个CGI 应 用 程 序;2.CGI 应 用 程 序 将 交 互 主 页 中 用
户 输 入 的 信 息 提 取 出 来;3. 将 用 户 输 入 的 信 息 传
给 服 务 器 主 机 应 用 程 序( 如 数 据 库 查 询);4. 将 服
务 器 处 理 结 果 通 过HTML 文 件 返 回 给 用 户;5.CGI 进
程 结 束。 

----一 个CGI 程 序 可 以 实 时 产 生 动 态 的HTML 文 件, 它
能 根 据 用 户 的 需 求 输 出 动 态 信 息, 将 数 据 库 服 务
器 中 的 信 息 作 为 数 据 源 对 外 提 供 服 务, 将WWW 服 务
和 数 据 库 服 务 结 合 起 来。 如 图4 所 示, 客 户 端 向
Web 服 务 器 提 出 请 求,Web 服 务 器 运 行 对 应 的CGI 程
序,CGI 程 序 向 数 据 库 服 务 器 提 出 请 求, 数 据 库 服
务 器 将 查 询 结 果 返 回Web 服 务 器,Web 服 务 器 再 将 查
询 结 果 返 回 客 户 端, 一 个 查 询 请 示 结 束。 

                                      

                                 图4

----CGI 程 序 的 工 作 原 理 是: 客 户 端 的Web 浏 览 器 浏
览 到 某 个 主 页 后, 利 用 一 定 的 方 式 提 交 数 据, 并
通 过HTTP 协 议 向Web 服 务 器 发 出 请 求, 服 务 器 端 的
HTTP Daemon( 守 护 进 程) 将 描 述 的 主 页 信 息 通 过 标
准 输 入stdin 和 环 境 变 量(environment variable) 传 递 给
主 页 指 定 的CGI 程 序, 并 启 动 此 应 用 程 序 进 行 处
理( 包 括 对 数 据 库 的 处 理), 处 理 结 果 通 过 标 准
输 出stdout 返 回 给HTTP Daemon 守 护 进 程, 再 由HTTP
Daemon 进 程 通 过HTTP 协 议 返 回 给 客 户 端 的 浏 览 器,
由 浏 览 器 负 责 解 释 执 行, 将 最 终 的 结 果 显 示 给
用 户。 

----服 务 器 使 用 环 境 变 量( 执 行CGI 程 序 时 的 设 置)
传 输 有 关 的 请 求 信 息 到CGI 程 序, 这 些 环 境 变 量
包 括 服 务 器 的 名 字、CGI 和 服 务 器 使 用 协 议 的 版
本 号、 客 户 端 的IP 地 址 和 域 名 地 址、 客 户 端 的 请
求 方 式、 请 求 内 容 及 编 码 方 式、 访 问 信 息 的 合 法
性 以 及 用 户 的 输 入 信 息 等。 

---- CGI 程 序 一 般 是 可 执 行 程 序。 编 译 好 的CGI 程
序 一 般 要 集 中 放 在 一 个 目 录 下。 具 体 存 放 的 位
置 随 操 作 系 统 的 不 同 而 不 同( 而 且 可 以 由 用 户
自 己 根 据 情 况 进 行 配 置), 例 如UNIX 系 统 下 的WWW 服
务 器 中 一 般 放 在cgi-bin 子 目 录 下, 而 在Windows 操 作
系 统 下 以Webstar 或Website 作WWW 服 务 器,CGI 程 序 都 放
在cgi-win 下。 不 过,CGI 程 序 的 执 行 一 般 有 两 种 调
用 方 式: 一 是 通 过URL 直 接 调 用, 如:
"http://202.205.240.63/cgi -bin/test cgi", 在 浏 览 器
的URL 栏 里 直 接 写 入 上 述 地 址 就 可 以 调 用 该 程 
序; 另 一 种 方 式, 也 是 主 要 的 方 式, 是 通 过 交 互
式 主 页 中 的FORM 栏 调 用, 通 常 都 是 用 户 在 填 完 一
张 输 入 信 息 主 页 后 按" 确 认" 按 钮 启 动CGI 程 序。 主
页 的 交 互 一 般 都 是 这 样 调 用CGI 来 完 成 的。 

----CGI 的 跨 平 台 性 能 极 佳, 几 乎 可 以 在 任 何 操 作
系 统 上 实 现, 如DOS、Windows、UNIX、OS/2、Macintosh 等。
实 现CGI 的 编 程 语 言 也 有 很 多 选 择, 常 用 的 有Perl
、C/C + +、Visual Basic 等。CGI 的 应 用 程 序 一 般 都 是
一 个 独 立 的 可 执 行 程 序, 与Web 服 务 器 各 自 占 据
着 不 同 的 进 程, 而 且 一 般 一 个CGI 程 序 只 能 处 理
一 个 用 户 请 求。CGI 的 缺 点 也 是 显 而 易 见 的: 每 当
有 一 个 用 户 请 求, 就 会 激 活 一 个CGI 进 程, 当 用 户
请 求 数 量 非 常 多 时, 大 量 的CGI 程 序 就 会 大 量 挤
占 系 统 的 资 源, 如 内 存、CPU 时 间 等, 造 成CGI 运 行
效 率 低 下。 

----正 因 为 如 此,Web 服 务 器 开 发 商 又 开 发 出 了 专
用 的API, 它 是 驻 留 在Web 服 务 器 上 的 原 始 代 码, 可
以 像CGI 那 样 扩 展Web 服 务 器 的 功 能, 同 时 又 比CGI
占 用 的 资 源 少。 但 开 发API 应 用 程 序 比 开 发CGI 应
用 程 序 更 复 杂, 需 要 较 多 的 编 程 技 巧, 如 多 线 
程、 同 步 运 行 机 制、 直 接 的 协 议 编 程 和 容 错 处 理
等。 

----二、ISAPI 的 工 作 原 理 及 其 性 能 

----ISAPI 即Internet Server Application Program Interface,
是 微 软 提 供 的 一 套 面 向Internet 服 务 的API 接 口, 它
能 实 现CGI 提 供 的 全 部 功 能, 并 在 此 基 础 上 进 行
了 扩 展, 例 如 提 供 了 过 滤 器 应 用 程 序 接 口 等。 

----ISAPI 的 工 作 原 理 和CGI 大 体 上 是 相 同 的, 都 是
通 过 交 互 式 主 页 取 得 用 户 输 入 信 息, 然 后 交 服
务 器 后 台 处 理( 如 图5 所 示)。 但 是 二 者 在 实 现 机
制 上 大 相 径 庭。ISAPI 与CGI 最 大 的 区 别 在 于: 在
ISAPI 下 建 立 的 应 用 程 序 都 是 以 动 态 链 接 库 的 形
式 存 在 的; 而CGI 的 应 用 程 序 一 般 都 是 可 执 行 程
序。 

                                      

                                 图5

----ISAPI 应 用 的 工 作 流 程 与CGI 有 一 些 不 同。ISAPI
应 用 的DLL 不 仅 可 以 像CGI 程 序 一 样 被 用 户 请 求 激
活, 还 可 以 被 系 统 预 先 激 活 来 监 视 用 户 输 入; 对
于 被 用 户 激 活 的DLL, 在 处 理 完 一 个 用 户 请 求 后
不 会 马 上 消 失, 而 是 继 续 驻 留 在 内 存 中 等 待 处
理 其 他 用 户 的 输 入, 直 到 过 了 指 定 时 间 后 一 直
没 有 用 户 输 入 为 止。 

----一 个ISAPI 的DLL, 除 了 可 以 在 被 用 户 请 求 激 活
后 长 驻 内 存, 等 待 用 户 的 另 一 个 请 求 外, 还 可 以
在 一 个DLL 里 设 置 多 个 用 户 请 求 处 理 函 数。 此 外,
ISAPI 的DLL 应 用 程 序 和Web 服 务 器 处 于 同 一 个 进 程
中, 效 率 要 显 著 高 于CGI。 

----ISAPI 提 供 了 基 于Microsoft IIS(Internet Information
Server) 的 专 用API, 由 于ISAPI 的 应 用 程 序 是DLL 文 
件, 可 以 与Web 服 务 器 装 于 同 一 地 址 空 间 中, 所 以
它 的 执 行 效 率 比CGI 高。 基 于ISAPI 的 所 有 进 程 都 可
以 获 得HTTP Server 上 的 任 何 资 源, 而 且 当 它 调 用 外
部CGI Script 时, 需 要 的 开 销 也 较 单 纯 的CGI 少。 

----由 于 开 发ISAPI 应 用 要 用 到 微 软 的 一 套API, 所
以 能 用 来 开 发ISAPI 应 用 的 语 言 不 如CGI 那 么 多。 主
要 有Visual C + +4.1 以 上 版 本, 也 可 以 使 用Visual
Basic 5.0、Borland C + + 5.0 等。 

--
※ 来源:.紫 丁 香 bbs.hit.edu.cn.[FROM: 202.97.236.132]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:207.503毫秒