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