通用网关接口CGI

BACKWARDFORWARD


读完这篇文档之后, 你将对CGI程序需要做什么才能起作用有一个总体的认识.


如何能够从服务器中获得信息?

每次当一个客户按照相应的URL向你的CGI程序发出请求时, 服务器将实时执行它. 你的程序的输出将或多或少被直接发送给客户.

关于CGI的一个常见的错误理解是,你可以向你的程序直接发送命令行参数, 例如

     提示符% myprog -qa blorf

CGI中,命令行被用于其它用途,因此你不能这样直接使用. 实际上,CGI使用环境变量发送你的程序参数. 用于这种用途的两个主要的环境变量为:


如何把文档返回给客户?

我发现初学者编写的CGI程序经常犯的一个错误是没有格式化输出, 因此服务器无法理解这种输出.

CGI程序可以返回很多种文档类型. 它们可以向客户返回图像, HTML文档, 普通文本, 甚至是一段声音. 另外CGI程序也可以返回指向其它文档的链. 客户一方必须知道你发给它的文档是什么类型的,以便选择相应的显示方式. 为了通知客户这一点, 你的 CGI 程序必须告诉服务器它返回的文档的类型.

为了通知服务器你返回的文档类型是一个完整的文档还是指向另一个文档的链结, CGI要求在你的输出中加一个较短的头. 这个头是 ASCII 文本, 包含用回车或换行(或两者)分隔的行,后面在跟一个空行. 输出部分就紧跟在这个空行之后, 保留原来的格式.

高级使用: 如果你想输出 Expires 或 Content-encoding 这样的头, 你需要确保你的服务器是和 CGI/1.1一起编译的. 把这些内容和 Location 或 Content-type 一起输出, 它们将被返回给客户.


CGI - Common Gateway Interface

cgi@ncsa.uiuc.edu


Copyright: NPACT BACKWARDFORWARD