1.2 Web的工作原理
Web是一种典型的基于浏览器/服务器(Browser/Server,简称B/S)的体系结构。典型的B/S结构将计算机应用分成三个层次,即客户端浏览器层、Web服务器层和数据库服务器层。B/S结构有许多优点,它简化了客户端的维护,所有的应用逻辑都是在Web服务器上配置的。B/S结构突破了传统客户机/服务器(Client/Server,简称C/S)结构中局域网对计算机应用的限制,用户可以在任何地方登录Web服务器,按照用户角色执行自己的业务流程。Web通过HTTP协议实现客户端浏览器和Web服务器的信息交换,其基本工作原理如图1-1所示。
图1-1 Web的基本工作原理
Web浏览器是一种Web客户端程序,用户要浏览Web页面,必须在本地计算机上安装浏览器软件。通过在浏览器地址栏中输入URL资源地址,将Web服务器中特定的网页文件下载到客户端计算机中,并在浏览器中打开。因此,从本质讲,浏览器是一种特定格式的文档阅读器,它能根据网页内容,对网页中的各种标记进行解释显示;同时,浏览器也是一种程序解释机,如果网页中包含客户端脚本程序,那么浏览器将执行这些客户端脚本代码,从而增强网页的交互性和动态效果。
在Web系统中,Web服务器有两个层面的含义:一是指安装了Web服务程序的计算机;二是指Web服务器程序,可以管理各种Web文件,并为提出HTTP(HyperText Transfer Protocol)请求的浏览器提供HTTP响应。要使一台计算机成为一台Web服务器,需要配置服务器操作系统,如UNIX、Windows Server 2003、Linux等网络操作系统,并且还要安装专门的信息服务器程序,如Windows所提供的Internet信息服务器IIS(Internet Information Server)。大多数情况下,Web服务器和浏览器处于不同的机器,但它们也可以并存在同一台机器上。
Web服务器向浏览器提供服务的过程大致可以归纳为以下步骤:
(1)用户打开计算机(客户机),启动浏览器程序(Netscape Navigator、Microsoft Internet Explorer等),并在浏览器中指定一个URL(Uniform Resource Locator,统一资源定位器),浏览器便向该URL所指向的Web服务器发出请求。
(2)Web服务器(也称HTTP服务器)接到浏览器的请求后,把URL转换成页面所在服务器的文件路径名。
(3)如果URL指向的是普通的HTML(Hypertext Markup Language,超文本标记语言)文档,Web服务器将直接把它传送给浏览器。HTML文档中可能包含用Java、JavaScript、ActiveX、VBScript等编写的小应用程序(applet),服务器也将它们随HTML文档一道传送到浏览器,在浏览器所在的机器上执行。
(4)如果HTML文档中嵌有ASP程序,那么Web服务器就运行ASP程序,并将结果传送至浏览器。Web服务器运行ASP程序时,还可能调用数据库服务器和其他服务器。
(5)URL也可以指向VRML(Virtual Reality Modeling Language)文档。只要浏览器中配置有VRML插件,或者客户机上已安装VRML浏览器,就可以接收Web服务器发送的VRML文档。
早期的Web页面是静态的,用户只能被动浏览。静态页面是用纯HTML代码编写的,这些页面的代码保存为.html或.htm文件形式。后来,以ASP和Java为代表的动态技术使Web从静态页面变成可执行的程序,从而产生了动态网页,大大提高了Web的动态性和交互性。利用ASP,服务器可以执行用户用VBScript或JavaScript编写的嵌入HTML文档中的程序。ASP是Web动态页面设计的基础,通过ASP程序,Web页面可以访问数据库,存取服务器的有关资源,使Web页面具有强大的交互能力。Web的交互性还表现在它的超链接上,因为通过超链接,用户的浏览顺序和所到站点完全可由用户自行决定。
随着技术的不断发展,动态网页的实现一般采用客户端编程和服务器端编程两种程序设计方法。
(1)客户端编程就是客户端浏览器下载服务器上的程序来执行有关动态服务工作。程序员把客户端代码编写到HTML文件中,当用户提出对某个网页的请求时,这些客户端代码和HTML文件代码一起以响应方式返回提出请求的浏览器。常见的客户端编程技术有VBScript、JavaScript、Java applet等。
(2)服务器端编程就是将程序员编写的代码保存在服务器上,当用户提出对某个网页的请求时,这个请求所要访问的页面代码都在服务器端执行,并把执行结果以HTML文件代码的形式传回浏览器,这样浏览器接收的只是程序执行的结果。常见的服务器端编程技术有PHP、JSP、ASP、ASP.NET。