zoukankan      html  css  js  c++  java
  • shell脚本--初识CGI

      CGI按照百度百科的定义,如下:

      CGI 是Web 服务器运行时外部程序的规范,按CGI 编写的程序可以扩展服务器功能。CGI 应用程序能与浏览器进行交互,还可通过数据库API 与数据库服务器等外部数据源进行通信,从数据库服务器中获取数据。格式化为HTML文档后,发送给浏览器,也可以将从浏览器获得的数据放到数据库中。几乎所有服务器都支持CGI,可用任何语言编写CGI,包括流行的C、C ++、VB 和Delphi 等。CGI 分为标准CGI 和间接CGI两种。标准CGI 使用命令行参数或环境变量表示服务器的详细请求,服务器与浏览器通信采用标准输入输出方式。间接CGI 又称缓冲CGI,在CGI 程序和CGI 接口之间插入一个缓冲程序,缓冲程序与CGI 接口间用标准输入输出进行通信。
      
      上面这一段话第一次接触cgi,可能不懂到底什么意思,下面举一个例子方便理解。
      以Apache为例,在配置文件httpd.conf中搜索cgi关键字,下面是主要的配置
    <IfModule alias_module>
        ScriptAlias /cgi-bin/ "/usr/local/apache/cgi-bin/"
    </IfModule>
    
    <IfModule cgid_module>
        #Scriptsock cgisock
    </IfModule>
    
    <Directory "/usr/local/apache/cgi-bin">
        AllowOverride All
        Options None
        Require all granted
    </Directory>
    

      进入Apache下面的cgi-bin目录,创建一个文件,文件名为index.cgi,文件扩展名为.cgi,这个和php文件的扩展名是.php是一样的。

      index.cgi的内容如下:

    #!/bin/bash
    #index.cgi
    
    echo "Content-Type:text/html;charset=utf-8"
    echo
    
    echo "hello world"
    

      然后在浏览器中访问localhost/cgi-bin/index.cgi,你就会看到结果如下:

      然后将index.cgi的内容改一下:

    #!/bin/bash
    #index.cgi
    
    echo "Content-Type:text/html;charset=utf-8"
    echo
    
    mysql="mysql -uroot -proot"
    sql="show databases"
    $mysql -e "$sql"
    

      浏览器运行如下:

      

      其实,从上面的例子中,你就会得出一点结论,cgi就和php类似,只不过php文件中使用的使用php的语法,cgi中使用的shell命令,但是,都可以通过浏览器来运行脚本,获得结果。

      现在看一下CGI的定义:CGI 应用程序能与浏览器进行交互,还可通过数据库API 与数据库服务器等外部数据源进行通信,从数据库服务器中获取数据。格式化为HTML文档后,发送给浏览器,也可以将从浏览器获得的数据放到数据库中。

      是不是有点理解了。

     
     
  • 相关阅读:
    mssqlserver字符串日期互相转换
    使用TripleDES算法加密/解密
    记录google,yahoo,bing爬虫记录的插件
    C#中编写sqlserver中自定义函数,实现复杂报表
    最基本的Socket编程 C#版
    基于.net平台的web框架搭建
    未来五年程序员需要掌握的10项技能
    一段输入框控制代码,包含所有控制条件!
    C#多线程编程实例编程
    C# WinForm开发系列 Socket/WCF/Rometing/Web Services
  • 原文地址:https://www.cnblogs.com/-beyond/p/8564108.html
Copyright © 2011-2022 走看看