1.1 如何编写CGI程序
此外CGI程序还通过环境变量来得到输入,只不过环境变量中提供的是一些常用的信息,并且通常不包括用户在WEB页面中输入的信息(除使用下面讲的GET方法时,通过检查环境变量QUERY_STRING来得到输入数据),而STDIN通常用来传递用户输入的信息。在普通CGI程序开发中我们需要关心的环境变量有以下这些:
一部分是与WEB服务器有关的环境变量:
SERVER_NAME WEB服务器名称
SERVER_PORT WEB服务器监听地址
SERVER_PROTOCOL 用于发送请求的协议名称和版本
SERVER_SOFTWARE WEB服务器名称和版本
一部分是与运行CGI有关的:
REQUEST_METHOD 数据传送(信息传递)方法
CONTENT_LENGTH 数据长度
QUERY_STRING 所传送的数据
REMOTE_ADDR 客户方IP地址
REMOTE_HOST 客户方主机名程
一部分是与客户方有关的:
HTTP_USER_AGENT 客户浏览器名称
HTTP_ACCEPT 客户机所能支持的MIME类型列表
HTTP_REFERER 客户机中前一文档的URL
在输入时所使用的POST/GET方法:在WEB页面向CGI发送数据时通常采用两种方法:GET/POST,GET方法将数据附加在URL后发送,如:/cgi/a_cgi_test.exe?your_data,CGI程序通过检查环境变量QUERY_STRING来得到输入数据。而POST方法则会将数据送入CGI程序的STDIN输入流。在表单(FORM)中的各个变量都会成为name=value的形式向WEB服务器发送,多个数据间用&分隔,如:name=value&name2=value2。其中名字(name,name2)是Form中定义的INPUT、SELECT或TEXTAREA等标置(Tag)名字,值是用户输入或选择的标置值。