让 / 测 / 试 / 人 / 更 / 加 / 卓 / 越
“嘿 测试人,今天的你过得还好吗?”
行动是治愈恐惧的良药,而犹豫、拖延将不断滋养恐惧。
☽
- 2022.07.04-
◆◆什么是C/S架构◆◆
C/S架构是第一种比较早的软件架构,主要用于局域网内。C/S又称Client/Server或也叫客户机/服务器模式。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix或 SQL Server。客户端需要安装专用的客户端软件。
C/S的优点是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器。对应的优点就是客户端响应速度快。
缺点主要有以下几个:
一、只适用于局域网。而随着互联网的飞速发展,移动办公和分布式办公越来越普及,这需要我们的系统具有扩展性。这种方式远程访问需要专门的技术,同时要对系统进行专门的设计来处理分布式的数据。
二、客户端需要安装专用的客户端软件。首先涉及到安装的工作量,其次任何一台电脑出问题,如病毒、硬件损坏,都需要进行安装或维护。特别是有很多分部或专卖店的情况,不是工作量的问题,而是路程的问题。还有,系统软件升级时,每一台客户机需要重新安装,其维护和升级成本非常高。
三、对客户端的操作系统一般也会有限制。可能适应于Win98, 但不能用于Win2000或Windows XP。或者不适用于微软新的操作系统等等,更不用说Linux、Unix等。
它可以分为客户机和服务器两层:
第一层: 在客户机系统上结合了界面显示与业务逻辑;
第二层: 通过网络结合了数据库服务器。
简单的说就是第一层是用户表示层,第二层是数据库层。
这里需要补充的是,客户端不仅仅是一些简单的操作,它也是会处理一些运算,业务逻辑的处理等。也就是说,客户端也做着一些本该由服务器来做的一些事情,如图所示:
C/S架构软件有一个特点,就是如果用户要使用的话,需要下载一个客户端,安装后就可以使用。比如QQ,OFFICE软件等。
1、C/S架构的优点:
C/S架构的界面和操作可以很丰富。(客户端操作界面可以随意排列,满足客户的需要)
安全性能可以很容易保证。(因为只有两层的传输,而不是中间有很多层。
由于只有一层交互,因此响应速度较快。(直接相连,中间没有什么阻隔或岔路,比如QQ,每天那么多人在线,也不觉得慢)
2、C/S架构的缺点:
可以将QQ作为类比:
1 适用面窄,通常用于局域网中。
2 用户群固定。由于程序需要安装才可使用,因此不适合面向一些不可知的用户。
3 维护成本高,发生一次升级,则所有客户端的程序都需要改变。
◆◆什么是B/S架构◆◆
B/S是Brower/Server的缩写,即浏览器/服务器结构。客户机上只要安装一个浏览器(Browser),如Netscape Navigator或Internet Explorer,服务器安装Oracle、Sybase、Informix或 SQL Server等数据库。浏览器通过Web Server 同数据库进行数据交互。
B/S最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件。只要有一台能上网的电脑就能使用,客户端零维护。系统的扩展非常容易,只要能上网,再由系统管理员分配一个用户名和密码,就可以使用了。甚至可以在线申请,通过公司内部的安全认证(如CA证书)后,不需要人的参与,系统可以自动分配给用户一个账号进入系统。
其实就是我们前端现在做的一些事情,大部分的逻辑交给后台来实现,我们前端大部分是做一些数据渲染,请求等比较少的逻辑。
B/S架构的分层:
与C/S架构只有两层不同的是,B/S架构有三层,分别为:
第一层表现层:主要完成用户和后台的交互及最终查询结果的输出功能。
第二层逻辑层:主要是利用服务器完成客户端的应用逻辑功能。
第三层数据层:主要是接受客户端请求后独立进行各种运算。
如图所示:
B/S架构的优点:
客户端无需安装,有Web浏览器即可。
BS架构可以直接放在广域网上,通过一定的权限控制实现多客户访问的目的,交互性较强。
BS架构无需升级多个客户端,升级服务器即可。可以随时更新版本,而无需用户重新下载更新。
浏览器和数据库服务器采用多对多的方式连接。因此适合在广域网里实现巨大的互联网,甚至是全球网,有着很强大的信息共享性。
浏览器只处理一些简单的逻辑事务,负担小。
数据都集中存放在数据库服务器,所以不存在数据不一致现象。
随着服务器负载的增加,可以平滑地增加服务器的个数并建立集群服务器系统,然后在各个服务器之间做负载均衡。
B/S建立在广域网上,所以需要的网速要求不高。
不需要安装客户端,只要能连上网,就能随时随地的浏览页面。
能有效地保护数据平台和管理访问权限,确保服务器数据库的数据安全。
B/S架构的缺点:
在跨浏览器上,BS架构不尽如人意。
表现要达到CS程序的程度需要花费不少精力。
在速度和安全性上需要花费巨大的设计成本,这是BS架构的最大问题。
客户端服务器端的交互是请求-响应模式,通常需要刷新页面,这并不会给客户很好的体验。
服务器承担着重要的责任,数据负荷较重。一旦发生服务器“崩溃”等问题,后果不堪设想。
页面需要不断地动态刷新,当用户增多时,网速会变慢。
◆◆B/S架构常用的几种形式◆◆
第一种:客户端 👉 服务器 👉 数据库
这个应该是我们平时比较常见的一种模式:
1、客户端向服务器发起Http请求
2、服务器中的web服务层能够处理Http请求
3、服务器中的应用层部分调用业务逻辑,调用业务逻辑上的方法
4、如果有必要,服务器会和数据库进行数据交换. 然后将模版+数据渲染成最终的Html, 返送给客户端
第二种:客户端 👉 web服务器 👉 应用服务器 👉 数据库
类似于第一种方法,只是将web服务和应用服务解耦
1 客户端向web服务器发起Http请求
2 web服务能够处理Http请求,并且调用应用服务器暴露在外的RESTFUL接口
3 应用服务器的RESTFUL接口被调用,会执行对应的暴露方法.如果有必要和数据库进行数据交互,应用服务器会和数据库进行交互后,将json数据返回给web服务器
4 web服务器将模版+数据组合渲染成html返回给客户端
第三种方法:客户端 👉 负载均衡器(Nginx) 👉 中间服务器(Node) 👉 应用服务器 👉 数据库
这种模式一般用在有大量的用户,高并发的应用中:
1、整正暴露在外的不是真正web服务器的地址,而是负载均衡器器的地址
2、客户向负载均衡器发起Http请求
3、负载均衡器能够将客户端的Http请求均匀的转发给Node服务器集群
4、Node服务器接收到Http请求之后,能够对其进行解析,并且能够调用应用服务器暴露在外的RESTFUL接口
5、应用服务器的RESTFUL接口被调用,会执行对应的暴露方法.如果有必要和数据库进行数据交互,应用服务器会和数据库进行交互后,将json数据返回给Node
6、Node层将模版+数据组合渲染成html返回反向代理服务器
7、反向代理服务器将对应html返回给客户端
Nginx的优点有:
1、它能够承受、高并发的大量的请求,然后将这些请求均匀的转发给内部的服务器,分摊压力.
2、反向代理能够解决跨域引起的问题,因为Nginx,Node,应用服务器,数据库都处于内网段中。
3、Nginx非常擅长处理静态资源(img,css,js,video),所以也经常作为静态资源服务器,也就是我们平时所说的CDN
比如:前一个用户访问index.html, 经过Nginx-Node-应用服务器-数据库链路之后,Nginx会把index.html返回给用户,并且会把index.html缓存在Nginx上,
下一个用户再想请求index.html的时候,请求Nginx服务器,Nginx发现有index.html的缓存,于是就不用去请求Node层了,会直接将缓存的页面(如果没过期的话)返回给用户。
◆◆发展前景◆◆
1、 C/S和B/S各有优势,C/S在图形的表现能力上以及运行的速度上肯定是强于B/S模式的,不过缺点就是他需要运行专门的客户端,而且更重要的是它不能跨平台,用c++在windows下写的程序肯定是不能在linux下跑的。
2、B/S模式,它不需要专门的客户端,只要浏览器,而浏览器是随操作系统就有的,方便就是他的优势了。
而且,B/S是基于网页语言的、与操作系统无关,所以跨平台也是它的优势,而且以后随着网页语言以及浏览器的进步,
B/S在表现能力上的处理以及运行的速度上会越来越快,它的缺点将会越来越少。尤其是HTML5的普及,在图形的渲染方面以及音频、文件的处理上已经非常强大了。
不过,C/S架构也有着不可替代的作用。
【入行IT转做软件测试?就选青胜】
青胜紧跟行业发展,贴合企业人才需求,对课程进行更新迭代,创造性的推出了RACE学习模型,即认知Recognize:学习评估;还原 Analyze:名师讲解;创造Create:项目实战;卓越 Excellent:督学就业;针对大学生、跨界转行、初级工程师三大群体郑重推出全栈软件测试工程师启航班!
无论你是在本行业发展受限,想零基础转行,还是刚毕业想入行软件测试,亦或是有一份基础的测试工作,但感觉技能薄弱,想要提升技能,都可以选择我们青胜软件测试!
青胜软件测试以高薪为导向,以软件测试技术体系为基础,以新技术、项目实战为双驱动,始终专注于培养与社会发展进程高度匹配、有明确社会需求的精通软件测试流程,掌握多种测试技能,并具备良好沟通表达能力、专业软件测试技术的卓越人才。
————————————————
CONTACT US / 关注我们
VX/官方公众号
青胜软件测试
知乎/官方账号
青胜软件测试
头条号/官方账号
郑说软件测试
BILIBILI/哔哩哔哩
青胜软件测试
喜马拉雅/官方账号
青胜软件测试