怎样从服务器获得信息
每次客户端需要url来对应cgi程序,服务器将实时执行它。程序将直接输出到客户端。关于cgi的公用的误解是你可以发送命令行选项和参数给你的程序,比如:
command% myprog -qa blorf
cgi为其它目的使用命令行,这样是不可能。相反,cgi使用环境变量来发送给程序它的参数。两个重要的环境参数是:query_string和path_info。
query_string被定义为在url中跟在第一个?后面的内容。这个信息可以由isindex文档或者通过html表单(利用get action)来增加。它同样可以手动嵌入html锚,这个html锚可以引用你的网关。这个字符串就是一个信息查询,比如用户想搜索archie数据库或者是你的反馈get表单的编码结果。
这个字符串被在标准的url编码,其格式将空格转换为+,并将特殊的字符利用%xx十六进制编码。你为了使用它必须对它进行编码。
如果你的网关不是从表单来的编码结果,你同样可以利用命令行得到查询字符串。这就意味着查询字符串的每一个单词将在argv的不同部分。比如,查询字符串"forms rule"将以argv[1]="forms" 和 argv[2]="rule"传递给程序。如果你选择这个,你在使用它之前不必做任何的处理。
下面讲讲path_info 。cgi允许为你的网关在url中嵌入额外的信息,这个网关可以用于传递额外的信息给脚本。这个信息通常是处在url的网关路径之后的额外信息。这个信息不能在服务器中以任何的方法来编码。
最亦用的path_info例子是传递文件位置给cgi程序。为了阐述这个,假设我们有一个cgi程序在服务器中,名为/cgi-bin/foobar,它可以处理在服务器的documentroot中的文件。这时我需要通知foobar哪个文件要被处理。通过包括额外的路径信息到url的末尾,foobar通过path_info环境变量就知道了文档位置相关的documentroot,或者通过path translated环境变量(服务器为你产生的)来知道文档的真实路径。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器