IT兄弟连 JavaWeb教程 Servlet定义以及环境配置 BS程序和CS程序

  • 2019 年 10 月 5 日
  • 筆記

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/ITXDL123/article/details/89843849

随着网络技术的不断发展,单机的软件程序已难以满足网络计算机的需求。为此,各种各样的网络程序开发体系结构应运而生。其中,运用最多的网络应用程序开发体系结构可以分为两种,一种是基于客户端/服务器的C/S结构,另一种就是基于浏览器/服务器的B/S结构。下面将对这两种结构进行介绍。

C/S体系结构介绍

C/S是Client/Server的缩写,即客户端/服务器结构。在这种结构中,服务器通常采用高性能的PC机或工作站,并采用大型数据库系统(如Oracle或SQL Server),客户端则需要安装专用的客户端软件。这种结构可以充分利用两端硬件的优势,将任务合理地分配到客户端和服务器,从而降低了系统的通信开销。在2000年以前,C/S结构占据网络程序开发领域的主流。C/S结构由美国Borland公司最早研发。

B/S体系结构介绍

随着Web2.0时代的到来,互联网的网络架构已经从传统的C/S架构转变为更加方便、快捷的B/S架构,B/S架构大大简化了用户使用网络应用的难度,这种人人都能上网、人人都能使用网络上提供的服务的方法也进一步推动了互联网的繁荣。

B/S架构带来了以下两方面的好处。

● 客户端使用统一的浏览器(Browser)。由于浏览器具有统一性,它不需要特殊的配置和网络连接,有效地屏蔽了不同服务提供商提供给用户使用服务的差异性。另外,最重要的一点是,浏览器的交互特性使得用户使用它非常简便,且用户行为的可继承性非常强,也就是用户只要学会了上网,不管使用的是哪个应用,一旦学会了,在使用其它互联网服务时同样具有了使用经验,因为它们都基于同样的浏览器操作界面。

● 服务端(Server)基于统一的HTTP协议。和传统的C/S架构使用自定义的应用层协议不同,B/S架构使用的都是统一的HTTP协议。使用统一的HTTP也为服务提供商简化了开发模式,使得服务端开发者可以采用相对规范的开发模式,这样可以大大节省开发成本。由于使用统一的HTTP协议,所以基于HTTP协议的服务器就有很多,如Apache、IIS、Nginx、Tomcat、JBoss等,这些服务器可以直接拿来使用,不需要服务开发者单独来开发。不仅如此,连开发服务的通用框架都不需要单独开发,服务开发者只需要关注提供服务的应用逻辑,其它一切平台和框架都可以直接拿来使用,所以B/S架构同样简化了服务器提供者的开发,从而出现了越来越多的互联网服务。

B/S网络架构从前端到后端都得到了简化,都基于统一的应用层协议HTTP来交互数据,与大多数传统的C/S互联网应用程序采用的长连接的交互模式不同,HTTP采用无状态的短连接的通信方式,通常情况下,一次请求就完成了一次数据交互,通常也对应一个业务逻辑,然后这次通信连接就断开了。采用这种方式是为了能够同时服务更多与用户,因为当前互联网应用每天都会处理上亿次的用户请求,不可能每个用户访问一次后就一直保持这个连接。

基于HTTP协议本身的特点,目前的B/S网络架构大多采用如图1.1所示的架构设计,即要满足海量用户的访问请求,又要保持用户请求的快速响应,所以现在的网络架构也越来越复杂。

当一个用户在浏览器里输入java.itxdl.cn这个URL时,将会发生很多操作。首先它会请求DNS把这个域名解析成对应的IP地址,然后根据这个IP地址在互联网上找到对应的服务器,向这个服务器发起一个get请求,由这个服务器决定返回默认的数据资源给访问的用户。在服务器端实际上还有很复杂的业务逻辑:服务器可能有很多台,到底指定那台服务器来处理请求,这需要一个负载均衡设备来平均所有用户的请求;还有请求的数据是存储在分布式缓存里还是一个静态文件中,或是在数据库里;当数据返回浏览器时,浏览器解析数据发现还有一些静态资源(如CSS、JS或者图片资源)时又会发起另外的HTTP请求,而这些请求很可能会在CDN上,那么CDN服务器又会处理这个用户的请求,大体上一个用户会涉及这么多的操作。每一个细节都会影响这个请求最终是否会成功。

不管网络架构如何变化,始终有一些固定不变的原则需要遵守。

● 互联网上所有的资源都要用一个URL来表示,URL就是统一资源定位符,如果你要发布一个服务或者一个资源到互联网上,让别人能够访问到,那么你首先必须要有一个世界上独一无二的URL。不要小看这个URL,它几乎包含了整个互联网架构的精髓。

● 必须基于HTTP协议与服务器端交互。不管你要访问的是国内的还是国外的数据,是文本数据还是流媒体,都必须按照套路出牌,也就是都得采用统一打招呼的方式,这样人家才会明白要的是什么。

● 数据展示必须在浏览器中进行。当获取到数据资源后,必须在浏览器上才能恢复它的容貌。

两种体系结构的对比

C/S结构和B/S结构是当今世界网络程序开发体系结构的两大主流。目前,这两种结构都有自己的市场份额和客户群。但是,这两种体系结构又各有各的优点和缺点,下面将从3个方面进行比较说明。

1.开发和维护成本方面

C/S结构的开发和维护成本都比B/S高。采用C/S结构时,对于不同客户端要开发不同的程序,而且软件的安装、调试和升级均需要在所有的客户机上进行。例如,如果一个企业共有10个客户站点使用一套C/S结构的软件,则这10个客户站点都需要安装客户端程序。当这套软件进行了哪怕很微小的改动后,系统维护员都必须将客户端原有的软件卸载,再安装新的版本进行配置,最可怕的是客户更新不及时,导致版本不一致而无法工作。而B/S结构的软件,则不必在客户端进行安装及维护。如果将前面企业C/S结构的软件换成B/S结构,则在软件升级后,系统维护员只需要将服务器的软件升级到最新版本,对于其他客户端,只要重新登录系统,即可使用最新版本的软件。

2.客户端负载

C/S结构的客户端不仅负责与用户的交互,收集用户信息,而且还需要完成通过网络向服务器请求对数据库、电子表格或文档等信息的处理。由此可见,应用程序的功能越复杂,客户端程序也就越庞大,这也给软件的维护工作带来了很大的困难。而B/S结构的客户端把事务处理逻辑部分交给了服务器,由服务器进行处理,客户端只需要进行显示,这样将使应用程序服务器的运行数据负荷较重,一旦发生服务器“崩溃”等问题,后果将不堪设想。因此,许多单位都设有数据库存储服务器,以防万一。

3.安全性

C/S结构适用于专人使用的系统,可以通过严格的管理派发软件,达到保证系统安全的目的,这样的软件相对来说安全性比较高。而对于B/S结构的软件,由于使用的人数较多且不固定,相对来说安全性就会低些。

由此可见,B/S相对于C/S来说具有更多的优势,现今大量的应用程序开始应用B/S结构,许多软件公司也争相开发B/S版本软件,也就是Web应用程序。随着Internet的发展,基于HTTP协议和HTML标准的Web应用呈集合数量级的增长,而这些Web应用正是由各种Web技术所开发的。