第三节 Web开发技术
Web是建立在互联网基础上的应用技术。Web主要由Web服务器、Web浏览器,以及一系列的协议和约定组成,它使用超文本和多媒体技术,以便人们在网上漫游,进行信息浏览和信息发布。它可以提供收发电子邮件、阅读电子新闻、下载免费软件、网络查询、聊天和网上购物等功能。
一、Web应用系统结构
B/S结构(Browser/Server,浏览器/服务器模式)是典型的Web应用系统结构。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。
B/S结构采用的是浏览器请求,服务器响应的工作模式,如图2.8所示。
图2.8 Web系统B/S结构
在B/S系统结构中,包括客户端和服务器端。用户可以通过浏览器访问互联网上由Web服务器产生的文本、数据、图片、动画、视频点播和声音等信息。而每一个Web应用服务器又可以通过各种方式与数据库服务器连接,大量的数据实际存放在数据库服务器中。
B/S系统的工作流程如下。
(1)客户端发送请求:用户在客户端提交表单操作,向服务器发送请求,等待服务器响应。
(2)服务器端处理请求:服务器端接收并处理请求,如涉及数据库,则需要访问数据库,然后才能对请求进行数据处理,并产生响应。
(3)服务器端发送响应:服务器端把用户请求的数据(网页文件、图片、声音等)返回给浏览器。
(4)浏览器解释执行HTML文件,将页面呈现给用户。
二、客户端技术
信息在客户端浏览器显示的样式,客户端对页面的控制、与服务器端的通信等均由客户端技术实现。常用的客户端技术有超文本标记语言(HTML)、脚本语言(Java Script)、可扩展标记语言(XML)、级联样式表(CSS)和文件对象模型(DOM)等。这些技术各有优势,也各有适用的领域,这里只简要介绍前三种客户端技术。
1.超文本标记语言
超文本标记语言(Hyper Text Markup Language,HTML)是构建Web页面的主要工具,是用来表示网上信息的符号标记语言,是对标准通用语言(SGML)的一个简化实现。
超文本标记语言文档的制作不是很复杂,但功能强大,它支持不同数据格式的文件嵌入,这也是万维网盛行的原因之一。它具备简易性、可扩展性和通用性等特点。
网页设计软件实现了超文本标记语言文档编写的“所见即所得”,使用起来十分方便。目前,常用的网页设计软件主要有Dreamweaver等。
Dreamweaver是美国Macro Media公司开发的集网页制作和网站管理于一身的“所见即所得”网页编辑器,它是针对专业网页设计师开发的视觉化网页开发工具。利用它可以轻而易举地制作出跨越平台和跨浏览器的充满动感的网页。Dreamweaver还集成了程序开发语言,完全支持ASP、PHP、JSP这几种语言的编辑。
2.脚本语言
通过超文本标记语言可以实现文字、表格、声音、图像和动画等多媒体信息的显示。然而采用这种技术存在一定的缺陷,那就是它只能提供静态的信息资源,缺少动态的客户端与服务器端的交互。
脚本语言(Java Script)的出现,使信息和用户之间不再仅是显示和浏览的关系,还实现了实时的、动态的、可交互式的表达方式。脚本语言是一种新的描述语言,它可以被嵌入超文本标记语言的文件之中。脚本语言可以回应使用者的需求,当使用者输入一项信息时,它不用经过传给服务器端处理再传回来的过程,直接可以被客户端的应用程序处理。
3.可扩展标记语言
可扩展标记语言(Extensible Markup Language,XML)是专为Web应用而设计的,它是标准通用标记语言(Standard Generalized Markup Language,SGML)的一个优化子集,是由万维网联盟(W3C)于1998年2月发布的一种标准。它以一种开放的自我描述方式定义了数据结构,在描述数据内容的同时能突出对结构的描述,从而体现数据之间的关系。可扩展标记语言所组织的数据对于应用程序和用户都是友好的、可操作的。
可扩展标记语言的精髓是允许文档的编写者制定基于信息描述、体现数据之间逻辑关系的自定义标记,确保文档具有较强的易读性、清晰的语义和易检索性。因此,一个完全意义上的可扩展标记语言文档不仅要求有标准的格式,而且需要自行定义一些标签。它必须遵守文档类型定义(DTD)中已声明的种种规定。
文档类型定义(Document Type Definition)是作为可扩展标记语言标准的一部分发布的。目前大多数面向可扩展标记语言的应用,都支持可扩展标记语言和文档类型定义。当前大多数与可扩展标记语言模式相关的算法研究都是基于可扩展标记语言和文档类型定义展开的。
三、服务器端技术
随着电子商务的发展,静态网页越来越不能满足客户的需求,动态网页技术应运而生,逐渐成了电子商务系统中Web服务端的基本实现方式。
1.公共网关接口
公共网关接口(Common Gateway Interface,CGI)是运行在网络服务器上的可执行程序,它的作用是接收从客户端传过来的请求信息,然后运行服务器端的应用程序或数据库,最后再把结果转换为HTML代码并传送到客户端。
公共网关接口可以用许多编程语言来设计,如C/C++、Java、Delphi、Visual Basic和Perl等,但必须遵守一定的规则。公共网关接口由于设计复杂、移植性差、功能有限等原因,现在已经较少使用。图2.9所示为公共网关接口运行示意图。
图2.9 公共网关接口运行示意图
2.ASP
ASP(Active Server Pages,动态服务器页面)也是在服务器端执行的程序。ASP由微软公司推出,实际上是一种在服务器端开发脚本语言的环境。利用ASP可以开发动态、交互、高性能的Web服务器端应用程序。因为脚本是在服务器端运行的,所以Web服务器完成所有处理后,将标准的HTML页面送往浏览器。ASP只能在可以支持它的服务器上运行,用户不可能看到原始脚本程序的代码,只能看到最终产生的HTML内容。图2.10所示为Web程序语言运行示意图。
图2.10 Web程序语言运行示意图
3.JSP
JSP(Java Server Pages,Java服务器页面)是由Sun Microsystems公司倡导,许多公司参与并一起建立的一种动态网页技术标准。JSP技术有点类似于ASP技术,它是在传统的网页超文本标记语言文档中插入Java程序段和JSP标记,从而形成JSP文件。用JSP技术开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。自JSP技术推出后,众多大公司都支持采用JSP技术的服务器,如IBM、Oracle和Bea公司等,所以JSP迅速成为商业应用的服务器端语言。
4.PHP
超文本预处理语言(Hypertext Preprocessor,PHP)是一种超文本标记语言内嵌式的语言,是在服务器端执行的、嵌入超文本标记语言文档的脚本语言。PHP语言的风格类似于C语言。PHP语言具有非常强大的功能,所有的公共网关接口的功能它都能实现,而且支持几乎所有流行的数据库及操作系统。
四、数据库管理技术
数据库是存储在计算机中的有组织、可共享的数据集合。数据库管理系统是为管理数据库而设计的电脑软件系统,一般具有存储、截取、安全保障、备份等基础功能。
早期比较流行的数据库模型有三种,分别为层次式数据库、网络式数据库和关系型数据库。而在当今的互联网中,最常用的数据库模型主要是关系型数据库和非关系型数据库。
关系型数据库模型是把复杂的数据结构归结为简单的二元关系(即二维表格形式)。主流的关系型数据库管理系统有Oracle、My SQL、SQL Server、Access数据库等。
非关系型数据库也被称为No SQL数据库,No SQL的本意是“Not Only SQL”,指的是非关系型数据库,而不是“No SQL”的意思,因此,No SQL的产生并不是要彻底地否定非关系型数据库,而是对传统关系型数据库的一个有效补充。No SQL数据库在特定场景下可以发挥出难以想象的高效率和高性能。常用的非关系型数据库管理系统有Memcaced、Redis、Mongb和Cassandra等。