CGI(Common Gateway Interface,公用网关接口)是较早用来建立动态网页的技术。当客户端向Web服务器上指定的CGI程序发出请求时,Web服务器会启动一个新的进程执行某些CGI程序,程序执行后将结果以网页的形式再发送回客户端。 CGI的优点是它可以用很多语言编写,如 C 、C++ 、VB和Perl语言。在语言的选择上有很大的灵活性。最常用的CGI开发语言为Perl。 CGI的主要缺点是维护复杂,运行效率也比较低。这主要由以下几方法原因造成:
- CGI程序以独立的进程运行,当多个用户要与服务器建立连接时,服务器需要为每个用户响应创建一个CGI程序进程。
- CGI程序不是常驻内存的,因此,当频繁访问CGI程序时,会导致大量的磁盘I/O操作。
- 编写访问数据库的程序比较复杂。 (CGI在嵌入式web中应用:
一、由于需要在网页中操作I/O口和舵机等硬件,所以要用到CGI(通用网关接口)技术,即在网页中调用位于服务器中的CGI程序,然后在CGI程序中调用具体的硬件操作。CGI在网页中通常是通过表单的action值调用的,如:
在表单提交时,就会执行xxx.cgi程序。
二、 cgi程序执行完毕后通常会返回一新网页,但是有时候我们并不期望这么做,我们希望cgi只执行交给它的任务,并且保持调用它的原网页不变。CGI的输出形式是固定的,通常有三类,以不同的输出头标记:Content-type, Location, 和Status. 其中的Status有就可以实现我们要的效果:只执行规定的程序,其他不做任何变化。一个简单的Bourne Shell版的cgi程序如下:
三、有时候我们需要当javascript在满足一定条件时自动调用CGI程序,而不需要网页上的鼠标点击按钮,下面的程序就可以实现自动提交表单,从而触发CGI程序:
PHP(Personal Home Pages)是一种服务器端的嵌入HTML的脚本语言,可以 运行于多种平台。它借鉴C语言、Java语言和Perl语言的语法,同时具有自己独特的语法。 由于PHP采用Open Source方式,它的源代码公开,使得它可以不断有新东西加入,形成庞大的函数库,以实现更多的功能。PHP几乎支持现在所有的数据库。 PHP的缺点是没有像JSP和ASP那样对组件的支持,扩展性较差。
JSP(Java Server Pages)是基于Java的技术,用于创建可支持跨平台及跨Web服务器的动态网页。JSP与服务器端的脚本语言Javascript不一样。JSP是在传统的静态页面中加入Java程序片段和JSP标记,构成JSP页面,然后再由服务器编译和执行。 JSP主要的优点如下:
- JSP支持绝大部分平台,包括Linux系统,Apache服务器也提供了对JSP的服务,使得JSP可以跨平台运行。
- JSP支持组件技术,可以使用JavaBeans开发具有针对性的组件,然后添加到JSP中以增加其功能。
- 作为Java开发平台的一部分,JSP具有Java的所有优点,这包括“一次编写,处处运行”。 JSP的主要缺点是编写JSP程序时比较复杂,开发人员往往需要对Java及其相关的技术比较了解。