Perl CGI编程
在Perl中,CGI(Common Gateway Interface)是一个通过网络请求执行脚本的协议。它是一套规则和标准,定义了网络服务器和自定义脚本之间的信息交换方式。早些时候,像Perl这样的脚本语言被用来编写CGI应用程序。而且,由HTTP服务器调用的CGI代码被称为CGI脚本。后来,网络的发展引起了对动态内容需求的增加,通过这种方式,用其他语言而不是Perl编写的CGI应用程序变得更加流行和需要,并被称为脚本。脚本如何被服务器执行的具体细节由服务器决定。CGI应用程序几乎可以执行任何任务。例如,你可以访问数据库,保持telnet会话,即时创建网页和生成图形等。CGI是有一个非常简单的概念,但创建一个CGI应用程序需要真正的编程技巧。
什么是CGI?
通用网关接口(CGI)只不过是一个协议,它定义了网络服务器与一些可执行程序的互动,以产生动态网页。基本上,它显示了网络服务器如何将信息发送给程序,而程序将信息发回给网络服务器,反过来又可以发回给浏览器。在网络服务器和外部程序之间,它被认为是标准的编程接口。
CGI代表。
通用: 与许多不同的操作系统互动。
网关: 它为用户提供途径,以获得对不同程序的访问,如图片生成器或数据库等。
接口: 它使用一种方法与网络服务器互动。
CGI程序可以发送许多类型的数据或媒体,如文件、图像、音频剪辑等。大多数网站使用CGI的字段进行输入,网络上动态内容的交易主要是通过CGI完成的。它是一种方法,通过这种方法,网络服务器可以分别从数据库、文档和其他程序获得/发送数据,然后通过网络将这些数据呈现给浏览者。
CGI架构
在上图中,在HTTP(超文本传输协议)的帮助下,运行在客户机上的网络浏览器与网络服务器交换信息。由于CGI程序和网络服务器通常运行在网络服务器所在的同一系统上,根据浏览器的请求,网络服务器要么从自己的文档目录中提供文档,要么执行CGI程序。
简单的CGI程序:
下面是一个简单的程序,用来理解Perl中CGI编程的工作。在这里,我们将在HTML程序中获得输入,然后运行CGI脚本以得到网页。
因为,HTML确定了一些输入字段,我们可以用它们来将用户数据传递给CGI程序。这里,是利用这些输入字段的HTML表格,如文本字段、下拉列表、复选框和一个提交按钮,用于提交用户数据到网络服务器。
注意: HTML表单中的每个输入元素都有一个名称属性,这在我们需要访问数据时是很重要的。而且,所有的输入元素都在<form>
标签内。此外,<form>
标签也有一个 “action “属性,它决定了提交表单时将调用的CGI脚本。
上述表格的Perl-CGI脚本。
推荐使用:请先在{IDE}
上尝试你的方法,然后再继续解决
CGI.pm: CGI.pm(使用CGI;)是一个大型的、广泛使用的Perl模块,用于编程CGI网络应用程序,它为接收和处理用户输入提供了一致的API。我们需要写一个Perl脚本来返回HTTP响应头(Content-type: html/text)和正文中的HTML,但CGI.pm为我们轻松地处理了这个问题(不需要对HTTP响应头进行硬编码)。
它有一个名为 “param “的函数,可以将我们传递给脚本的数据的细节/信息发送回来。当它被赋予一个参数的名称时,它返回与该名称相关的值。在HTML表格页面中的输入元素的名称就是CGI参数的名称。
注意: 提交表单后,我们将得到的网页如下所示。如果你注意到在网页浏览器的URL框中,你会发现现在的URL已经被改变了。