- Visual C#.NET Web应用程序设计
- 杨学全主编
- 2289字
- 2025-02-16 20:42:00
1.2 Web服务与Web程序设计模式
在学习ASP.NET之前,用户需要对Web程序设计模式有所了解。Web程序或网站的运行方式不同于普通的Windows应用程序,本节将主要从三个方面来阐述,即Web服务、浏览器/服务器模式和动态网页制作技术。
1.2.1 Web服务与动态网页
因特网中有数以亿计的网站,用户可以通过浏览这些网站获得所需要的信息,但这些网站如何为用户服务呢?举一个简单的例子:当用户想访问新浪网时,在浏览器的地址栏中输入“http://www.sina.com.cn”就可以浏览到新浪网的首页。那么新浪网首页的内容存放在哪里呢?计算机又如何将其显示在浏览器中呢?
首先回答第一个问题,新浪网首页的内容是存放在新浪网服务器上面的。服务器是网络中的一台主机,由于它提供Web、FTP等网络服务,因此称为服务器。
其次回答第二个问题,当用户在地址栏中输入新浪网地址“http://www.sina.com.cn”时,浏览器会向新浪网的服务器发送HTTP请求,这个请求使用HTTP协议,其中包括请求的主机名、HTTP版本号、端口、虚拟目录、网页名等信息。服务器在收到请求信息后,将回复的信息(一般是文字、图片等网页信息)准备好,再通过网络传递给客户端浏览器。客户端的浏览器在接收到服务器传递的信息后,将其解释并显示在浏览器的窗口中,这样用户即可进行浏览。Web服务过程如图1.3所示。

图1.3 Web服务过程
在这个过程中,如果在服务器上存放的网页为静态HTML网页文件,服务器就会原封不动地传递回网页的内容;如果存放的是动态网页,如ASP、JSP、ASP.NET等文件,则服务器会执行动态网页的代码,执行的结果将生成一个HTML文件,然后将其传递给客户端浏览器。
因此,动态网页和静态网页的根本区别在于服务器端传递给客户端浏览器的HTML文件是事先存储好的还是由动态网页程序生成的。静态网页文件里只有HTML标记,没有程序代码,网页的内容都是事先写好并存放在服务器上的;动态网页文件里不仅含有HTML标记,并且还含有程序代码,当用户发出请求时,服务器由动态网页程序即时生成HTML文件并传递给客户端。动态网页能够根据不同的时间和用户生成不同的HTML文件,显示不同的内容。
1.2.2 浏览器/服务器模式及其优点
可以这样说,现今的世界是一个网络的世界,因此,软件的发展趋势也就不可避免地要从单机架构发展为网络架构。早期常用的网络架构为客户/服务器(C/S,Client/Server)模式,使用这种架构编写的软件分为客户端和服务器端两部分,需要分别在客户机和服务器上进行安装。这种模式在用户数据输入等方面很有优势,也降低了系统的通信开销,但是也存在一定的不足之处。例如,当客户端的软件需要升级时,所有客户端都必须进行升级安装或者重新安装,这就给软件的使用者或系统管理员带来了很大的不便。同时,由于不同的客户可能使用不同版本的客户端,因此,在设计和升级服务器端软件时就不得不考虑到软件版本的兼容性,这对程序员来说是一件很复杂的事情。
随着软件和网络的发展,尤其是因特网的普及,用于上网浏览的浏览器已经成为操作系统中不可缺少的一项。随着浏览器的功能越来越强大,在许多场合下,浏览器可以取代客户/服务器架构的客户端软件,这就使得将浏览器作为统一客户端的想法成为可能。这样就可以将编写好的服务器软件运行在服务器上,使用浏览器作为客户端软件,客户通过浏览器与服务器端软件进行交互并得到运算结果,这种软件架构就是浏览器/服务器(B/S,Browser/Server)模式。这种架构主要利用了不断成熟的WWW浏览器技术,结合动态网站制作技术,通过通用浏览器实现了原来需要复杂的专用软件才能实现的强大功能,节约了开发成本,是一种全新的软件系统构造技术。随着浏览器植入操作系统内部技术的发展,这种架构成为当今应用软件的首选体系结构。显然,B/S模式的应用程序相对于传统的C/S模式的应用程序来说无疑是一个巨大的进步。
1.2.3 常见的动态网页制作技术
目前,使用比较多的动态网页制作技术有ASP、ASP.NET、JSP、PHP等,本节将对它们进行简单的介绍和比较。
ASP(Active Server Pages)是微软在早期推出的动态网页制作技术,包含在IIS (Internet信息服务)中,是一种服务器端的脚本编写环境,使用它可以创建和运行动态、交互的Web服务器应用程序。在ASP中,可以综合使用HTML、脚本和ActiveX组件等技术,创建交互的Web页和功能强大的基于B/S模式的应用程序。在动态网页技术发展的早期,ASP是绝对的主流技术,但是它也存在着许多缺陷。由于ASP的核心是脚本语言,这决定了它的先天不足,即它无法进行像传统编程语言那样的底层操作;由于ASP通过解释执行代码,因此运行效率较低;同时,由于ASP的脚本代码与HTML代码混在一起,不便于开发人员进行管理与维护。随着技术的发展,ASP的辉煌已经成为过去,微软也已经不再对ASP提供技术支持和更新,目前ASP技术处于被淘汰的边缘。
JSP(Java Server Pages)是Sun公司提出的一种动态网页技术标准,它主要的编程脚本为Java语言,同时还支持JavaBeans/Servlet等技术。由于Java语言的跨平台性,因此JSP也可以跨平台运行;由于JSP是编译执行而不是解释执行,因此运行效率较ASP有很大的提高。
PHP(Hypertext Preprocessor)从语法和编写方式上来看与ASP类似,是完全免费的,最早是一个小开放源码的软件,随着越来越多的人意识到它的实用性而逐渐发展起来。Rasmus Lerdorf在1994年发布了PHP的第一个版本,从那时起它就开始飞速发展,在原始发行版本上经过无数的改进和完善,现在已经发展到版本5.2。PHP+MySQL+Linux的组合是最常见的,因为它们都可以免费获得。但是PHP的弱点也是很明显的,例如,PHP不支持真正意义上的面向对象编程,接口支持不统一,缺乏正规支持,不支持多层结构和分布式计算等。
ASP.NET是微软继ASP后推出的全新动态网页制作技术,目前的最新版本为.NET 3.5。在性能上,ASP.NET比ASP强很多,与PHP和JSP相比,开发简单、功能强大。对于一个想要学习Web程序设计的人来说,“开发简单”和“功能强大”正是其所需要的。
在学习Web程序设计之前,需要先了解ASP.NET技术,构建ASP.NET的运行和开发环境。