当前位置: 代码迷 >> CGI >> CGI过时了吗?解决思路
  详细解决方案

CGI过时了吗?解决思路

热度:884   发布时间:2014-03-01 00:37:48.0
CGI过时了吗?
CGI过时了吗?你看看下面吧,对你的理解有帮助
1.  什么是CGI?  
  CGI  是通用网关接口(Common  Gateway  Interface)的缩写.  它主要用于服务器端动态输出客户端的请求(如,HTML页面/二进制文件).  也就是说客户端请求参数不同,  服务器端会给出不同的应答结果..  
    
  CGI  标准将这个接口定义的非常简单  (即:  WEB  服务器收到客户端的请求后通过环境变量和标准输入(stdin)将数据传递给CGI程序,  CGI程序通过标准输出(stdout)  将数据返回给客户端).  所以只要能操作标准输入/输出的程序语言都可以CGI程序,  Perl/C++/JAVA/VB等.    
    
  2.  CSP/ASP/JSP/PHP/PERL  与CGI程序的关系?  
  严格来讲,  它们全都是CGI的变种,  因为它们的操作原理都是CGI.  而在又在CGI的基础上作了进一步的包装,  屏蔽了CGI的与程序语言相关的接口.  如从环境变量和标准输出中获取参数被包装成  getParameter(),将数据输出到标准输出被包装成  “=”,  print(),  echo()  等.  万变没离其踪.  
    
  3.为什么要包装?  
  如同将TCP/IP协议进行分层一样,  目的都是简化操作的难度.  CSP/ASP/JSP/PHP/PERL等都提供了各自的操作接口,  另外CSP/ASP/JSP/PHP等直接将  C/C++  /VBS/JS/JAVA/PHP语句嵌入到HTML模板文件中,  还能很好地对输出流程进行控制.  
    
  4.  为什么还直接用CGI呢?.  
  目前说直接用CGI主要是指直接用  C/C++/PERL等编写CGI源文件,  它们共同的缺点就是没用HTML模板文件进行流程控制,  输出操作相对复杂些.  但直接用  C/C++编写CGI还具有如下优势和原因:  
  (1) 高效率,  C/C++  不像PERL/VBS/JS等解释执行语言运行时解释执行源文件中的语句.  同时这一点仍非JAVA/PHP等所能及.  所以C/C++仍是许多WEB应用的首选,  特点是大型WEB应用中.  
  (2) 嵌入式设备(如PDA/数码产品/通信产品)WEB应用的首选,  目前几乎所有的嵌入式设备都直接用C语言开发,  而CPU/内存/外存等的限制几乎根本不可能安装如PERL/ASP/JSP的运行环境,  所以嵌入式设备上C开发CGI几乎仍是唯一选择.  
    
  5.  将  C  直接嵌入到HTML中叫CSP吗?  
  是的,  C  语言天然好的"移植性/高效性/灵活性",  一直以来都是最受程序员青睐的语言,  现在用CSP  技术我们就可以轻松地将  C  语句直接嵌入到  HTML  源文件中了,  它编程过程跟ASP/JSP/PHP  几乎一样.  甚至有些时候,  就可以直接拿  JSP/PHP  的源文件作为  CSP  的源文件了,  因为它们都用  <%  和  %>  进行标记.    
    
  如果你对  CGI有兴趣,  可以:  
  下载并运行的CGI示例程序(还包括一个web  服务器,  共  217K):  
  http://www.eybuild.com/develop/demoshow.htm  
    
  免费下载CSP的开发环境  eybuild  (Windows/Linux版):    
  http://www.eybuild.com/develop/download/eyBuild-00-07-00.tar.gz  
  相关解决方案