Perl CGI中的GET与POST
在Perl中,通用网关接口(CGI)只不过是一个协议,它定义了网络服务器与一些可执行程序之间的互动,以产生动态网页。基本上,它显示了网络服务器如何将信息发送给程序,而程序将信息发回给网络服务器,反过来又可以发回给浏览器。
GET 和 POST 是不能互换的,这两种类型是不同的。代理服务器可能会缓存 GET 请求的输出。 GET 方法是所有网络请求的默认方法,用于将信息从浏览器传递给网络服务器,它还会创建一个长字符串,显示在浏览器的URL框中。它将加密的用户信息附在页面请求中。页面和加密的信息用 ? 字符隔开:
例子
**http://servername.com/cgi-bin/script_name.cgi or.pl?key1=value1 &key2=value2……. **
这些信息是通过 QUERY_STRING 头传递的,通过使用 QUERY_STRING 环境变量,可以很容易地在你的CGI程序中访问。由于 GET 方法有大小限制,一个请求字符串只能有1024个字符。信息可以通过简单地连接 键值 对和任何URL来传递。
注意: 如果你正在处理密码或任何其他敏感信息,以便将其传递给服务器,那么使用 GET 方法不是一个好的选择。
例子
输出:
上述GET方法形式的Perl-CGI脚本
输出:
如上所示,在输出图像中,信息是与URL一起传递的。
http://localhost/xampp/cgi-bin/Gfg_get.pl?q=music &l=Web
相比之下, POST 方法是向CGI程序传递信息的最可靠方法。一般来说,当信息被要求上传到服务器上时,就会使用 POST 方法。为了上传大量的数据, POST 方法被认为比 GET 方法更适合,因为没有数据出现在URL框中。与 GET 方法类似,信息也被打包,但它不是在URL框中的 “? “之后以文本字符串的形式发送,而是通过Perl/CGI程序可以访问的不同路径,以单独的信息形式发送到服务器。
例子
输出:
上述POST方法的Perl-CGI脚本 。
输出:
从上图可以看出,使用 POST 方法后,信息被上传到服务器,而没有出现在URL框中。这使得通过互联网发送的数据与 GET 方法相比更加安全。