导读:每天都从应用中心下载很多软件安装尝试,在自己的电脑上也装了很多软件,但是,就出现了一个问题,好比QQ,为什么有了APP,还要有网站应用呢?由此,结合到自己的学习,就衍生出一个问题:C/S 开发就可以做出很好很好的东西,为什么还要有B/S开发呢?它们之间的区别是什么?
一、基本概况
1.1,概念
C/S (Client/Server)开发:又称Client/Server或客户/服务器模式。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如ORACLE、SYBASE、InfORMix或 SQL Server。客户端需要安装专用的客户端软件。
附:C/S结构图
B/S 开发(Browser/Server,浏览器/服务器模式):是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器(Browser英 ['braʊzə]美 ['braʊzɚ]),如Netscape Navigator或Internet Explorer,服务器安装SQL Server、Oracle、MYSQL等数据库。浏览器通过Web Server 同数据库进行数据交互。
附:B/S结构图
1.2,应用语言
如果说到应用什么语言去开发C/S 或者说是B/S 结构的的程序,那么作为目前的一个现状来说,很可能就认为:C++,C#,VB等更偏向C/S开发,而所用到的像JS,java,JQuery等,则会被认为更偏向于B/S开发。(某一时期,我是这么认为的)但是,这是不准确的!为什么,看后续的C/S和B/S的关系就明白了。
二、C/S 和 B/S 的对比
2.1,优点
2.1.1 C/S
安全性:C/S需要其特定的客户端,所以面向的对象比较确定,由此所进行的信息安全处于一种可控的范围。
效率:客户端和服务端直接相连,省却了中间环节,数据的传输相对较快。
个性化:C/S尤其特定的客户端,因此可以较大程度上满足客户的个性化要求,如界面、操作等。
稳定性:结构较稳定,较强的事务处理能力,可实现比较复杂的的业务逻辑。
2.1.2 B/S
范围:零安装:拥有一个浏览器,即可访问。因此,它所面向的范围更为的广阔。
扩展性:通常来说,通过增添网页即可扩展系统的功用。零维护:更新页面,即可以实现面向所有用户的更新。
共享:B/S 通过浏览器访问,共享性强。
2.2,缺点
2.2.1 C/S
由于需要在PC端安装特定的软件,所以,它对PC机有一定的要求:如,操作系统。而且,安装和部署复杂。
扩展性和维护成本高,当面对第二客户有不同需求时,得修改其界面等设计。当客户端达到一定的量时,同时访问服务器,造成服务端的响应变慢,效率变低。(但在数据量小的时候不存在)
2.2.2 B/S
由于B/S针对的对象范围广,所以,它的设计一般而言是一种公共审美,无法满足个性化的需求。
2.3,C/S和B/S的联系
2.3.1 联系:
1,C/S可以使用任何通信协议,而B/S这个特殊的C/S架构规定必须实现HTTP协议
2,浏览器是一个通用客户端,本质上开发浏览器,还是实现一个C/S系统
C/S开发和B/S开发从本质上来讲,并没有什么区别。所以在其应用语言的选择上,没有太明确太严格的要求,就比如说:VB、VC等即可用于C/S 开发,也可用于B/S开发。如果非要说不同的话,那么作为我个人来说,也许是在一些类库上有区别。由于B/S的范围广,对象多,开发过程中需要应用的东西就多很多,所以可能会需要像是Ajax,JQuery等使用,或者说引用更多的API类库等。
2.3.2 区别:
投入成本:B/S在一般情况下只需求一次投入,即开发时的费用。而C/S随着其使用范围、人数的增多,其维护成本、开发成本相应的增多。
资源利用:当数据量达到一定的程度之后,C/S开发中的服务器无法满足其需求,通常需要更换性能更为优越的服务器,而原有的旧服务器被废弃。而作为B/S开发,在需求量增大时,可以通过增添服务器的数量去圆滑的解决这个问题,其资源的利用程度相对较高。
三、总结
有些资料还是要去查一下的,然后才能明确。很多时候,不是自己不知道,只是不敢确定。但这种不确定性,却会在后续的学习中带来很大的困扰。
从C/S开发到B/S开发,随着受众的增多,或者说是庞大的系统结构,通常一个服务器端根本解决不了问题,那么,服务器端的增加会带来什么影响?当一个系统太过于庞大的时候,如果我们仍然使用一个解决方案,在后续维护的时候,会出现什么问题?