目录 | 第一章 | 第二章 | 第三章 | 第四章 | 第五章 | 第六章 | 第七章 | 第八章 | 第九章 | 第十章 |
服务器与CGI程序交换信息的协作方式是通过环境变量实现的。无论什么请求,CGI程
序总能在特定位置找到某些信息。无论环境变量怎样定义,总有一些变量有着特定含义。
环境变量是一个保存用户信息的内存区。例如,所有的机器都有一个PATH环境变量,
当在当前目录找布道文件时就要查找PATH变量。当服务器收到一个请求后,它首先要收集
它能得到的所有相关信息,并把它放入内存。那么,服务器要收集什么信息呢?
关于服务器自身的详细信息
关于用户的信息信息
关于用户请求的信息
服务器不知道CGI程序到底需要那些信息,所以它把这些信息一起收集,那么如果有什
么重要的东西就不会遗漏了。为了向你展示服务器收集那些环境变量,在上一期的教程里
我已经为各位写了一个程序,该程序将几乎所有的信息都反映在了浏览器里。所以在进一
步学习变量的时候,请首先把程序调试好。
环境变量
1.与服务器相关的环境变量
GATEWAY_INTERFACE | 服务器遵守的CGI版本 |
SERVER_NAME | 服务器的IP或名字 |
SERVER_PORT | 主机的端口号 |
SERVER_SOFTWARE | 服务器软件的名字 |
2.与客户机相关的环境变量
服务器了解你的CGI程序,但它一定不知道你的客户机环境。正因为如此,同客户机有
关的变量才是最重要的。因为它涉及到你的浏览器等等。
ACCEPT | 例出能被次请求接受的应答方式 |
ACCEPT_ENCODING | 列出客户机支持的编码方式 |
ACCEPT_LANGUAGE | 表明客户机可接受语言的ISO代码 |
AUTORIZATION | 表明被证实了的用户 |
FORM | 列出客户机的EMAIL地址 |
IF_MODIFIED_SINGCE | 当用get方式请求并且只有当文档比指定日期更早时才返回数据 |
PRAGMA | 设定将来要用到的服务器代理 |
REFFERER | 指出连接到当前文档的文档的URL |
USER_AGENT | 标明客户使用的软件 |
3.与请求相关的环境变量
每次服务器受到的请求都不可能是一样的。这意味着有许多CGI程序必须注意的信息。
这些与请求相关的信息包含有用户调用的信息,用户如何发送请求,以及作为请求的一部
分传送了多少(什么)信息。这些对你的程序来说是非常重要的,因此我们将化些时间详
细地讨论一下其中的一些变量。特别是下面写出的三个变量。这三个变量相当重要。
REQUEST_METHOD
QUERY_STRING
CONTENT_LENGTH
你必须熟悉这三个变量,因为它们用来表示数据是如何送到CGI程序的;然后你所要要
做的事情就是在这三个变量里取出数据,进行下一步的编程。其他的一些变量的用处很多,
你可以了解你的竞争对手正在调用你的程序,你可以辨别用户是否注册,或者你可以设置连
接到你的CGI程序以便要求附加路径信息包含在请求之中----因此你不必猜测你的用户正在
你的服务器的哪个页面上。
AUTH_TYPE | 服务器用的确认模式 |
CONTENT_FILE | 含有CGI程序的数据文件 |
CONTENT_LENGTH | POST请求中向标准输入(STDIN)发送的字节数 |
CONTENT_TYPE | 被发送数据的类型 |
PATH_INFO | CGI程序的附加路径 |
PATH_TRANSLATED | PATH_INFO对应的绝对路径 |
QUERY_STRING | 传送给CGI程序的URL的问号(?)之后的那一部分 |
REMOTE_ADDR | 最终用户的IP或主机名 |
REMOTE_USER | 如果用户合法,则是用户的组名 |
REQUEST_LINE | 发送给服务器的完整URL请求 |
REQUEST_METHOD | 作为HTTP的一部分请求而传送数据的方法,比如get。 |
SCRPT_NAME | 运行的脚本名字 |