动态网页与静态网页
在Internet风行的早期,网页只是静态的图文组合,使用者可以在网页上阅读资讯,但无法做进一步的查询、发表意见或进行电子商务、线上交谈、问卷调查、预约订票、访客留言板、讨论群组、电子贺卡、E-mail自动回覆、资料库管理等活动,而这显然不能满足人们愈来愈趋多元化的需求。
为此,开始有不少公司提出动态网页的解决方案,「动态网页」指的是用户端(client)和服务器端(server)可以互动,也就是服务器端可以即时处理用户端的要求,然后将结果回应给用户端。动态网页可以藉由下列两种方式来完成:
1、用户端Script
严格来说,诸如HTML、XML、VRML或CSS所撰写的网页都是属于静态网页,无法满足所有人的需求,比方说,有人会希望网页能够显示即时更新的资料(例如股票行情),而有人会希望当使用者点取网页的某个元件时,元件的外观会随之改变,凡此种种都须透过程式才办得到,而且为了不影响传输速率,程式还得愈小愈好。此类需求可以透过用户端Script来完成,Script是一段散布在HTML原始码内的小程式,由浏览器负责执行。 Netscape公司开发的JavaScript和Microsoft公司开发的VBScript均可以用来撰写用户端Script,其中尤以JavaScript为主流,因为市场上两大商用浏览器NetscapeCommunicator和Internet Explorer均支援JavaScript,而VBScript则只有Internet Explorer才支援。
2、服务器端Script
虽然Client Script已经可以完成许多工作,但有些工作还是得在服务器端执行Script才可以完成,例如资料库的存取与搜寻。目前常见的服务器端Script有传统的CGI程式、及近来流行ASP、JSP、PHP等技术:
Common Gateway Interface与Perl
CGI是"Common Gateway Interface"的简写,中文翻译为「共同闸道介面」,这是在服务器程式之间传送讯息的标准介面,而CGI程式则是符合CGI标准介面的Script 。 CGI是众多后端程式语言中历史最为悠久,执行速度较慢,编写也颇为不方便。
虽然CGI可由任何语言来设计,但是最常见的选择还是Perl。 Perl是Practical Extraction and Report Language的简称。 1987年,Larry Wall先生融合AWK、Sed、C、shell等语言的特色,创造了Perl。最初Larry Wall在进行一项WAN的设定工作,他想要产生一份报告结果,但AWK做不到,不满于AWK sed shell功能的不足,Larry Wall发明了Perl,并且开放出来给大家使用。
Perl最初仅着眼于文件( text )的处理,但因为实在太好用了,许多人要求Larry Wall先生加这个加那个,经过不断的改良精进,发展至今,Perl变成一个跨平台、十项全能、应用层面无所不包的重要语言,说它是一种通用目的高阶程式语言,一点儿也不为过。不过Perl写CGI虽然「好像」与平台无关,不过处理一个请求,还是要启动一个Perl的直译器( interpreter ),花费的处理时间与系统资源极为可观。所以才会有ASP、JSP、PHP的盛行。
ASP、JSP、PHP
ASP是"Active Server Pages"的简写,中文翻译为「动态服务器网页」,ASP可使用Jscript、VBScript及PerlScript的语法,加上内建的五大物件来进行服务器端的程式处理,目前推出了三个主要的版本,它采用直译的方式执行。ASP.net则是较迟推出,可使用VB.net、C#.net及J#.NET的语法。它们都是Microsoft推出的产品,因此必须在微软视窗作业系统加上Internet Information Services(IIS)的直译器才能运行,ASP.net则还要加上.net Framework这个编译器方可运行。 ASP虽然语法比较简单,但运作速度稍慢而且微软视窗及IIS一直是漏洞比较多的产品,IIS更有三个著名的漏洞──Unicode、ISAPI及MDAC/RDS。因此,后端程式采用ASP/ASP.net有一定的危险性。
JSP是采用编译的,效能比ASP好而且有跨平台的优点,但因为JSP采用Java的语法,较为艰难,进入门槛较高,因此使用者比较少。
PHP3是采用直译的,而PHP4则是使用编译的。虽说PHP也有不少的漏洞,但他更新时间频密,通常一个漏洞刚被发现,官方便已有更新的修正程式。
PHP最大的优势是较简单易学,同时PHP也能够提供专业程式设计师各种进阶的功能。尤其是它能够支援大范围的资料库,例如Oracle (OCI7 and OCI8)、IBM DB2、MySQL、Sybase、Unix dbm、Informix、ODBC、Direct MS-SQL、Adabas D …等。此外,PHP也能够支援大多数的WEB服务器,及用在所有的主流操作系统上,包括Linux、Microsoft Windows、Mac OS X、RISC OS、Unix Like (包括HP-UX、Solaris和OpenBSD)等。
因为PHP有以上这些优点,所以本份SOP有关动态网页的制作,决定采用PHP。在附录会为各位介绍PHP基本语法。第五章实用范例亦将利用PHP相关软体来帮助我们建置网站。