我的世界天骐虚无世界:什么是CGI?

来源:百度文库 编辑:神马品牌网 时间:2024/05/03 09:11:42
以后我再遇到类似问题时该如何在互联网上很快的搜索到答案?

CGI 是 Common Gateway Interface 的 简 称 。 其 主 要 的 功 能 是 在 WWW 环 境 下 , 藉 由 从 客 户 端 传 递 一 些 讯 息 给 WWW Server , 再 由 WWW Server 去 启 动 所 指 定 的 程 式 码 来 完 成 特 定 的 工 作 。 所以 更 明 确 的 说 , CGI 仅 是 在 WWW Server 上 可 执 行 的 程 式 码 ,而 她 的 工 作 就 是 控 制 讯 息 要 求 而 且 产 生 并 传 回 所 需 的 文件 。</FONT></P>
<P><FONT face=宋体>使 用 CGI , 你 的 Server 可 以 读 取 并 显 示 在 客 户 端 无 法 读取 的 格 式 (像 是 SQL DataBase) 。 而 且 可 以 像 闸 道 (Gateway) 一 样, 在 伺 服 端 和 客 户 端 之 间 , 产 生 客 户 端 所 需 要 的 讯 息 。基 本 上 , 在 此 种 主 从 式 (Client/Server) 的 环 境 之 下 , 其 IPC (InterProcess Communication) 的 协 定 是 利 用 讯 息 传 递 及 记 忆 体分 享 (环 境 变 数) 的 方 式 来 完 成 。 CGI 有 其 特 定 的 写 法 及 规格 , 必 须 遵 守 其 原 则 , 方 可 达 到 主 从 端 资 讯 交 流 的 目 的。</FONT></P>
<P><FONT face=宋体>1-2 CGI 的 输 入 输 出 </FONT></P>
<P><FONT face=宋体>CGI 可 以 使 用 在 很 多 方 面 , 大 部 份 是 控 制 ISINDEX 和 FORM 的需 求 , 亦 即 ISINDEX 和 FORM 最 常 被 使 用 作 CGI 的 输 入 介 面 。但 也 有 利 用 链 结 (LINK) 的 方 式 来 呼 叫 所 要 执 行 的 程 式 , 通常 是 在 使 用 者 的 资 讯 已 固 定 , 或 是 为 达 成 某 种 单 一 目 的而 使 用 。 而 使 用 链 结 方 式 其 程 式 执 行 所 需 的 参 数 是 以 GET METHOD 的 方 式 含 在 URL 中 传 入 , 亦 即 CGI 程 式 在 发 展 时 必 须使 用 GET METHOD 的 方 式 来 读 取 参 数 。</FONT></P>
<P><FONT face=宋体>输 出 的 部 分 则 大 部 分 是 利 用 程 式 来 产 生 虚 拟 文 件 , 也就 是 文 件 并 不 是 储 存 Server 的 储 存 媒 体 中 , 而 是 由 程 式 建构 出 来 的 , 浏 览 程 式 结 束 之 后 文 件 即 不 再 存 在 。 大 部 分的 文 件 格 式 是 超 本 文 标 示 语 言 (HTML) 或 是 文 字 档 。 也 有 利用 程 式 链 结 到 另 一 份 文 件 , 或 是 只 记 录 使 用 者 输 入 资 讯而 不 做 输 出 ! </FONT></P>
<P><FONT face=宋体>下 面 是 常 见 输 入 输 出 的 例 子 ∶<BR>  1、转 换 您 的 系 统 参 考 手 册 变 成 超 本 文 标 示 语 言 (HTML) 的 格 式, 接 著 将 结 果 送 给 客 户 端 。<BR>  2、 当 做 WAIS 和 ARCHIE 资 料 库 的 界 面 , 将 结 果 转 成 超 本 文 标 示语 言 (HTML) 的 格 式 送 给 客 户 端 。<BR>  3、 允 许 使 用 者 透 过 HTML FORM 和 附 加 的 CGI 解 码 来 回 给 你 的 Server 。<BR>在 下 面 各 节 , 我 们 将 会 进 一 步 说 明 有 关 这 一 部 分 的 使 用方 法 , 或 是 简 单 的 范 例 。</FONT></P>
<P><FONT face=宋体>1-3 CGI 可 用 的 程 式 语 言 </FONT></P>
<P><FONT face=宋体>至 於 CGI 要 使 用 何 种 程 式 语 言 来 达 成 ? 从 前 面 的 说 明 可 以知 道 , CGI 仅 是 在 WWW Server 上 可 执 行 的 程 式 码 。 是 故 , 只要 是 您 的 WWW Server 以 及 WWW Server 所 在 的 作 业 系 统 可 执 行 的程 式 语 言 皆 能 使 用 在 CGI 上 。 以 下 列 出 几 种 较 常 在 CGI 中使 用 的 语 言 ∶<BR>1、 C/C++ <BR>2、 PERL<BR>3、 THE BOURNE SHELL<BR>4、 THE C SHELL<BR>5、 TCL<BR>6、 Visual Basic<BR>7、 AppleScript <BR>8、 PHP <BR>这 些 程 式 在 完 成 之 后 要 放 置 於 何 处 ? 事 实 上 , 不 同 的 WWW Server 有 不 同 的 规 定 。 以 HTTPS 为 例 , 她 只 执 行 副 档 名 为 EXE 的 执 行 档 , 且 程 式 不 能 为 图 形 介 面 (GUI) 的 程 式 。 而 程 式只 要 放 置 在 指 定 文 件 的 树 状 目 录 中 任 一 位 置 即 可 。 但 是值 得 注 意 的 是 , 大 部 分 的 WWW Server 尤 其 是 UNIX 上 的 WWW Server , 都 将 CGI 程 式 放 置 在 一 共 同 的 指 定 目 录 之 下 。

什么是CGI
1. 定义:
CGI(Common Gateway Interface)是HTTP服务器与你的或其它机器
上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。

2. 功能:
绝大多数的CGI程序被用来解释处理杰自表单的输入信息,并在服
务器产生相应的处理,或将相应的信息反馈给浏览器。CGI程序使
网页具有交互功能。

3. 运行环境:
CGI程序在UNIX操作系统上CERN或NCSA格式的服务器上运行。
在其它操作系统(如:windows NT及windows95等)的服务器上
也广泛地使用CGI程序,同时它也适用于各种类型机器。

4. CGI处理步骤:
⑴通过Internet把用户请求送到服务器。
⑵服务器接收用户请求并交给CGI程序处理。
⑶CGI程序把处理结果传送给服务器。
⑷服务器把结果送回到用户。

5. CGI服务器配置:
CGI程序不是放在服务器上就能顺利运行,如果要想使其在服务器
上顺利的运行并准确的处理用户的请求,则须对所使用的服务器进
行必要的设置。
配置:根据所使用的服务器类型以及它的设置把CGI程序放在某一
特定的目录中或使其带有特定的扩展名。
⑴CREN格式服务器的配置:
编辑CREN格式服务器的配置文件通常为/etc/httpd.conf/
在文件中加入:Exec cgi-bin/*/home/www/cgi-bin/*.exec
命令中出现的第一个参数cgi-bin/*指出了在URL中出现的目录
名字,并表示它出
现在系统主机后的第一个目录中,如:
http://edgar.stern.nyn.edu/cgi-bin/
命令中的第二个参数表示CGI程序目录放在系统中的真实路径。
CGI目录除了可以点网络文件放在同一目录中,也可以放在系统
的其它目录中,但必须保证在你的系统中也具有同样的目录。在
对服务器完成设置后,须重新启动服务器(除非HTTP服务器是用
inetd启动的)。
⑵NCSA格式服务器的配置
在NCSA格式服务器上有两种方法进行设置:
①在srm.conf文件(通常在conf目录下)中加入:
Script Alias/cgi-bin/cgi-bin/
Script Alias命令指出某一目录下的文件是可执行程序,且这
个命令是用来执行
这些程序的;此命令的两个参数与CERN格式服务器中的Exec命
令的参数的含意一样。
②在srm.conf文件加入:
Add type application/x-httpd-cgi.cgi
此命令表示在服务器上增加了一种新的文件类型,其后第一个
参数为CGI程序的MIME类型,第二个参数是文件的扩展名,表
示以这一扩展名为扩展名的文件是CGI程序。
在用上述方法之一设置服务器后,都得重新启动服务器(除非
HTTP服务器是用inetd启动的)。