1. 常用的4种动态网页技术
1.1. CGI
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值调用的,如:
<form action= "xxx.cgi " method=post>
在表单提交时,就会执行xxx.cgi程序。
二、 cgi程序执行完毕后通常会返回一新网页,但是有时候我们并不期望这么做,我们希望cgi只执行交给它的任务,并且保持调用它的原网页不变。CGI的输出 形式是固定的,通常有三类,以不同的输出头标记:Content-type,Location, 和Status. 其中的Status有就可以实现我们要的效果:只执行规定的程序,其他不做任何变化。一个简单的Bourne Shell版的cgi程序如下:
#!/bin/sh
do_something
echo "Status: 204 No Response"
echo
exit 0
三、有时候我们需要当javascript在满足一定条件时自动调用CGI程序,而不需要网页上的鼠标点击按钮,下面的程序就可以实现自动提交表单,从而触发CGI程序:
<script language=javascript>
document.form1.submit();
</script>
)
1.2. PHP
PHP(Personal Home Pages)是一种服务器端的嵌入HTML的脚本语言,可以运行于多种平台。它借鉴C语言、Java语言和Perl语言的语法,同时具有自己独特的语法。
由于PHP采用Open Source方式,它的源代码公开,使得它可以不断有新东西加入,形成庞大的函数库,以实现更多的功能。PHP几乎支持现在所有的数据库。
PHP的缺点是没有像JSP和ASP那样对组件的支持,扩展性较差。
1.3. JSP
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及其相关的技术比较了解。
1.4. ASP
ASP(Active Server Pages)是微软公司提供的开发动态网页的技术,具有开发简单、功能强大等优点,ASP使生成Web动态内容及构造功能强大的Web应用程序的工作变得 十分简单。例如,要收集表单中的数据时,只需要将一些简单的指令嵌入到HTML文件中,就可以从表单中收集数据并进行分析处理。对于ASP,还可以便捷地使用ActiveX组件来执行复杂的任务,比如连接数据库以检索和存储信息。
对于有经验的程序开发人员,如果已经掌握了一门脚本语言,如VBScript、JavaScript或Perl,而且已经了解使用ASP的方法。只要安 装了符合ActiveX脚本标准的相应引擎,就可以在ASP页中使用任何一种脚本语言。ASP自身带有VBScript和JavaScript两种脚本引 擎。从软件的技术层面看,ASP有如下的特点:
“ 无需编译 ASP脚本嵌入到HTML当中,无需编译或链接即可直接解释执行。
“ 易于生成 使用常规文本编辑器(如Windows下的记事本)即可进行ASP页面的设计。
“ 独立于浏览器 用户端只要使用可解释常规HTML代码的浏览器,即可浏览ASP所设计的主页。ASP脚本是在站点服务器端执行的,用户端的浏览器不需要支持它。因此,不需要通过从服务器下载ASP页面。
“ 面向对象 在ASP脚本中可以方便地引用系统组件和ASP的内置组件,还能通过定制 ActiveX服务器组件来扩充功能。
“ 与任何ActiveX脚本语言兼容 除了可使用VBScript和JavaScript进行设计外,还可通过Plug-in的方式,使用由第三方所提供的其他脚本语言。
“ 源程序码不会外漏 ASP脚本在服务器上执行,传到用户浏览器的只是ASP执行结果所生成的常规HTML码,这样可保证编写出来的程序代码不会外漏。