简介:
CGI(Common Gateway Interface)公共网关接口,是外部扩展应用程序与 Web 服务器交互的一个标准接口协议。服务器端与客户端进行交互的常见方式多,CGI 技术就是其中之一。根据CGI标准,编写外部扩展应用程序,可以对客户端浏览器输入的数据进行处理,完成客户端与服务器的交互操作。CGI规范定义了Web服务器如何向扩展应用程序发送消息,在收到扩展应用程序的信息后又如何进行处理等内容。对于许多静态的HTML网页无法实现的功能,通过 CGI可以实现,比如表单的处理、对数据库的访问、搜索引擎基于Web的数据库访问等等。
特点:
- 公共(Common):无须考虑客户端和服务器所运行的操作系统平台,只要二者的网关程序遵循同一数据传输协议,即可进行数据交互。
- 网关(Gateway):CGI程序可被用来作为 HTTP 服务器与其他第三方应用程序之间的“连接件”或“中间件(Middle Ware) "。
- 接口(Interface):CGI 程序使用标准通讯机制,为其它应用程序与 HTTP 服务器提供数据传输接口。
接收数据方式:
服务器端 CGI 程序接收信息有三种途径:环境变量、命令行和标准输入
环境变量列表
变量名 | 含义 |
---|---|
SERVER_NAME | 运行CGI序为机器名或IP地址 |
SERVER_INTERFACE | WWW服务器的类型,如:CERN型或NCSA型。 |
SERVER_PROTOCOL | 通信协议,例如是HTTP/1.0。 |
SERVER_PORT | TCP端口,一般说来web端口是80。 |
HTTP_ACCEPT | HTTP定义的浏览器能够接受的数据类型。 |
HTTP_REFERER | 发送表单的文件URL。(并非所有的浏览器都传送这一变量) |
HTTP_USER-AGENT | 发送表单的浏览的有关信息。 |
GETWAY_INTERFACE | CGI程序的版本,在UNIX下为 CGI/1.1。 |
PATH_TRANSLATED | PATH_INFO中包含的实际路径名。 |
PATH_INFO | 浏览器用GET方式发送数据时的附加路径。 |
SCRIPT_NAME | CGI程序的路径名。 |
QUERY_STRING | 表单输入的数据,URL中问号后的内容。 |
REMOTE_HOST | 发送程序的主机名,不能确定该值。 |
REMOTE_ADDR | 发送程序的机器的IP地址。 |
REMOTE_USER | 发送程序的人名。 |
CONTENT_TYPE | POST发送,一般为application/xwww-form-urlencoded。 |
CONTENT_LENGTH | POST方法输入的数据的字节数。 |