关于学习使用CGI的一些总结

解释

有关CGI,百度百科上有一些讲解如下:
CGI(Common Gateway Interface) 是WWW技术中最重要的技术之一,有着不可替代的重要地位。CGI是外部应用程序(CGI程序)与WEB服务器之间的接口标准,是在CGI程序和Web服务器之间传递信息的过程。CGI规范允许Web服务器执行外部程序,并将它们的输出发送给Web浏览器,CGI将Web的一组简单的静态超媒体文档变成一个完整的新的交互式媒体。
Common Gateway Interface,简称CGI。在物理上是一段程序,运行在服务器上,提供同客户端HTML页面的接口。这样说大概还不好理解。那么我们看一个实际例子:现在的个人主页上大部分都有一个留言本。留言本的工作是这样的:先由用户在客户端输入一些信息,如评论之类的东西。接着用户按一下“发布或提交”(到目前为止工作都在客户端),浏览器把这些信息传送到服务器的CGI目录下特定的CGI程序中,于是CGI程序在服务器上按照预定的方法进行处理。在本例中就是把用户提交的信息存入指定的文件中。然后CGI程序给客户端发送一个信息,表示请求的任务已经结束。此时用户在浏览器里将看到“留言结束”的字样。整个过程结束。

简单使用

这里上一个CGI的简单使用过程
1. 安装apache
ubuntu 16
ifconfig | grep 121.250
inet addr:121.250.223.57
apt-get install apache2
用浏览器可以看到该默认网页index.html。
ls /var/www/html/
index.html

  1. CGI脚本:示例1
    开启apache的cgi支持
    cd /etc/apache2/mods-enabled/
    ln -s ../mods-available/cgi.load cgi.load
    apachectl restart
    一开始apache的cgi目录(/usr/lib/cgi-bin/)目录是空的。使用bash写第一个cgi脚本,内容如下:
    cat /usr/lib/cgi-bin/hellow1.cgi
    #!/bin/bash
    echo “Content-type: text/html”
    echo ”
    echo ‘


    echo ‘bash cgi hello wordl 1’
    chmod +x hellow1.cgi
    用浏览器打开/cgi-bin/hellow1.cgi可以看到一行文本:
    http://scanner/cgi-bin/hellow1.cgi
    bash cgi hello wordl 1
    注意:为了方便,可以把如下一行添加到
    C:\WINDOWS\system32\drivers\etc\hosts
    121.250.223.57 scanner
    看该页源代码,有两行:
     
    bash cgi hello wordl 1
    如果在hellow1.cgi的尾部增加一行|:
    env
    则在网页中可以看到更多的输出,比如:
    REMOTE_ADDR=144.255.7.160
    REQUEST_URI=/cgi-bin/hellow1.cgi
    QUERY_STRING=

  2. 网页表单加CGI处理:示例2
    写一个表单:
    cat /var/www/html/req1.htm
    req1


    text



    注:应该使用post方法,但是get相对处理起来稍简单些。
    chmod +x /usr/lib/cgi-bin/req1.cgi
    cat /usr/lib/cgi-bin/req1.cgi
    #!/bin/bash
    echo “Content-type: text/html”
    echo ”
    echo ‘


    echo your input is $QUERY_STRING
    浏览器访问 http://scanner/req1.htm
    则提交后网址变化为
    http://scanner/cgi-bin/req1.cgi?input1=some-txt1
    your input is input1=some-txt1

另外一些学习资料

文章转载于:http://blog.csdn.net/chuanzhilong/article/details/52868737
CGI接口原理及实现(2012-12-7 Over)
这里写图片描述
1.CGI定义:
CGI(CommonGateway Interface)是HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。

2.CGI功能:
绝大多数的CGI程序被用来解释处理来自表单的输入信息,并在服务器产生相应的处理,或将相应的信息反馈给浏览器。CGI程序使网页具有交互功能。
3.CGI运行环境:
CGI程序在UNIX操作系统上CERN或NCSA格式的服务器上运行。 在其它操作系统(如:windows NT及windows95等)的服务器上 也广泛地使用CGI程序,同时它也适用于各种类型机器。
4.CGI处理步骤:
⑴通过Internet把用户请求送到服务器。
⑵服务器接收用户请求并交给CGI程序处理。
⑶CGI程序把处理结果传送给服务器。
⑷服务器把结果送回到用户。
5.CGI服务器配置:
在许多服务器cgi-bin是仅能够放置CGI脚本的目录。
这里写图片描述
在Windows平台上将C或C++写好的程序的Debug或Release版本的.exe程序拷贝到cgi-bin的目录下(如上图所示),将.exe改为.cgi也可同样运行,如下2个图。
这里写图片描述
这里写图片描述
cgi-bin目录是存放CGI脚本的地方。这些脚本使WWW服务器和浏览器能运行外部程序,而无需启动另一个程序。它是运行在Web服务器上的一个程序,并由来自于浏览者的输入触发。
CGI程序不是放在服务器上就能顺利运行,如果要想使其在服务器上顺利的运行并准确的处理用户的请求,则须对所使用的服务器进行必要的设置。
配置:根据所使用的服务器类型以及它的设置把CGI程序放在某一特定的目录中或使其带有特定的扩展名。
Apache网络服务器配置在/var/www/cgi-bin里(如下图所示笔者电脑的目录位置)。C++编译的可执行文件可以转换成扩展名为.cgi的文件。
更改初始配置的的方法:

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用Perl进行CGI编程可以实现将PDF文件生成为动态的网页内容。Perl作为一种通用的脚本编程语言,可以在CGI程序中用于处理用户请求并生成相应的HTML内容。而PDF是一种具有跨平台性的文件格式,可以用于显示和打印电子文档。 在Perl中,可以使用CGI模块来处理Web服务器发送的请求,并获取用户输入的参数。通过Perl的文件处理功能,可以将PDF文件读取到内存中,然后使用PDF生成库(如PDF::API2)来操作PDF文件。我们可以使用这些库生成新的PDF文件,也可以在现有的PDF文件上进行修改。 在CGI程序中,我们可以结合HTML标记语言来生成动态的网页内容。可以通过Perl的输出函数将生成的HTML代码输出到Web服务器,从而实现将PDF文件转换为可在网页中显示的内容。 下面是一个简单的使用Perl进行CGI编程的示例: ```perl #!/usr/bin/perl use strict; use warnings; use CGI; # 创建CGI对象 my $cgi = CGI->new(); # 输出HTTP头部信息 print $cgi->header('application/pdf'); # 打开PDF文件 open my $pdf_fh, '<', 'path/to/pdf/file.pdf' or die $!; # 读取PDF文件内容 my $pdf_content = do { local $/; <$pdf_fh> }; # 输出PDF文件内容 print $pdf_content; # 关闭PDF文件 close $pdf_fh; ``` 以上示例中,我们首先创建了一个CGI对象,然后使用CGI模块的header函数输出HTTP头部信息,指定响应内容的类型为`application/pdf`,表示返回的是PDF文件。 接下来,我们使用Perl的文件处理功能打开PDF文件,并读取其内容到变量$pdf_content中。最后,通过输出函数将PDF文件内容输出到Web服务器,从而将PDF文件转换为可在网页中显示的内容。 总之,使用Perl进行CGI编程可以方便地将PDF文件转换为动态的网页内容,从而实现在Web页面中显示和使用PDF文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值