代码改变世界

CGI小白一些漫想

2012-04-25 17:21  @影子@  阅读(448)  评论(0编辑  收藏  举报

CGI Common Gateway Interface

  • 一种基于浏览器的输入、在Web服务器上运行的程序方法
  • 你创建客户端的 CGI脚本, 服务器端的程序用来处理用户输入, 结果返回给用户


CGI脚本是什么?它是怎样工作的
 CGI脚本是用下列两种方法使用的: 作为一个表单的ACTION 或 作为一个页中的直接link。
 它的工作方式是从浏览器到服务器到脚本到程序

  1. 一个URL指向一个CGI脚本. 一个CGI脚本的URL能如普通的URL一样在任何地方出现。
  2. 服务器接收请求, 按照那个URL指向的脚本文件(注意文件的位置和扩展名),执行脚本.
  3. 脚本执行基于输入数据的操作,包括查询数据库、计算数值或调用系统中其他程序.
  4. 脚本产生某种Web服务器能理解的输出结果.
  5. 服务器接收来自脚本的输出并且把它传回浏览器,让用户了解结果。

上面的话也许不是很好理解。那么,我们来仔细想想,以前每拿到一本关于web动态语言的书,基本上都会拿CGI、JSP、ASP、PHP放在一起比较个半天,这说明了啥,说明了要进行web动态开发,光靠Html难挑大梁。从浏览器到服务器是一个交互的过程,那么这种交互就要交给一门语言来完成。当我们拿到一份php、asp、jsp文件仔细研究,会发现他们的结构还是html的,可是多了很多%号或者$号之类的天书。那么浏览器肯定也看不懂这类天书,所以逢客户端脚本必伴随web服务器作翻译。在asp中是IIS,在JSP中是tomcat,在PHP中是apache。解释了这么多,相信客户端脚本的工作方式已经很好理解啦。

     CGI的特点是 一个URL对应一个CGI脚本 ,当服务器接收到请求,那么服务器就执行URL对应的CGI脚本

         执行完了脚本之后会产生一个结果,那么服务器把这个结果传回给浏览器。得到了我们想要的。

         那么有人说CGI到底好不好用,是不是不如PHP啊,其实是各有所长各有千秋啊,而且感觉风水轮流转。有人说小打小闹就PHP,和老的兼容就CGI,靠MS就ASP,赶潮流就ASP.NET,想玩点大的就JSP。嗯,照这么说CGI不是out啦么。非也。CGI 是一种规范,并且是安全的,和asp.php.jsp是一种 语法体系不同,它不受限制于语法体系,遵循规范即可应 用,那么不管你使用什么语言,只要按照CGI规范去做就是 CGI程序,你不需要为学习新的语法体系而投入资金,同样 虽然以ISAPI,MODULE形式运行的ASP,PHP,JSP是有其个自 的优越性,但是新的学习,和语法体系的局限性是不可避免存在的,并且有CGI基础过度是很容易的,所以CGI不会过时 ASP.PHP.JSP只是一个在各自条件下比CGI方便快捷的方式 从ASP,PHP,JSP的实际应用来看,和CGI的作用是一样的。CGI最大的优点是平台(操作系统、服务器、语言)无关性和简单易懂。凡是运行在http服务器上的都是CGI,只不过表现形式不同。    


参考文件:http://www.jdon.com/idea/cgi.htm