shell脚本--初识CGI
2024-08-25 05:36:43
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文档后,发送给浏览器,也可以将从浏览器获得的数据放到数据库中。
是不是有点理解了。
最新文章
- nginx + tomcat配置负载均衡
- Emit学习(2) - IL - 常用指令介绍
- windows 2008 r2 下面搭建 iis+sql server +php5.6 环境遇见的一些问题记录一下
- XP明年就被停止技术支持,这会带来什么?谈谈如何做决策
- Weka 3: Data Mining Software in Java
- AP_HZ Party和Supplier、Bank表关系详解
- VMware 11 设置U盘启动,总是找不到physicalDrive1
- bash shell 合并文件
- 在Linux系详解Linux bash中的变量
- Android 的平台碎片化问题
- Python的核心数据结构
- Vue.js学习
- Ehcache 3.7文档—基础篇—Tiering Options
- Linux——目录结构思维导图
- 有序数组每个数平方后,不同数字的个数?O(n)
- vuejs监听苹果iphone手机键盘事件
- PAT 1052 卖个萌 (20)(代码+思路)
- cocos2d-x 3.0 将cpp-tests编译成Android版本号APK文件
- Android关于注解那点事(二)
- HDU 3689 Infinite monkey theorem(DP+trie+自动机)(2010 Asia Hangzhou Regional Contest)