1.2 相关知识
1.2.1 认识Web应用程序
在Web 2.0时代,网站往往被技术人员称为Web应用程序。随着网络技术的不断完善和发展,网站的设计开发和桌面应用程序的开发越来越接近。传统桌面应用程序完成的业务也越来越多地迁移至网络环境,通过Web应用程序来完成,如OA(办公自动化系统)、在线学习系统、教务管理系统等。
1. Web应用程序的工作原理
Web应用程序是一种典型的B/S(Brower/Server,浏览器/服务器)结构,如图1.2所示。
图1.2 Web应用程序结构
客户访问网站使用的浏览器称为客户端。Web应用程序包含的所有网页以及相关资源保存于Web服务器,Web应用程序的数据也可使用专门的数据库服务器进行存放和管理。
当用户在浏览器中输入一个网址(URL)(如http://localhost/test.php),请求访问时,该请求被封装为一个HTTP请求,通过网络传递给Web服务器。Web服务器处理接收到的HTTP请求,将处理结果以HTML格式返回给客户端浏览器。如果在处理HTTP请求时需要访问数据库,Web服务器会将相关数据请求提交给数据库服务器,由数据库服务器处理数据访问请求,并将处理结果返回Web服务器。Web服务器将相应的数据处理结果返回客户端。
提示:
在浏览器中选择“查看/源文件”命令所看到的代码,便是Web服务器返回浏览器的一个HTTP请求HTML格式的响应结果。
2. Web应用程序客户端技术
Web应用程序客户端技术主要涉及浏览器、HTML/XHTML、XML、CSS、脚本语言等。
(1)浏览器
浏览器作为网页在客户端的访问工具,负责解析网页中的HTML/XHTML、CSS和脚本语言等内容,并将最终结果显示在浏览器中呈现给用户。国内常见的浏览器有:IE(Internet Explorer)、Firefox、Safari、Opera、Google Chrome、QQ浏览器、百度浏览器、搜狗浏览器、猎豹浏览器、360浏览器、UC浏览器、傲游浏览器和世界之窗浏览器等。不同浏览器对HTML的支持略有不同,编写HTML文档时应注意不同浏览器之间的兼容问题。
(2)HTML
HTML(HyperText Markup Language)即超文本标记语言。早期的网页就是一个个HTML文件,HTML文件扩展名为.htm或.html,该文件为一个纯文本文件,它使用各种预定义的标记(tag)来标识文档的结构、文字、段落、表格、图片和超级链接等信息,浏览器负责解释各种标记以何种方式展示给用户。
例1.1 一个简单的HTML文件如下。(源代码:\chapter1\t1\test1.html)
<html> <head> <title> 这是标题</title> </head> <body> 这是一个简单的HTML文档。<br> 单击下面的图片链接,访问在线Web 技术免费教学网站w3school。<br> <a href="http://www.w3school.com.cn"> <img src="w3.jpg" width="139" height="22" alt="w3school"> </a> </body> </html>
HTML文件可以使用浏览器直接打开以查看显示结果。上面的HTML文件在IE浏览器中的显示结果如图1.3所示。
图1.3 一个简单的HTML文件
提示:
推荐一个免费的Web技术学习网站:http://www.w3school.com.cn,该网站包括大部分Web开发技术,如HTML/HTML5、CSS/CSS3、XML、TCP/IP、JavaScript、VBScript、JQuery、JSon、SQL、PHP、ASP和ASP.NET等。
(3)XHTML
XHTML(Extensible HyperText Markup Language)即可扩展超文本标记语言,以HTML为基础,与HTML相似,但语法更加严谨。比如,前面的例子使用了<br>标记在页面中实现换行。XHTML要求所有标记有结束标记,如<a>的结束标记为</a>。XHTML中的换行标记应该加上标记结束符号,为<br/>。
HTML语法要求比较松散,网页开发人员使用起来比较灵活。但对机器而言,语法松散意味着处理难度增大。对于资源有限的设备(如手机),处理难度会更大。因此产生了由DTD定义规则,语法要求更加严格的XHTML。大部分常见的浏览器都可以正确地解析XHTML,几乎所有的网页浏览器在正确解析HTML的同时,可兼容XHTML。
(4)XML
XML是Extensible Markup Language的缩写,表示为可扩展标记语言,是一种用于标记电子文档,使其数据具有结构化的标记语言。XML与HTML可以算得上是一对孪生兄弟,它们都由SGML(Standard Generalized Markup Language,标准通用标记语言)发展而来。
HTML使用预定义的标记来告诉浏览器如何显示标记的内容。而XML的目的在于组织数据,使文档中的数据组织更加规范,便于在不同应用程序、不同平台之间交换数据。
XML使用文档作为定义的标记来组织数据,如何解释标记由用户决定。XML文件是一个纯文本文件,便于网络传输。越来越多的应用程序使用XML文件来保存数据,如Java、微软的.NET平台、各种Web服务器(IIS、Apache、Tomcat等)和各种数据库服务器(MySQL、SQL Server、Oracle等),均使用XML来保存相应的配置信息。
例1.2 一个IIS Web网站配置文件web.config如下。(源代码:\chapter1\t3\web.config)
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <defaultDocument> <files> <add value="index.php" /> </files> </defaultDocument> </system.webServer> </configuration>
上述代码中,文件开头的<?xml>标记表示这是一个XML文件,其version属性说明了XML版本号。这是一个IIS Web网站的配置文件,它为网站指定了默认文档为index.php。可以使用浏览器直接打开XML文件,查看其中的数据组织结构,如图1.4所示。
图1.4 在浏览器中查看XML文件
(5)CSS
CSS(Cascading Style Sheets)即层叠样式表,也称级联样式表。在HTML中,各种预定义的标记只能简单组织页面结构和内容,CSS则进一步通过样式来决定浏览器如何精确控制HTML标记的显示,如字体、颜色、背景和其他效果。
目前,大多数主流浏览器均支持CSS,其最新版本为CSS 3。
例1.3 为例1.1中的HTML添加样式。(源代码:\chapter1\t3\test3.html)
<html> <head> <title> 这是标题</title> <style type="text/css"> body {font-family: 隶书;} </style> </head> <body> 这是一个简单的HTML文档。<br> 单击下面的图片链接,访问在线Web 技术免费教学网站w3school。<br> <a href="http://www.w3school.com.cn" style="border-style:solid;border-width:5px;"> <img src="w3.jpg" width="139" height="22" alt="w3school"> </a> </body> </html>
上面的HTML文件中,使用<style>标记定义了一个内部样式表,该样式表body标记内容的字体定义为“隶书”,即使用隶书字体显示body内容的文本。在<a>标记中,用style属性为超链接定义了一个内联样式,并为超链接添加一个边框。上面的HTML文件在IE中显示结果如图1.5所示。
图1.5 添加了CSS样式的HTML文件
(6)客户端脚本语言
客户端脚本语言通过编程为HTML页面添加动态内容,与用户完成交互。HTML页面中包含的脚本语言代码称为脚本。脚本可以嵌入HTML文档中,也可存储在独立的计算机文件中,使用时包含到HTML文档中即可。包含了脚本的HTML通常称为动态网页,即DHTML(Dynamic HTML,动态HTML)。
常见的客户端脚本语言包括JavaScript、VBScript、Jscript和Applet等,其中JavaScript和VBScript使用最为广泛。
JavaScript和Java没有直接关系,它由Netscape公司开发,并在Netscape Navigator(网景浏览器)中实现。目前,网景浏览器因为技术竞争的原因已经退出了市场,但JavaScript却以顽强的生命力生存下来,并成为最受Web开发人员欢迎的客户端脚本语言。
因为技术原因,微软推出了JScript,CEnvi推出了ScriptEase,它们与JavaScript一样,可在浏览器上运行。为了统一规格,且JavaScript兼容于ECMA标准,因此,JavaScript也称为ECMAScript。
VBScript是Visual Basic Script的简称,即Visual Basic脚本语言,有时也缩写为VBS,它是微软的Visual Basic语言的子集。使用VBScript,可通过Windows脚本宿主调用COM,所以可以使用部分Windows操作系统的程序库。VBScript是IIS的默认源程序语言。
例1.4 在HTML中使用JavaScript脚本显示对话框,代码如下。(源代码:\chapter1\t4\test4.html)
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript"> function showdialog(){ var ok=confirm("请单击一个按钮!"); if (ok==true){ alert("你单击了“确定”按钮!"); }else{ alert("你单击了“取消”按钮!"); } } </script> </head> <body> <input type="button" onclick="showdialog()">单击按钮测试JavaScript 脚本</input> </body> </html>
上面的HTML文件在IE中显示的结果如图1.6所示。打开HTML文件后,在页面中单击按钮,会打开图1.7所示的对话框,提示“请单击一个按钮”,此时可单击对话框中的或按钮。
图1.6 在HTML中使用JavaScript脚本显示对话框
图1.7 JavaScript对话框
3. Web服务器
Web服务器即WWW(World Wide Web,万维网)服务器,是网络服务器计算机中的一种应用程序,用于提供WWW服务。WWW服务即通过互联网为用户提供各种网页。网页是网站的基本信息单位,它通常由文字、图片、动画和声音等多种媒体信息以及链接组成,用HTML编写,通过链接实现与其他网页或网站的关联和跳转。一个网站的所有网页和相关资源都需要上传到Web服务器所在的网络服务器计算机中,保存在Web服务器管理的目录。Web服务器中的每个网页都有一个URL(Uniform Resource Locator,统一资源定位符),用户在客户端的浏览器地址栏中输入URL或其他页面的URL超级链接可以访问网页。
万维网由Web客户端浏览器、Web服务器和网页资源组成。用户访问网络时,客户端浏览器和Web服务器之间通过HTTP(HyperText Transfer Protocol,超文本传输协议)完成信息的交换。当用户在浏览器中访问网页时,首先由浏览器向Web服务器发出请求,建立与服务器的连接。然后用户请求被封装在一个HTTP包中传递给Web服务器,Web服务器解析收到的HTTP请求数据包,给客户端返回一个HTTP响应。
如果用户请求访问的是一个HTML文件,这个HTML文件会直接作为HTTP响应返回;如果用户请求访问的是一个服务器端脚本文件,如PHP、JSP或ASP .NET文件,该脚本会被传递给响应的处理程序进行处理,处理的结果最后会产生一个HTML文件返回客户端。常用的Web服务器有IIS、Apache、Nginx、Tomcat及Weblogic等。
4. 数据库服务器、数据库管理系统
目前各种网站都会使用到数据库,而各种业务逻辑的本质几乎都涉及数据处理。为了高效并安全地处理大量数据,必须使用数据库管理系统。SQLite和Access等轻量级数据库可以直接访问,而Oracle、MS SQL Server和MySQL等大中型数据库则需要配置数据库服务器,由服务器内置的管理系统负责数据的建立、更新和维护。
如果网页中包含了数据请求,数据请求由Web服务器提交给数据库服务器,数据库负责完成数据请求的处理,将处理结果返回给Web服务器,Web服务器将最终处理结果封装在HTML文件中返回给用户。
5. Web服务器端编程技术
Web服务器端编程技术种类很多,常用的有Microsoft的ASP/ASP.NET、Sun的JSP(Sun公司于2010年被Oracle收购,但不少技术人员仍习惯认为Java习惯技术属于Sun)和Zend的PHP。
(1)ASP/ASP.NET
ASP/ASP.NET是由Microsoft推出的Web服务器端编程技术,通常采用Windows服务器+IIS+SQL Server+ASP/ASP.NET组合进行Web应用程序开发,所有技术均是Microsoft产品,因此兼容性较好、安装使用方便,配置要求低。同时,Microsoft提供了大量的文档和强大的开发工具。基于Microsoft技术的庞大用户群,ASP/ASP.NET受到大量Web开发人员的支持。Microsoft相关技术都是商业软件,这也导致了网站建设客观成本比较高。Microsoft相关技术的跨平台局限性也导致了ASP/ASP.NET只能用于Windows环境。
(2)JSP
JSP(Java Server Pages)是Java在Web应用程序开发中的应用,与ASP类似,JSP通过在HTML文件中插入Java代码来实现业务逻辑。其中HTML文件称为JSP文件,扩展名为.jsp。JSP文件在服务器端被处理,转换为HTML文件返回客户端。
借助于Java的跨平台特性,JSP开发的Web应用程序同样具有跨平台特点,既可在UNIX、Linux系统中部署,也可在Windows系统中部署。
(3)PHP
PHP是一种免费、开源的Web开发技术,它通常与Linux、Apache和MySQL等开源软件自由组合,形成了一个简单、安全、低成本、开发速度快和部署灵活的开发平台。PHP是本书的学习内容,在后面的章节中将详细介绍。