通用网关接口

编辑
本词条由“匿名用户” 建档。

在计算中,通用网络接口(CGI)是一种接口规范,它使Web服务器能够执行外部程序,通常是处理用户请求。 此类程序通常用脚本语言编写,通常称为CGI脚本,但它们可能包括编译程序。 一个典型的用例发生在网络用户在使用CGI的网页上提交网络表单时。表单的数据在HTTP请求中发送到Web服务器,其中的URL表示CGI脚本。然后Web服务器在一个新的计算机进程中启动CGI脚本,将表单数据传递给它。CGI脚本...

简介

编辑

在计算中,通用网络接口 (CGI) 是一种接口规范,它使 Web 服务器能够执行外部程序,通常是处理用户请求。

此类程序通常用脚本语言编写,通常称为 CGI 脚本,但它们可能包括编译程序。

一个典型的用例发生在网络用户在使用 CGI 的网页上提交网络表单时。表单的数据在 HTTP 请求中发送到 Web 服务器,其中的 URL 表示 CGI 脚本。然后 Web 服务器在一个新的计算机进程中启动 CGI 脚本,将表单数据传递给它。CGI 脚本的输出,通常以 HTML 的形式,由脚本返回给 Web 服务器,服务器将其转发回浏览器作为对浏览器请求的响应。

CGI 开发于 1990 年代初期,是最早可用的允许网页交互的常用方法。

历史

编辑

1993 年,在 www-talk 邮件列表上编写了调用命令行可执行文件的规范。其他 Web 服务器开发人员采用了它,从那时起它就成为了 Web 服务器的标准。 1997 年 11 月启动更正式地定义 NCSA 对 CGI 的定义。 这项工作产生了 RFC 3875,它指定了 CGI 版本 1.1。

历史上,CGI 程序通常是使用 C 编程语言编写的。RFC 3875 通用网络接口 (CGI) 部分定义了使用 C 的 CGI,表示环境变量由 C 库例程 getenv() 或变量 environ 访问。

CGI 这个名字来自 Web 的早期,网站管理员希望将数据库等遗留信息系统连接到他们的 Web 服务器。 CGI 程序由在 Web 服务器和遗留信息系统之间提供公共网关的服务器执行。

CGI规范的目的

编辑

每个 Web 服务器都运行 HTTP 服务器软件,该软件响应来自 Web 浏览器的请求。通常,HTTP 服务器有一个目录(文件夹),它被指定为文档集合——可以发送到连接到该服务器的 Web 浏览器的文件。 例如,如果Web服务器的域名为example.com,其文档集合存储在本地文件系统的/usr/local/apache/htdocs/,那么Web服务器将响应对http:/的请求 /example.com/index.html 通过向浏览器发送(预先编写的)文件 /usr/local/apache/htdocs/index.html。

对于动态构建的页面,服务器软件可能会推迟对单独程序的请求,并将结果转发给请求客户端(通常是向最终用户显示页面的 Web 浏览器)。 在 Web 的早期,这样的程序通常很小并且是用脚本语言编写的; 因此,它们被称为脚本。

此类程序通常需要在请求中指定一些附加信息。 例如,如果将维基百科实现为脚本,则脚本需要知道的一件事是用户是否登录,如果登录,则使用哪个名称。 维基百科页面顶部的内容取决于此信息。

HTTP 为浏览器提供了将此类信息传递给 Web 服务器的方法,例如 作为 URL 的一部分。 然后服务器软件必须以某种方式将此信息传递给脚本。

通用网关接口

相反,在返回时,脚本必须提供 HTTP 响应请求所需的所有信息:请求的 HTTP 状态、文档内容(如果可用)、文档类型(例如 HTML、PDF 或纯文本) 等等。

最初,不同的服务器软件会使用不同的方式与脚本交换此信息。 因此,即使交换的信息相同,也无法编写无需修改即可用于不同服务器软件的脚本。 因此,决定指定一种交换此信息的方式:CGI(通用网络接口,因为它定义了服务器软件与脚本交互的通用方式)。根据 CGI 规范运行的服务器软件调用的网页生成程序 被称为 CGI 脚本。

该规范很快被采用,并且仍然受到所有知名服务器软件的支持,例如 Apache、IIS 和(带有扩展名)基于 node.js 的服务器。

CGI 脚本的早期用途是处理表单。 在 HTML 初期,HTML 表单通常有一个 action 属性和一个指定为提交按钮的按钮。

内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/193291/

(7)
词条目录
  1. 简介
  2. 历史
  3. CGI规范的目的

轻触这里

关闭目录

目录