Web程序设计基础
上QQ阅读APP看书,第一时间看更新

1.14 Web程序设计概述

Web程序设计相对传统的计算机程序设计是一门较为新颖的课程,入门既容易,却又难以把握课程全貌。对于传统计算机程序的初学者而言,相对比较特殊,传统的计算机语言一般可以从Basic开始学习,之后可以选择一门结构化程序设计语言(如C语言等),熟悉后,再逐步了解一些面向对象的语言(如C++语言、Java语言),配合一些软件工程方法论,就可不断提升编写复杂程序和开发的能力。

Web程序设计的入门学习,更加简单而又丰富多彩,Web技术的入门语言是HTML(HyperText Markup Larlguage,超文本标记语言),这种语言几乎没有复杂的语法,初学者只要学会利用简单的英文单词标记,就可以让浏览器解释执行自己对网页的创意和设计。HTML的标记对文字、图片、声音,甚至动画的直接控制,可以快速让初学者上手实践。在编写的同时,还可进一步让拓展初学者使用计算机经验和了解计算机网络的一些概念。Web技术的进阶语言是CSS——一种将网页的显示和内容分开的国际标准技术,它的语言风格更加类似自然语言——英语。Web技术的国际标准高级语言是JavaScript。JavaScript具备传统高级语言的许多特征(语法与C语言几乎类似),也具备面向对象的开发手段,JavaScript与国标的DOM可以直接和前面的HTML和CSS关联,即可结合实际网页编写应用程序。即使初学者没有计算机传统编程的经验,也可以综合以上三大语言,系统地、完整地提高程序编写能力和计算机应用能力。

1.14.1 前端Web网页技术

前端Web开发也称为客户端网页开发,或者静态网页开发。由HTML和CSS编写的网页都是静态页。所谓“静态”,并非是指网页内容都是不动的,静态页内也可以有动画或视频等多媒体元素;这种静态是指,每次打开该网页,该网页内本质的内容程序设置好的,都是固定不变的内容。相对而言,服务器端的网页因为要读取数据库的信息,方可确认网页输出的内容,因此从这个角度看是“动态”的。

当然;静态Web网页既可以用在本地,也可以用在服务器端。在计算机本地磁盘中也可找到很多这样的文件,这些文件都以HTM或HTML作为文件的后缀名,文件内容由页面编辑者将各类信息组合在一起,可以脱离服务器,独立完整地展现在有浏览器的计算机屏幕上。

目前常见Web前端技术标准有以下几种。

1.HTML和XHTML

静态Web网页是通过HTML和CSS语言展现信息内容,HTML的第一个国际标准是在1997年公布的HTML 3.2,1999年W3C再次公布HTML 4.01(也可简称为HTML 4),该版本明确了网页的文档结构和文档表示应该划分为两个方面,并明确了HTML与JavaScript之间的关系。

2000年,W3C联盟再次发布XHTML 1.0标准,引入了先进的XML标记定义方法。为了Internet未来信息的结构化、标准化,XHTML 1.0建议使Web网页创建遵循更加严格的标准。我们今天书写的HTML严格上应该遵守XHTML规则,页面的结构优于页面的表示。

XHTML不建议专业前端Web开发人员使用一些旧的方法,但实际上我们的网络世界还有大量的信息是早期技术,因此至今多数浏览器还是有很强的兼容甚至容错能力,并没有强制网页必须按XHTML标准实现方可显示。而我们在起步学习Web程序的时候,有时候为了书写方便、简单快捷,也可以不按照XHTML的严格标准写代码。但我们应该清楚,这只是为了学习实践的效率。若要真正编写网页作品的时候,应该按照严格标准来实施;否则,会造成你的网站无法做到专业和较大规模。

2.HTML 5

W3C的HTML的最新标准版本是HTML 5,该标准内新增了一些功能和语言属性,增加了对CSS最新版的支持,增加了页面2D、3D的绘图能力,也对互联网音频和视频进行规范,增加了页面本地存储规范、本地SQL数据库和Web应用程序的实现规范。新的标准发布后,业界的浏览器会根据自身实际需要,支持对这个新标准并选择性地部分实现新功能。

3.CSS

CSS(Cascading Style Sheets,层叠样式表单),是一种用来表现HTML或XML等文件外观样式的计算机语言。它是能够真正做到网页表现与内容分离的一种样式设计语言。相对于传统HTML的表现而言,CSS能够对网页中的对象的位置排版进行像素级的精确控制,支持几乎所有的字体、字号样式,拥有对网页对象和模型样式编辑的能力,可以让各个网页共享CSS的强大排版表现能力,并能够进行初步交互设计,是目前基于文本展示最优秀的表现设计语言。CSS能够根据不同使用者的理解能力,简化或者优化写法,针对各类人群,使用其编写的代码有较强的易读性。

作为W3C推荐的国际标准,CSS 1.0发布于1996年12月,1999年1月被重新修订。CSS 2.0发布于1999年1月,它添加了对媒介(打印机和听觉设备)和可下载字体的支持。现在W3C推荐的最新版本为CSS 3.0,这个版本在原有基础上,将网页元素按其功能模块进行了更为详细的整理和细分。对于初学者而言,其实无须过早在意各个版本的区别,仅需要关注CSS的功能以及与Web网页结合即可。

4.JavaScript

JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,作为浏览器的一部分,广泛用于客户端的脚本语言。Java Script最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HT-ML网页增加动态功能,现在JavaScript也可用服务器端程序编写。1997年欧洲标准组织ECMA为了统一标准,推荐标准ECMA Script兼容于JavaScript,1998年获得了ISO的批准。因此可以认为JavaScript是当前最为标准的浏览器脚本语言,适合初学者完成HTML和CSS的学习后,进入Web程序设计的中高级学习阶段。

5.Web网页内的多媒体

为了在HTML页面中实现音频、视频等更为复杂的多媒体应用,各大厂商争相开发自己的产品。早在1996年的Netscape 2.0成功地引入了对QuickTime插件的支持,此后插件这种多媒体嵌入方式在浏览器世界流行。在Windows平台上,IE 3.0正式支持在HTML页面中插入ActiveX控件的功能,这为其他厂商扩展Web客户端的信息展现方式开辟了一条自由之路。1999年,RealPlayer插件先后在Netscape和IE浏览器中取得了成功。与此同时,Microsoft自己的媒体播放插件Media Player也被预装到了各种Windows版本之中。诸多厂商插件中值得一提的是Flash插件的面世。1996年,Macromedia公司收购了一家小公司的二维矢量动画展示工具——FutureWave,并将其改名为大家熟悉的Flash。十多年来,Flash动画成了Web开发者表现自我、展示个性的较好方式之一,这种利用浏览器插件播放视频的方式也让Web的视频标准难以统一,视频在Web内播放还未找到公认的标准解决之道。

6.XML技术

如果说HTML语言给Web世界赋予了无限生机的话,那么,XML语言的出现就可以说是Web的一次新生。HTML语言具有较强的表现力,但也存在结构过于灵活、语法不规范的弱点。当信息都以HTML语言的面貌出现时,Web这个信息空间是杂乱无章、没有秩序的。为了让Web世界里的所有信息都有章可循、有法可依,我们需要一种更为规范、更能够体现信息特点的语言。在这样的背景下,W3C于1996年提出了XML(Extensible Markup Lan-guage)语言草案,并于1998年正式发布了XML 1.0标准。XML语言对信息的格式和表达方法做了最大程度的规范,应用软件可以按照统一的方式处理所有XML信息。HTML语言关心的是信息的表现形式,而XML语言关心的是信息本身的格式和数据内容。XML语言不但可以将客户端的信息展现技术提高到一个新的层次,而且可以显著提高服务器端的信息获取、生成、发布和共享能力。目前,XML已成为Web信息共享和交换的重要标准。

1.14.2 Web服务器端技术

最早的Web服务器简单地响应浏览器发来的HTTP请求,并将存储在服务器上的HT-ML文件返回给浏览器。为了结合数据库,动态生成信息,就需要使用Web服务器端技术。此类技术大部分内容与Web数据库相关,与本书介绍的内容无关,在此,仅让读者对该技术发展概况有简单了解。至今为止,Web服务器端技术主要有CGI、PHP、ASP、ASP.NET、Serv-let和JSP,以及Web数据库等技术。

1.CGI(Common Gateway Interface)技术,即公共网关接口技术

最早的Web服务器简单地响应浏览器发来的HTTP请求,并将存储在服务器上的HT-ML文件返回给浏览器。CGI是一种使服务器能根据运行时的具体情况,动态生成HTML页面的技术。1993年,NCSA(National Center for Supercomputing Applications)提出CGI 1.0的标准草案;之后,分别在1995和1997年,制定了CGI 1.1和CGI 1.2标准。CGI技术允许服务器端的应用程序根据客户端的请求,动态生成HTML页面,这使客户端和服务器端的动态信息交换成为可能。随着CGI技术的普及,聊天室、论坛、电子商务、信息查询、全文检索等各式各样的基于数据库的Web应用蓬勃兴起,人们可以基于Internet享受到信息检索、信息交换、信息处理等更为便捷的信息服务。

2.PHP(Personal Home Page Tools)技术

1994年,Rasmus Lerdorf发明了专用于Web服务器端编程的PHP语言。与以往的CGI程序不同,PHP语言将HTML代码和PHP指令合成为完整的服务器端动态页面,Web应用的开发者可以用一种更加简便、快捷的方式实现动态Web功能。

3.ASP(Active Server Pages)技术,即活动服务器页面技术

1996年,Microsoft借鉴PHP的思想,在其Web服务器IIS 3.0中引入了ASP技术。ASP使用的脚本语言是我们本书介绍的JavaScript。借助Microsoft Visual Studio等开发工具在市场上的成功,ASP迅速成为Windows系统下Web服务器端的主流开发技术。

4.ASP.NET技术

ASP. NET是本书要向读者介绍的全新Web应用开发技术。ASP.NET是面向下一代企业级网络计算的Web平台,是对传统ASP技术的重大升级和更新。ASP.NET是建立.NET Framework的公共语言运行库上的编程框架,可用于在服务器上生成功能强大的Web应用程序。

5.Servlet和JSP技术

以Sun公司为首的Java阵营于1997和1998年分别推出了Servlet和JSP技术。Servlet和JSP的组合让Java开发者同时拥有了类似CGI程序的集中处理功能和类似PHP的HTML嵌入功能。此外,Java的运行时编译技术也大大提高了Servlet和JSP的执行效率。Servlet和JSP被后来的J2EE平台吸纳为核心技术。

6.Web数据库

数据库是为实现在计算机内部信息结构化运用最成功和广泛的软件,其应用的历史比互联网的年龄长多了。目前,这类数据库很多,现在最为广泛应用的类型是关系型数据库系统(Relational Database Management System, RDBMS)。Web服务器端开发都需要使用Web数据库才能具备强大的动态数据能力,Web数据库就是为了服务器端的Web网页能访问数据库而设计的。常见的Web数据库软件包括:MySQL, SQL Server, Access, Oracle, Sybase, DB2等。实际上,在Web服务器端开发中为了简化这么多类型数据库的操作,我们把所有的数据操作抽象出来,形成了SQL语言。可以说SQL语言现在成为国际标准的Web数据库存取语言。

结构化查询语言(Structured Query Language, SQL)不仅让我们能够简单方便地存取各种类型数据库信息系统,而且也能管理数据库,SQL也是美国标准(American National Standards Institute, ANSI)。在关系型数据库中,数据都是用数据表表示的,数据表可以看作一个相关数据的集合,表的每行就是一条数据记录,每行数据由多个列组成,每列都是属性一样的数据。总之,SQL能够针对一个数据库执行以下操作:查询信息、检索信息、插入标准的数据记录、修改数据记录、删除数据记录、建立新的数据库、在数据库中建立数据表、为复杂数据库操作建立程序过程等。