1.1 动态Web概述
1.1.1 静态Web与动态Web
被誉为“互联网之父”的英国计算机科学家蒂姆·伯纳斯·李(Tim Berners-Lee)在20世纪90年代初发明了万维网(World Wide Web,WWW),并成功开发出世界上第一个网页浏览器和第一个网页服务器,宣告了网站的诞生。随即,互联网迅速向大众普及。目前,全球互联网网站数量已达数十亿个。
一个网站由多个网页构成。这些网页可以各自呈现其独立的信息,具有特定的功能,同时也可以相互关联形成一个整体。从网页的内容是否可以通过动态交互生成和变化的角度来看,网页可以分为静态网页(静态Web)和动态网页(动态Web)两大类,它们各有特点。
静态Web制作完成后,页面上显示的内容和格式是固定不变的,如果需要改变,就必须去修改页面代码。静态Web主要由超文本标记语言(Hyper Text Mark-up Language,HTML)制作而成,网页的文件名以.htm、.html、.shtml等为扩展名。静态Web是网站建设的基础。需要注意的是,静态Web上可以出现各种动态的效果,如动画、滚动文字等,但这些只是页面内容在视觉上的“动态效果”,与后面介绍的动态Web是不同的概念。早期的网站包含的网页基本上都是静态Web。静态Web的运行速度快,内容相对稳定,易被搜索引擎检索,但在功能方面有较大的局限性,页面内容更新起来比较麻烦,所以一般对于功能简单、内容更新少的网页,我们采用静态Web的方式制作。
动态Web是相对于静态Web而言的,指其网页内容可以根据不同的情况而动态变更。动态Web的网页文件在基本HTML的基础上,加入了由Java、C#、PHP等程序语言编写的代码,用于实现网站所需的特定功能。这些程序代码可以使用户和网页之间进行交互,网页输出将根据客户浏览器的不同请求而动态产生不同的结果。动态网站通常基于数据库技术构建,融合了程序设计语言、数据库编程技术等,可以实现强大的网站功能,同时大大降低了网站维护的工作量。常见的购物车、论坛、电子图书馆、网上投票等都是由动态Web实现的。动态Web的扩展名通常有.php、.jsp、.aspx、.asp、.perl、.cgi等,这与网页所采用的开发技术有关,采用不同技术制作的动态Web,其扩展名也有所不同。
网站是采用动态Web还是静态Web主要取决于网站的功能需求和网站内容的多少,如果网站功能比较简单,内容更新量不是很大,采用纯静态Web的方式会更简单,反之则要采用动态Web技术来实现。纯粹由静态Web构成的网站称为静态网站,包含动态Web的网站称为动态网站。动态网站也可以采用静动结合的原则,在适合采用动态Web的地方用动态Web,如果有必要使用静态Web,则可以考虑用静态Web的方法来实现。在同一个网站上,动态Web内容和静态Web内容同时存在也是很常见的事情。
1.1.2 动态Web访问流程
动态Web不能直接由浏览器解释输出,必须经过服务器的处理,然后传送给浏览器,其访问流程如图1-1所示。
图1-1 动态Web访问流程
首先,用户在浏览器地址栏中输入要访问的网页地址,浏览器即向网址对应的Web服务器发出页面请求。然后,Web服务器接收到该请求后,根据文件名查找相应的网页文件,调用专门的处理程序对代码进行解析,如果网页文件中还有需要操作数据库的代码,则访问数据库服务器并返回交互数据。最后,Web服务器将动态Web解释为一个静态页面发送给浏览器,以呈现给用户。
1.1.3 常见的动态Web开发技术
早期的动态Web开发主要采用公用网关接口(Common Gateway Interface,CGI)技术,可以使用不同的编程语言,如Visual Basic、Delphi或C/C++等。虽然CGI技术已经成熟且功能强大,但由于其编程困难、效率低下、修改复杂,已经被新技术所取代。目前最常见的动态Web开发技术有PHP、JSP和ASP.NET这3种。
1.PHP
PHP(Hypertext Preprocessor,超文本预处理器)是一种通用开源脚本语言,主要适用于Web开发领域。PHP于1995年由拉斯姆斯·勒多夫(Rasmus Lerdorf)创建,最初是为了维护个人网页而制作的一个简单的用Perl语言编写的程序,后来又用C语言重新编写。PHP的语法借鉴了C、Java、Perl等语言,它将程序嵌入HTML文档中去执行,执行效率高。PHP也可以在编译优化后运行,使代码运行得更快。
PHP跨平台性强,可以运行在UNIX、Linux、Windows、Mac OS、Android等平台,同时具有免费和代码开源的特点,非常适合开发中小型的Web应用。使用PHP开发的速度比较快,而且由于所有的软件都是免费的,可以减少成本投入。关于PHP的详细内容将在下一节重点讲述。
2.JSP
JSP(Java Server Pages,Java服务器页面)是由Sun Microsystems公司于1999年6月推出的动态Web开发技术,是在传统的HTML网页文件中插入Java程序段(Scriptlet)和JSP标记(Tag)形成的JSP文件。JSP基于Java Servlet和整个Java体系,实现了HTML语法中的Java扩展。
JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序开发变得迅速和容易。JSP具备了Java技术的简单易用、完全面向对象且安全可靠的特点。用JSP技术开发的Web应用是跨平台的,具有平台无关性,既能在Linux中运行,也能在其他操作系统中运行。
3.ASP.NET
ASP.NET是微软公司于2002年推出的新一代综合性平台架构——Mricrosoft.NET框架的一部分。它是一个统一的Web开发模型,提供了多种服务,使开发人员可以用尽可能少的代码来构建功能强大的Web应用。ASP.NET可以建立包括从小型的个人网站到大型的企业级Web应用等各种类型的项目,具有高效、强大、安全可靠的特点。开发人员可以选用Visual Basic、C#、JScript.NET和J#等多种程序语言来编写应用。
用ASP.NET开发的Web应用只能运行于Windows的Web服务器IIS(Internet Information Server,互联网信息服务)之上,具有平台的局限性。