这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 开源硬件 » SIN210学习笔记__CGI

共4条 1/1 1 跳转至

SIN210学习笔记__CGI

助工
2015-02-14 22:45:35     打赏

CGI(Common Gateway Interface)

         WWW技术中最重要的技术之一,有着不可替代的重要地位。 CGI是外部应用程序(CGI程序)与Web服务器之间的接口标准,是在CGI程序和Web服务器之间传递信息的规程。CGI规范允许Web服务器执行外部程序,并将它们的输出发送给Web浏览器,CGI将Web的一组简单的静态超媒体文档变成一个完整的新的交互式媒体。(以上内容摘自百度百科)

CGI简单的理解就是一个浏览器和服务器传递信息的一个接口规范。CGI并不是一种编程语言,而是一个规范标准。有人认为JavaScript功能强大到取代CGI,JavaScrpit和CGI是不同的,JavaScript是在客户端运行的脚本,而通过CGI,用户可以在服务器运行一些程序。

网络中会经常使用<FORM>标签来进行值的传递。


<form method=get action="cgi-bin/demo-cgi.cgi">
</form>

 


如上代码所示,method 有get 和 post 两种不同的方式。若不标注,get是缺省值。

GET

        当数据被传送到服务器端后,数据被保存在服务器上 QUERY_STRING 的环境变量中。只要读取环境变量就可以了。不同的语言有不同的函数,如C中,可以用库函数getenv()读取()(stdlib.h)


POST

       post method 不是通过 QUERY_STRING 变量传递的,而是通过stdin(标准输入)传递的。


更详细的可以参考下这个帖子 LINUX CGI 编程

 

首先在开发板的web目录里新建一个cgi-bin的文件夹。

在Ubuntu上新建 demo_cgi.c  编辑如下:


#include <stdio.h>
int main()
{
   printf("Content-type:text/html\n\n");
   printf("<html>\n<head><title>CGI DEMO</title></head>\n");
   printf("<body>\n<center> SINLINX SIN210 : WWW.SINLINX.COM</center>\n<body>\n</html>");
   return 0;
}

 



保存demo_cgi.c文件。

执行下面指令

# arm-linux-gcc -o demo_cgi.cgi demo_cgi.c

将生成的demo_cgi.cgi 文件复制到开发板的 /web/cgi-bin/ 文件夹中。

在开发板的 web/ 文件夹中新建一个 demo_cgi.html 代码如下:

<html>
<head>
<title> DEMO CGI </title>
</head>
<body>
   <center><a href="cgi-bin/demo_cgi.cgi"> HelloWii SIN210:www.sinlinx.com </a> <center>
</body>
</html>

 

     。


在浏览器中输入  http://192.168.1.20/demo_cgi.html    即可出现如下界面(192.168.1.20 是笔者的开发板IP



点击上面的文字,即可执行cgi-bin中的程序,如下所示:




至此,可以通过浏览器执行服务器上的程序了。






最后非常感谢 SINLINX 公司提供的sin210开发板。








关键词: SIN210学习笔记     CGI    

院士
2015-02-15 12:15:03     打赏
2楼
真棒! 先普及知识,然后再用实例解释

助工
2015-02-15 19:41:27     打赏
3楼
悄悄告诉你我是菜鸟,不要告诉别人

院士
2015-02-15 21:17:47     打赏
4楼
我说的是趋势,是坚持~~

共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]