调 用 方 式:1 是 通 过URL 直 接 调 用, 如:“http://202.114.2.182/cgi-win/cgi.exe”, 在 浏 览 器 的URL 栏 里 直 接 写 入 上 述 描 述 就 可 以 调 用 该 程 序; 另 一 种 方 式, 也 是 主 要 的 方 式, 是 通 过 交 互 式 主 页 里 的FORM 栏 调 用, 通 常 都 是 用 户 在 填 完 一 张 输 入 信 息 主 页 后 按 确 认 按 钮 启 动CGI 程 序, 前 面 的 交 互 主 页 就 是 一 个 如 此 调 用CGI 的 典 型 例 子。
3.4 CGI 工 作 的 主 要 流 程
CGI 工 作 的 主 要 流 程 是:1. 一 个 用 户 请 求 激 活 一 个CGI 应 用 程 序;2.CGI 应 用 程 序 将 交 互 主 页 里 用 户 输 入 信 息 提 取 出 来;3. 将 用 户 输 入 的 信 息 传 给 服 务 器 主 机 应 用 程 序( 如 数 据 库 查 询〕;4. 将 服 务 器 处 理 结 果 通 过HTML 文 件 返 回 给 用 户;5.CGI 进 程 结 束。
3.5 CGI 的 性 能 评 价
CGI 的 跨 平 台 性 能 极 佳, 几 乎 可 以 在 任 何 操 作 系 统 上 实 现, 如DOS、WINDOWS、UNIX、OS/2、Macintosh 等。 实 现CGI 的 编 程 语 言 也 有 很 多 选 择。CGI 的 应 用 程 序 一 般 都 是 一 个 独 立 的 可 执 行 程 序, 和WWW 服 务 器 各 自 占 据 着 不 同 的 进 程, 而 且 一 般 一 个CGI 程 序 只 能 处 理 一 个 用 户 请 求。 这 样, 每 有 一 个 用 户 请 求, 都 会 激 活 一 个CGI 进 程, 当 用 户 请 求 数 量 非 常 多 时, 会 大 量 挤 占 系 统 的 资 源 如 内 存,CPU 时 间 等, 造 成 效 能 低 下。
四、ISAPI 原 理 及 其 性 能
4.1 ISAPI 概 念
ISAPI 即Internet Server Application Program Interface, 是 微 软 提 供 的 一 套 面 向Internet 服 务 的API 接 口, 它 能 实 现CGI 能 提 供 的 全 部 功 能, 并 在 此 基 础 上 进 行 了 扩 展, 如 提 供 了 过 滤 器 应 用 程 序 接 口。
4.2 ISAPI 程 序 语 言
由 于 开 发ISAPI 应 用 要 用 到 微 软 的 一 套API, 所 以 能 用 来 开 发ISAPI 应 用 的 语 言 不 如CGI 那 么 多。 主 要 有Visual C++ 4.1 以 上 版 本,Visual Basic 5.0、Borland C++ 5.0 也 可 以。
4.3 ISAPI 原 理
ISAPI 的 工 作 原 理 和CGI 大 体 上 是 相 同 的, 都 是 通 过 交 互 式 主 页 取 得 用 户 输 入 信 息, 然 后 交 服 务 器 后 台 处 理。 但 是 二 者 在 实 现 机 制 上 大 相 庭 径。ISAPI 与CGI 最 大 的 区 别 在 于: 不 同 于CGI, 在ISAPI 下 建 立 的 应 用 程 序 是 以 动 态 连 接 库 的 形 式 存 在; 而CGI 的 应 用 程 序 一 般 都 是 可 执 行 程 序。
4.4 ISAPI 程 序 的 执 行
ISAPI 应 用 的 工 作 流 程 与CGI 有 一 些 不 同。ISAPI 应 用 的DLL 不 仅 可 以 象CGI 程 序 一 样 被 用 户 请 求 激 活, 还 可 以 被 系 统 预 先 激 活 来 监 视 用 户 输 入; 对 于 被 用 户 激 活 的DLL, 在 处 理 完 一 个 用 户