使用Bash脚本实现Web服务CGI

2014-01-09 wcdj

之前总结过一篇使用Perl实现Web服务的文章《Web服务器的实现(最小的Perl Web服务器) 》。在工作中经常需要和CGI接口进行交互,当依赖的接口还未实现时,自己可以写一个简单的CGI接口来模拟依赖的接口以完成调试。Bash也是日常使用的脚本之一,本文总结如何使用Bash实现简单的CGI交互。


0 实现一个返回json格式应答的CGI

#!/bin/bash

echo "Content-type: text/html"
echo ""

# ok, we've sent the header, now send some content
echo "{\"ret\":0,\"msg\":\"ok\"}"
测试方法:

将上述的Bash脚本放在Websvr下,可以通过curl命令发送http请求,例如:curl "http://172.25.81.16/cgi-bin/ret_json_ok.sh",然后会返回:{"ret":0,"msg":"ok"}。


1 实现一个form来发送http请求

效果如下图所示:


实现方法分两步:
(1) 写一个简单的html页面,例如,form.html
<FORM ACTION="/cgi-bin/form_test.sh">
Enter Host: <INPUT name="host">
<INPUT TYPE=SUBMIT VALUE="Submit">
</FORM>
(2) 写一个接收请求的CGI,上面的ACTION已指定,即,form_test.sh
#!/bin/bash

echo 'Content-type: test/html'
echo ''
echo $QUERY_STRING

2 实现一个返回html页面,标题和内容都为Hello World

返回的页面效果如下图:

实现方法,同样实现一个CGI,只是返回的内容是一个html:
#!/bin/bash

echo 'Content-type: test/html'
echo ''

echo '<html>'
echo '<head>'
echo '<meta http-equiv="Content-Type" content="text/html; charst=UTF-8">'
echo '<title>Hello World</title>'
echo '</hea
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值