Apache服务器技术之CGI环境变量和POST原理

来源:互联网 发布:网络信贷管理办法 编辑:程序博客网 时间:2024/05/19 20:42
在CGI程序工作的过程中,客户端和服务器端都要将信息保存在某些环境变量中。环境变量在CGI的程序设计中占自很重要的地位。当服务器收到一个请求时,首先要收集能得到的所有相关信息,并把它们存入环境变量。环境变量分为三类:与服务器相关的环境变量、与客户端相关的环境变量和与请求相关的环境变量。
 
A、与服务器相关的环境变量
 
与服务器相关的环境变量主要记录了主机的域名、软件、协议等信息,主要包括:
 
1、SERVER_NAMAE:WEB服务器的主机名、域名或IP地址,如:www.nwpu.edu.cn。
 
2、SERVER_SOFTWARE:服务器端所运行的HTTP服务器软件的名称和版本,如:CERN/3.0或NCSA/1.3
 
3、SERVER_PORT:服务器主机连接的端口号,如:80
 
4、SERVER_PROTOCOL:本请求所用协议的名称和版本,如:http/1.0
 
B ,与客户机相关的环境变量
 
B、与客户机有关的环境变量涉及到客户机的浏览器类型和对于服务器的要求等,主要有下面几个:
 
1.HTTP_ACCEPT:定义能被客户请求接受的MIME类型的列表,由逗号分开,如image/gif,image/x-xbitmap,image/jpeg和*/*等。它由浏览器发出,服务器只是将它传到CGI脚本。
 
2.HTTP_USER_AGENT:定义了提出请求的浏览器的名称、版本和其它附加信息,如Mozilla/2 0b3 (Win NT; I).
 
3.HTFP_REFFERER:指出连接到当前文档的URL。
 
C、与请求相关的环境变量
 
服务器接收到的请求的详细信息都记录在请求相关的环境变量中,这包括请求的类型、数据的长度、客户端的IP地址、用户名、URL路径信息等。这些环境变量中的绝大多数都是编写CGI处理程序所必须了解的。下面我们对其进行讨论:
 
1.AUTH_TYPE:服务器采用的认证模式。如果胀务器支持基本的认证并且用户访问了被保护的CGI程序,那么这个变量提供认证类型,比如:BASIC。
 
2.CONTENT_LENGTH:在POST请求中发送的字节数。,如果请求通过POST方法发送数据,则此变量破设置为以字节为单位的数据长度。
 
3.CONTENT_TYPE指定发送数据的类型,如果请求包括数据,此变量指定了数据的MIME类型,例如:application/x-www-torm-urlencoded。
 
4.PATH_TRANSLATED:指定PATH_INFO在系统中的实际路径。
 
在下面的环境变量中,REQUEST_METHOD、QUERY_STRINC和CONTENT_LENGTH是比较重要的,它们定义了数据如何传送到CGI程序,我们将在下面相关章节中继续讨论。

当浏览器将数据从一个填写的表译传给服务器时一般用POST方法,而且在发送的数据超过1024字节时也必须使用POST方法。对于POST力法,QUERY_STRING可能为空或不空,这依赖于具体的服务器软件,当使用post方法时,web服务器向CGI程序的标准输入STDIN传送数据。发送的数据长度存放在环境变量CONTET_LENGTH中,因此程序为了正确的读取数据,必须使用CONTENT_LENGTH变量。PSOT方法数据格式为:
 
variablel=valuel&variable2=value2&etc
 
CGI程序必须检查REQUEST_METHOD环境变量以确定是否采用了POST疗法,并决定是足否要读取STDIN。


原创粉丝点击