利用PATH_INFO构建虚拟目录空间:深入探讨CGI编程
1. 引言
Web是无状态的,这意味着Web服务器不会跟踪谁登录了它们,CGI程序也不会来回与用户对话。相反,每个链接都开始一个新的会话。如果链接指向的是一个CGI程序,那么每次选择该链接时都会执行一个新副本的CGI程序。这就引出了一个问题:如何在一个扩展的会话中与用户互动,让用户能够浏览多个不同的网页,并从一个动态生成的文档跳转到另一个?
2. 环境变量的作用
在Unix操作系统下,每个程序都在一个环境中运行,这个环境提供了关于计算机和用户的大量信息。环境变量构成了这个环境的重要组成部分,Unix和MSDOS用户可能熟悉 set
和 setenv
命令,用于设置这些变量。例如,在Unix中,环境变量 TERM
通常由用户的登录脚本设置,以指示终端类型;环境变量 PATH
则指定了查找用户希望执行的程序的目录。
2.1 CGI如何利用环境变量
CGI标准使用环境变量来存储信息,帮助CGI程序更好地了解服务器、用户和浏览器。例如,当一个CGI程序执行时,环境变量 HTTP_USER_AGENT
包含了访问服务器的Web浏览器的名称和版本(如