Perl 教程 之 Perl CGI编程 1

简介: CGI(Common Gateway Interface)是服务器与客户端交互的接口,允许执行如Perl的脚本处理用户请求。当浏览器访问URL,服务器解析请求,查找文件,若存在则返回内容。CGI程序可采用多种语言编写。Apache服务器中,CGI脚本通常存放在`/var/www/cgi-bin`,扩展名`.cgi`或`.pl`。要启用CGI,需配置Apache的httpd.conf

Perl 教程 之 Perl CGI编程 1

Perl CGI编程

什么是CGI

CGI 目前由NCSA维护,NCSA定义CGI如下:

CGI(Common Gateway Interface),通用网关接口,它是一段程序,运行在服务器上如:HTTP服务器,提供同客户端HTML页面的接口。

网页浏览

为了更好的了解CGI是如何工作的,我们可以从在网页上点击一个链接或URL的流程:

1、使用你的浏览器访问URL并连接到HTTP web 服务器。
2、Web服务器接收到请求信息后会解析URL,并查找访问的文件在服务器上是否存在,如果存在返回文件的内容,否则返回错误信息。
3、浏览器从服务器上接收信息,并显示接收的文件或者错误信息。
CGI程序可以是Python脚本,PERL脚本,SHELL脚本,C或者C++程序等。

cgiarch

Web服务器支持及配置

在进行CGI编程前,确保Web服务器支持CGI及已经配置了CGI的处理程序。

Apache 支持CGI 配置:

设置好CGI目录:

ScriptAlias /cgi-bin/ /var/www/cgi-bin/
所有的HTTP服务器执行CGI程序都保存在一个预先配置的目录。这个目录被称为CGI目录,并按照惯例,它被命名为/var/www/cgi-bin目录。

CGI文件的扩展名为.cgi,Perl 也可以使用.pl扩展名。

默认情况下,Linux服务器配置运行的cgi-bin目录中为/var/www。

如果你想指定其他运行CGI脚本的目录,可以修改httpd.conf配置文件,如下所示:


AllowOverride None
Options +ExecCGI
Order allow,deny
Allow from all

在 AddHandler 中添加 .pl 后缀,这样我们就可以访问 .pl 结尾的 Perl 脚本文件:

AddHandler cgi-script .cgi .pl .py

目录
相关文章
|
6月前
|
存储 移动开发 Perl
Perl 教程 之 Perl CGI编程 12
Perl CGI教程介绍如何通过CGI程序处理HTML表单数据。当用户从一个包含下拉选项(如百度和Google)的HTML表单提交选择后,CGI脚本`test.cgi`读取并解析POST请求中的数据。脚本将选定的值(如"百度"或"Google")存储在变量 `$site` 中,并生成一个显示所选网站的简单HTML响应。
52 5
|
6月前
|
机器学习/深度学习 移动开发 Go
Perl 教程 之 Perl CGI编程 5
Perl CGI教程讲解如何通过Perl实现文件下载。设置HTTP Header为"Content-Type:application/octet-stream; name=\"FileName\"和"Content-Disposition: attachment; filename=\"FileName\",然后打开文件并逐块读取内容输出,实现文件下载功能。
40 1
|
6月前
|
移动开发 Perl
Perl 教程 之 Perl CGI编程 11
Perl CGI教程介绍了如何通过CGI程序接收HTML表单(Textarea)中的多行数据。test.html是一个包含Textarea的表单,提交后调用test.cgi脚本。test.cgi读取POST请求的数据,解析name/value对,获取textarea内容并显示在HTML响应中。在浏览器中,用户输入的内容会以标题形式展示。
47 4
|
6月前
|
移动开发 Perl
Perl 教程 之 Perl CGI编程 10
Perl CGI教程展示了如何通过CGI程序与HTML表单交互。当用户在HTML页面(test.html)中选择百度或Google并提交后,数据发送到CGI脚本(test.cgi)。脚本解析请求,获取选中的站点($site),然后生成返回的HTML响应,显示用户选择的网站。
49 5
|
6月前
|
移动开发 网络安全 Perl
Perl 教程 之 Perl CGI编程 13
Perl CGI教程介绍了CGI(Common Gateway Interface)作为服务器与客户端交互的接口,并讲解了如何使用Cookie来弥补HTTP协议中用户身份验证的不足。Cookie通过设置HTTP头部的Set-Cookie字段,包括name、expires、path、domain和secure属性来实现。在Perl中设置Cookie涉及打印包含这些字段的响应头。示例代码展示了如何设置UserID、Password以及过期时间等Cookie信息。
49 2
|
6月前
|
存储 数据安全/隐私保护 Perl
Perl 教程 之 Perl CGI编程 14
Perl CGI教程介绍了CGI(Common Gateway Interface)的概念,它是一种让服务器与客户端HTML交互的程序接口。CGI弥补了HTTP协议不识别用户身份的缺陷。Cookie用于身份验证,当用户访问脚本时,信息存储在环境变量HTTP_COOKIE中。示例代码展示了如何从HTTP_COOKIE检索Cookie信息,包括UserID和Password,输出用户ID和密码。
57 2
|
6月前
|
移动开发 数据安全/隐私保护 Perl
Perl 教程 之 Perl CGI编程 8
Perl CGI编程教程讲解了如何通过CGI接口与HTTP服务器交互。文章介绍了CGI的概念,强调使用POST方法传递敏感数据的安全性。示例脚本`test.cgi`演示了处理POST表单数据的方法,读取并显示输入的站点名称和URL。同时,给出了一个HTML表单`test.html`,用于通过POST方法向`test.cgi`提交数据。
45 2
|
6月前
|
Perl
Perl 教程 之 Perl CGI编程 7
Perl CGI编程教程讲解了CGI的概念,它是NCSA维护的通用网关接口,用于连接服务器和客户端HTML。示例展示了一个简单的GET方法HTML表单,通过<form>标签提交数据到test.cgi,包含站点名称和URL字段。用户提交后,数据将以URL参数形式传递给服务器。
37 1
|
6月前
|
移动开发 Perl
Perl 教程 之 Perl CGI编程 9
Perl CGI教程讲解了如何通过CGI程序处理HTML表单中的checkbox数据。在示例中,HTML表单包含两个checkbox(百度和Google),提交后,CGI脚本`test.cgi`读取并解析POST数据,判断每个选项是否被选中,并生成相应HTML响应显示选中状态。
34 1
|
6月前
|
缓存 Perl 移动开发
Perl 教程 之 Perl CGI编程 6
Perl CGI教程介绍了CGI(Common Gateway Interface)是一种让服务器与客户端HTML交互的程序接口。GET方法通过URL传递编码数据,例如`/cgi-bin/test.cgi?name=百度&url=http://www.baidu.com`。CGI脚本示例展示了如何解析GET请求中的参数并生成HTML响应。注意,GET请求可能出现在浏览器历史和缓存中,不适合敏感数据传输,并且有长度限制。
23 1