当前位置: 首页 > news >正文

C/S与B/S架构

目录

C/S架构

什么是C/S架构

优缺点

B/S架构

什么是B/S架构

优缺点

对比项C/S 架构B/S 架构
安装相对复杂,要安装单独客户端软件易于安装,与平台无关,只需要浏览器软件
部署和维护部署维护较为繁琐,升级难易于部署和维护,容易升级
在线工作可以离线工作,前提是本地有缓存数据,涉及数据库同步需在线工作,工作效率受网络情况影响较大
客户端资源利用充分利用客户端计算机资源只能通过浏览器页面交互,没有充分利用客户端计算机资源
网络资源占用网络传输量小,只需在客户端和服务器间传输数据网络传输量大
安全性较高,方便加密和解密安全性较低

C/S架构

什么是C/S架构

C/S架构(Client Serve)是第一种比较早的软件架构,主要用于局域网内。也叫 客户机/服务器模式

特点

  • 如果用户想使用,需要下载一个客户端,安装后就可以使用,例如QQ,微信等
  • Windows .exe    Mac .dmg
  • Android .apk      IOS .ipa 

C/S架构可以分为客户机和服务器两层,第一层客户机作为用户表示层;第二层服务器作为数据库层,客户端通过数据库连接访问服务器端的数据。

第一层:在客户机系统上结合了界面显示与业务逻辑

第二层:通过网络结合了数据库服务器

这种架构中客户端不仅仅是做一些简单操作,也会处理一些运算,实现绝大多数的业务逻辑和界面展示,替代了本该由服务器处理的事情,因此也被称为胖客户端

优缺点

优点:

1.C/S架构的界面和操作可以很丰富,例如QQ对比在线聊天

2.由于只有两层的传输,安全性能很容易保证

3.由于只有一层交互,因此响应速度较快

缺点

1.适用面窄,通常用于局域网中。020
2.用户群固定。由于程序需要安装才可使用,因此不适合面向一些不可知的用户。
3.维护成本高,发生一次升级,则所有客户端的程序都需要改变

 

测试时需考虑向前向后兼容

向前(上)兼容:旧版本系统需能接受新版本的数据,旧兼容新

向后(下)兼容:新版本系统需能接受旧版本的数据,新兼容旧

B/S架构

什么是B/S架构

B/S架构的全称为Browser/Server,即浏览器/服务器结构。

Browser指的是Web浏览器,极少数事务逻辑在前端实现,但主要事务逻辑在服务器端实现

特点

  • B/S架构的系统无须特别安装,只有Web浏览器即可

B/S架构可以分为三层,第一层客户机作为用户表示层;第二层应用服务器作为业务逻辑层,第三层数据库服务器作为数据访问层

第一层界面表示层:主要完成用户和后台的交互及最终查询结果的输出功能  --前端页面

第二层业务逻辑层:主要是利用服务器完成客户端的应用逻辑功能  --后端api接口

第三层数据层:主要是接受客户端请求后独立进行各种运算  --云服务器

这种架构中,显示逻辑交给了Web浏览器,事务处理逻辑在放在了WebApp上,这样就避免了庞大的胖客户端,减少了客户端的压力。因为客户端包含的逻辑很少,大部分做游戏数据渲染,请求等工作,因此也被成为瘦客户端

优缺点

优点

1.客户端无需安装,有Web浏览器即可。 
2.B/S架构可以直接放在广域网上,通过一定的权限控制实现多客户访问的目的,交互性较强。 
3.B/S架构无需升级多个客户端,升级服务器即可。可以随时更新版本,而无需用户重新下载

 

测试时遇到版本更新只需要刷新页面即可

缺点

1、在跨浏览器上,B/S架构不尽如人意。 
2、表现要达到C/S程序的程度需要花费不少精力。 
3、在速度和安全性上需要花费巨大的设计成本,这是B/S架构的最大问题。 
4、客户端服务器端的交互是请求-响应模式,通常需要刷新页面,这并不是客户乐意看到的。(在Ajax风行后此问题得到了一定程度的缓解)

相关文章:

  • this.centerDialogVisible = true this.$nextTick(()=>{ this.resetForm(); })
  • this(执行上下文)
  • 1 存储过程学习: 使用DMSQL程序的优点
  • 如果vue加载页面的时候,需要加载很多子vue ,能不能先加载一个,让页面处于能用的状态,多余的在后台加载。
  • Java 基础入门代码示例解析
  • 使用Python调用Jenkins Api之获取构建日志使用说明文档
  • SpringBoot 3.0之后为什么移除了spring.factories
  • 好好学Docker:基于Docker buildx构建多平台镜像【转载】
  • Python爬取微博签到数据(2025年3月更)
  • python的文件上传
  • 单片机 - RAM 与内存、ROM 与硬盘 之间的详细对比总结
  • 【MySQL】JDBC —— Java 连接 MySQL
  • Qt 隐式共享
  • Java「Deque」 方法详解:从入门到实战
  • 信息安全和病毒防护——入侵检测技术
  • selenium基本使用(二)九种定位方法
  • 深度优先搜索(DFS)在排列组合问题中的应用详解:C++实现与优化
  • 第一章,网络发展史///OSI七层模型
  • 【开题报告+论文+源码】基于SpringBoot+Vue的酒店餐饮管理系统设计与实现
  • CTF类题目复现总结-[羊城杯 2020]TCP_IP 1
  • 海外考古大家访谈|冈村秀典:礼制的形成与早期中国
  • 俄乌谈判开始
  • 定制基因编辑疗法治愈罕见遗传病患儿
  • 讲座预告|以危机为视角解读全球治理
  • 上海静安将发放七轮文旅消费券,住宿券最高满800元减250元
  • 赖清德为“临阵脱逃”作准备,国台办:绝不会任“台独”祸首逍遥法外