--> 编写是记得返回Content-Type头以返回介质类型以定义主体的内容,并在所面跟两个新行。如:
print "Content-Type:text/html\n\n";
使用%ENV得到所有的环境变量.
foreach(sort keys %ENV){
print "$_\t$ENV{$_}\n";
}
使用CGI模块
创建对象my $cgi=new CGI;
获得传递过来的参数的关键字:
@keys=$cgi->param();
获得传递过来的参数值:
$value=$cgi->param('key'); 这里的key是参数关键字
产生一个新参数:
$cgi->param('newkey','newvalue');
更改一个参数:
$cgi->param('oldkey','newvalue');
删除一个参数:
$cgi->delete('oldkey');
删除一个参数的值:
$cgi->param('oldkey','undef');
请求
CGI脚本响应Web服务器取决于客户机使用的HTTP方法.
方法一:GET
客户机传递参数的方法有:
a.查询字符串
http://www.myserver.com/cgi/myscript.cgi?key=value
QUERY_STRING的值被置为key=value
b.路径信息方法
http://www.myserver.com/myscript/extrapath/arg
PATH_INFO变量被设置
当然我们也可以将上面的两种方法结合在一起使用
GET方法的缺点在于服务器只能处理一个不超过256个字符的HTTP命令
方法二:POST
在HTTP请求的主体中传递参数
优点在于可以尽可能多的传递参数,缺点在于不能记录请求的详细信息
定义介质类型,通过往标准输出中发送内容来达到返回内容的目的。如果请求CGI脚本时服务器开始为客户机产生500服务器错误响应,那么Content-Type头是首先检查的内容。
访问环境
我们可以通过%ENV来访问CGI变量也可以通过CGI模块提供的方法来访问它们。
常用的方法有:
Accept 支持的介质类型。可以通过 if($cgi->Accept('image/png')来测试
raw_cookie Cookie头的原始值。
user_agent 发出请求的用户代理软件。
path_info 客户提供的附加路径信息。
path_translated 翻译成一个绝对路径名字的path_info的值。
优点在于可以尽可能多的传递参数,缺点在于不能记录请求的详细信息
响应
定义介质类型,通过往标准输出中发送内容来达到返回内容的目的。如果请求CGI脚本时服务器开始为客户机产生500服务器错误响应,那么Content-Type头是首先检查的内容。
访问环境
我们可以通过%ENV来访问CGI变量也可以通过CGI模块提供的方法来访问它们。
常用的方法有:
Accept 支持的介质类型。可以通过 if($cgi->Accept('image/png')来测试
raw_cookie Cookie头的原始值。
user_agent 发出请求的用户代理软件。
path_info 客户提供的附加路径信息。
path_translated 翻译成一个绝对路径名字的path_info的值。

发表评论