一、什么是C/S架构?
C/S是Client/Server的缩写。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle或SQLServer。
C/S架构软件有一个特点,就是如果用户要使用的话,需要下载一个客户端,安装后就可以使用。比如QQ,OFFICE软件等。
C/S架构的优点:
-
C/S架构的界面和操作可以很丰富。(客户端操作界面可以随意排列,满足客户的需要)
-
安全性能可以很容易保证。(因为只有两层的传输)
-
由于只有一层交互,因此响应速度较快。(直接相连,中间没有什么阻隔或岔路,比如QQ,每天那么多人在线,也不觉得慢)
C/S架构的缺点:
-
适用面窄,通常用于局域网中。
-
用户群固定。由于程序需要安装才可使用,因此不适合面向一些不可知的用户。
-
维护成本高,发生一次升级,则所有客户端的程序都需要改变。
二、什么是B/S架构?
B/S架构的全称为Browser/Server,即浏览器/服务器结构。
Browser指的是Web浏览器,极少数事务逻辑在前端实现,主要事务逻辑在服务器端实现。
B/S架构的系统无须安装客户端,有Web浏览器即可访问。其实就是我们前端开发做的一些事情,大部分的逻辑交给后台来实现,前端只需做一些数据渲染,请求等比较少的逻辑。
B/S架构的特征和基本结构:
在 B/S 结构中,每个节点都分布在网络上,这些网络节点可以分为浏览器端、服务器端和中间件,通过它们之间的链接和交互来完成系统的功能任务。三个层次的划分是从逻辑上分的,在实际应用中多根据实际物理网络进行不同的物理划分。
浏览器端:即用户使用的浏览器,是用户操作系统的接口,用户通过浏览器界面向服务器端提出请求,并对服务器端返回的结果进行处理并展示,通过界面可以将系统的逻辑功能更好的表现出来。
服务器端:提供数据服务,操作数据,然后把结果返回中间层,结果显示在系统界面上。
中间件:这是运行在浏览器和服务器之间的。这层主要完成系统逻辑,实现具体的功能,接受用户的请求并把这些请求传送给服务器,然后将服务器的结果返回给用户,浏览器端和服务器端需要交互的信息是通过中间件完成的。
B/S架构的分层
与C/S架构不同的是,B/S架构有三层,分别为:
-
第一层表现层:主要完成用户和后台的交互及最终查询结果的输出和展示功能。
-
第二层逻辑层:主要是利用服务器完成客户端的应用逻辑功能。
-
第三层数据层:主要是接受客户端请求后独立进行各种数据运算。
B/S架构的优点:
1)客户端无需安装,只要有Web浏览器访问即可。
2)BS架构可以直接放在广域网上,通过一定的权限控制实现多客户访问的目的,交互性较强。
3)BS架构无需升级多个客户端,升级服务器即可。可以随时更新版本,而无需用户重新下载。
B/S适用于一些安全性要求相对较低、数据查询量大、操作简单模块。除了具有C/S模型的所有优点外,B/S还具有使用简单、提供了一个统一的客户端、维护工作集中于服务器端、通用性强的Web的开放式标准、扩展性好、可接入Internet等优点。
B/S架构的缺点:
在跨浏览器上,BS架构表现不如CS程序的好。
在速度和安全性上需要花费很大的设计成本,这是BS架构的最大问题。
客户端服务器端的交互是请求-响应模式,通常需要刷新页面,这并不是客户乐意看到的。(在Ajax风行后此问题得到了一定程度的缓解)
三、C/S与B/S架构的区别
1)硬件环境不同:
C/S 一般建立在专用的网络上,小范围里的网络环境,局域网之间再通过专门服务器提供连接和数据交换服务。B/S 建立在广域网之上的, 不必是专门的网络硬件环境。例如电话上网,租用设备,信息管理,有比C/S更强的适应范围,一般只要有操作系统和浏览器就行。
2)对安全要求不同:
C/S 一般面向相对固定的用户群, 对信息安全的控制能力很强, 一般高度机密的信息系统采用C/S 结构适宜,可以通过B/S发布部分可公开信息。B/S 建立在广域网之上, 对安全的控制能力相对弱,面向是不可知的用户群。
3)对程序架构不同:
C/S 程序可以更加注重流程,可以对权限多层次校验,对系统运行速度可以较少考虑。B/S 对安全以及访问速度的多重的考虑,建立在需要更加优化的基础之上,比C/S有更高的要求。
CS结构在逻辑结构上比BS结构少一层,对于相同的任务,CS结构完成的速度总比BS结构快,使得CS更利于处理大量数据。另外,由于客户端实现与服务器的直接相连,没有中间环节,因此响应速度快。
4)软件重用不同:
C/S 程序不可避免的整体性考虑,构件的重用性不如在B/S要求下的构件的重用性好。B/S 的多重结构,要求构件相对独立的功能,能够相对较好的重用。
5)系统维护不同:
系统维护在是软件的生命周期中,开销大。C/S 程序由于整体性,必须整体考虑, 处理出现的问题以及系统升级比较难,可能是再做一个全新的系统。B/S程序由构件组成,方便构件个别的更换,实现系统的无缝升级,系统维护开销减到最小,用户从网上自己下载安装就可以实现升级。