C/S和B/S的区别和优缺点

2023-11-01

一、CS、BS架构定义

  1、C/S(Client/Server):客户端=服务器结构。C/S结构在技术上很成熟,它的主要特点是交互性强、具有安全的存取模式、网络通信量低、响应速度快、利于处理大量数据。因为客户端要负责绝大多数的业务逻辑和UI展示,又称为胖客户端。它充分利用两端硬件,将任务分配到Client 和Server两端,降低了系统的通讯开销。C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,加之产品的更新换代十分快,已经很难适应百台电脑以上局域网用户同时使用。

    2、C/S 架构是一种典型的两层架构,其客户端包含一个或多个在用户的电脑上运行的程序,而服务器端有两种,一种是数据库服务器端,客户端通过数据库连接访问服务器端的数据;另一种是Socket服务器端,服务器端的程序通过Socket与客户端的程序通信。

   3、B/S(Browser/Server):浏览器----服务器结构,是目前应用系统的发展方向。BS是伴随着Internet技术的兴起,对C/S架构的改进,为了区别于传统的C/S 模式,特意称为B/S模式。在这种结构下,通过W3浏览器来进入工作界面,极少部分事务逻辑在前端(Browser)实现,主要事务逻辑在服务器端(Server)实现,形成三层(3-tier)结构。这样使得客户端电脑负荷大大简化(因此被称为瘦客户端),减轻了系统维护、升级的支出成本,降低了用户的总体成本(TCO)。

  4、B/S的主要特点是分布性强、维护方便、开发简单且共享性强、总体拥有成本低。但数据安全性问题、对服务器要求过高、数据传输速度慢、软件的个性化特点明显降低,难以实现传统模式下的特殊功能要求。它是瘦客户端,对大量的数据输入以及报表的应答等都需要通过浏览器与服务器进行交互,通信开销大,而且对于实现复杂的应用构造有较大的困难。

二、CS、BS 的区别

 1.硬件环境不同:
   C/S 一般建立在专用的网络上, 小范围里的网络环境, 局域网之间再通过专门服务器提供连接和数据交换服务.
  B/S 建立在广域网之上的, 不必是专门的网络硬件环境,例与电话上网, 租用设备. 信息自己管理. 有比C/S更强的适应范围, 一般只要有操作系统和浏览器就行
      2.对安全要求不同
   C/S 一般面向相对固定的用户群, 对信息安全的控制能力很强. 一般高度机密的信息系统采用C/S 结构适宜. 可以通过B/S发布部分可公开信息.
   B/S 建立在广域网之上, 对安全的控制能力相对弱, 可能面向不可知的用户。
      3.对程序架构不同
    C/S 程序可以更加注重流程, 可以对权限多层次校验, 对系统运行速度可以较少考虑.
  B/S 对安全以及访问速度的多重的考虑, 建立在需要更加优化的基础之上. 比C/S有更高的要求 B/S结构的程序架构是发展的趋势, 从MS的. Net系列的BizTalk 2000 Exchange 2000等, 全面支持网络的构件搭建的系统. SUN 和IBM推的JavaBean 构件技术等,使 B/S更加成熟.
      4.软件重用不同
   C/S 程序可以不可避免的整体性考虑, 构件的重用性不如在B/S要求下的构件的重用性好.
   B/S 对的多重结构,要求构件相对独立的功能. 能够相对较好的重用.就入买来的餐桌可以再利用,而不是做在墙上的石头桌子
      5.系统维护不同
   C/S 程序由于整体性, 必须整体考察, 处理出现的问题以及系统升级. 升级难. 可能是再做一个全新的系统
  B/S 构件组成,方面构件个别的更换,实现系统的无缝升级. 系统维护开销减到最小.用户从网上自己下载安装就可以实现升级.
      6.处理问题不同
   C/S 程序可以处理用户面固定, 并且在相同区域, 安全要求高需求, 与操作系统相关. 应该都是相同的系统
  B/S 建立在广域网上, 面向不同的用户群, 分散地域, 这是C/S无法作到的. 与操作系统平台关系最小.
      7.用户接口不同
   C/S 多是建立的Window平台上,表现方法有限,对程序员普遍要求较高
   B/S 建立在浏览器上, 有更加丰富和生动的表现方式与用户交流. 并且大部分难度减低,减低开发成本.
      8.信息流不同
   C/S 程序一般是典型的中央集权的机械式处理, 交互性相对低
   B/S 信息流向可变化, B-B B-C B-G等信息、流向的变化, 更像交易中心。

三、CS的优缺点

1、优点:

  1)能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器,所以CS客户端响应速度快。

  2)操作界面漂亮、形式多样,可以充分满足客户自身的个性化要求。  

  3)C/S结构的管理信息系统具有较强的事务处理能力,能实现复杂的业务流程。

  4)安全性能可以很容易保证,C/S一般面向相对固定的用户群,程序更加注重流程,它可以对权限进行多层次校验,提供了更安全的存取模式,对信息安全的控制能力很强。一般高度机密的信息系统采用C/S结构适宜。

2、缺点:

  1)需要专门的客户端安装程序,分布功能弱,针对点多面广且不具备网络条件的用户群体,不能够实现快速部署安装和配置。

  2)兼容性差,对于不同的开发工具,具有较大的局限性。若采用不同工具,需要重新改写程序。  

  3)开发、维护成本较高,需要具有一定专业水准的技术人员才能完成,发生一次升级,则所有客户端的程序都需要改变。。

  4)用户群固定。由于程序需要安装才可使用,因此不适合面向一些不可知的用户,所以适用面窄,通常用于局域网中。

四、BS的优缺点

1、优点:

  1)分布性强,客户端零维护。只要有网络、浏览器,可以随时随地进行查询、浏览等业务处理。 

  2)业务扩展简单方便,通过增加网页即可增加服务器功能。  

  3)维护简单方便,只需要改变网页,即可实现所有用户的同步更新。 

  4)开发简单,共享性强。

2、缺点:

  1)个性化特点明显降低,无法实现具有个性化的功能要求。 

  2)在跨浏览器上,BS架构不尽如人意。

  3)客户端服务器端的交互是请求-响应模式,通常动态刷新页面,响应速度明显降低(Ajax可以一定程度上解决这个问题)。无法实现分页显示,给数据库访问造成较大的压力。 

  4)在速度和安全性上需要花费巨大的设计成本。

  5)功能弱化,难以实现传统模式下的特殊功能要求。

  总结:CS响应速度快,安全性强,一般应用于局域网中,但是开发维护成本高;BS可以实现跨平台,客户端零维护,但是个性化能力低,响应速度较慢。所以有些单位日常办公应用BS,在实际生产中使用CS结构。
 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C/S和B/S的区别和优缺点 的相关文章

  • PyPI 上的轮子平台约束有什么限制吗?

    是否有任何地方 PEP 或其他地方 声明关于 Linux 轮子上传范围的限制 PyPI http pypi io 应该有 具体来说 上传是否被认为是可接受的做法linux x86 64轮子到 PyPI 而不是manylinux1 x86 6
  • pprof 和 ps 之间的内存使用差异

    我一直在尝试分析用 cobra 构建的 cli 工具的堆使用情况 这pprof工具显示如下 Flat Flat Sum Cum Cum Name Inlined 1 58GB 49 98 49 98 1 58GB 49 98 os Read
  • 推荐用于小型站点的 IRC 服务器 (ircd)? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 情况 我想使用 IRC 机器人作为我正在研究的其他代码的通用通信接口 服务器硬件陈旧且内存不足 但运行在相对最新的 Debian GNU
  • 从 php/linux 获取 pdf 的布局模式(横向或纵向)

    给定一个 PDF 如何使用 PHP lib 或 Linux 命令行工具获取 PDF 的布局模式 或相对宽度 高度 Using http www tecnick com public code cp dpage php aiocp dp tc
  • 如何在gnuplot中将字符串转换为数字

    有没有办法将表示数字 以科学格式 的字符串转换为 gnuplot 中的数字 IE stringnumber 1 0e0 number myconvert stringnumber plot 1 1 number 我可能使用 shell 命令
  • 未找到 Gem 命令

    我已经在 Ubuntu 10 10 32 位上安装了 gem apt get install gem y 但当我尝试跑步时 gem install something gem 我收到未找到命令的错误 bash gem command not
  • 如何在 Linux 中重新添加 unicode 字节顺序标记?

    我有一个相当大的 SQL 文件 它以 FFFE 的字节顺序标记开头 我使用 unicode 感知的 linux 分割工具将此文件分割成 100 000 行块 但是当将这些传递回窗口时 它确实not与第一个部分以外的任何部分一样 只是它具有
  • C++:Linux平台上的线程同步场景

    我正在为 Linux 平台实现多线程 C 程序 其中我需要类似于 WaitForMultipleObjects 的功能 在搜索解决方案时 我发现有一些文章描述了如何在 Linux 中实现 WaitForMultipleObjects 功能
  • 无需 root 访问权限即可安装 zsh? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 有可能 以及如何 我确实需要在几台具有 ssh 访问权限 但没有 root 访问权限 的远程计算机上使用此功能 下载 zsh wget O zsh t
  • XAMPP Windows 上的 Php Cron 作业

    嗯 我是这个词的新手CRON 据我所知 这是一个Unix安排特定操作在定义的时间间隔后执行的概念 我需要运行一个php文件 每小时更新一次数据库 但我的困惑在于安排执行 我在用XAMPP用于 Windows 7 上的本地开发测试 我发现了什
  • ubuntu 的 CSS 更少(并且自动编译)? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我尝试过 simples 但现在 l
  • 为什么docker容器提示“权限被拒绝”?

    我使用以下命令来运行 docker 容器 并从主机映射目录 root database 到容器 tmp install database docker run it name oracle install v root database t
  • 可以作为命令行参数传递多少数据?

    在 Linux 下生成进程时可以发送多少字节作为命令行参数 gahooa 推荐了一篇好文章http www in ulm de mascheck various argmax http www in ulm de mascheck vari
  • 了解 Linux oom-killer 日志

    我的应用程序被 oom killer 杀死了 它是在实时 USB 上运行的 Ubuntu 11 10 无需交换 PC 具有 1 Gig 的 RAM 唯一运行的应用程序 除了所有内置的 Ubuntu 东西 是我的程序 flasherav 请注
  • Grep 递归和计数

    需要在具有大量子目录的目录中搜索文件内的字符串 我在用着 grep c r string here 我怎样才能找到总数量 如何仅输出至少具有一个实例的文件 使用 Bash 的进程替换 这给出了我认为是您想要的输出 如果不是 请澄清问题 gr
  • php_network_getaddresses: getaddrinfo 失败: 名称或服务未知 (0) 连接失败..!

    我正在使用 php 邮件程序功能 但出现以下错误 如何修复它 2016 01 22 06 15 48 SMTP 错误 无法连接到服务器 php network getaddresses getaddrinfo失败 名称或服务未知 0 连接失
  • Apache LOG:子进程 pid xxxx 退出信号分段错误 (11)

    Apache PHP Mysql Linux 注意 子进程 pid 23145 退出信号分段错误 11 tmp 中可能存在 coredump 但 tmp下没有找到任何东西 我怎样才能找到错误 PHP 代码中函数的无限循环导致了此错误
  • 如何回忆上一个 bash 命令的参数?

    Bash 有没有办法回忆上一个命令的参数 我通常这样做vi file c其次是gcc file c Bash 有没有办法回忆上一个命令的参数 您可以使用 or 调用上一个命令的最后一个参数 Also Alt can be used to r
  • 如果输入被重定向则执行操作

    我想知道如果我的输入被重定向 我应该如何在 C 程序中执行操作 例如 假设我有已编译的程序 prog 并且我将输入 input txt 重定向到它 我这样做 prog lt input txt 我如何在代码中检测到这一点 一般来说 您无法判
  • Java时区混乱

    我正在运行 Tomcat 应用程序 并且需要显示一些时间值 不幸的是 时间快到了 还有一个小时的休息时间 我调查了一下 发现我的默认时区被设置为 sun util calendar ZoneInfo id GMT 08 00 offset

随机推荐

  • 【TensorFlow基础】加载和预处理数据

    目录 1 图像 1 1 配置环境 1 2 加载数据集 1 3 数据预处理 1 4 训练模型 2 CSV 2 1 配置环境 2 2 加载数据 2 3 数据预处理 2 4 构建模型 2 5 训练 评估和预测 3 Numpy 3 1 配置环境 3
  • 小米手机 解BL锁

    Beauty provoketh thieves sooner than gold As You Like It 解锁下载官网 解锁方法
  • 报错:ORA-00955:名称已由现有对象使用

    报错 ORA 00955 名称已由现有对象使用 查下名称看看 是不是已经有视图或者表存在 我遇到的是确实存在了 可能已经创建成功了 或者用个不一样的名称
  • MacBook M1 配置 tensorflow开发环境

    MacBook M1 配置 tensorflow开发环境 方法一 提示 目前MacBook M1在安装和配置深度学习的框架tensorflow上由于兼容性的问题存在着很多困扰 本文将给出详细的安装说明 文章目录 MacBook M1 配置
  • XiaoMi NoteBook Pro EFI 黑苹果引导文件

    TM1701 和 TM1707 规格 详细信息 电脑型号 小米笔记本电脑Pro 15 6 MX150 GTX 处理器 英特尔 酷睿 i5 8250U i7 8550U 处理器 内存 8GB 16GB 三星 DDR4 2400MHz 硬盘 三
  • ubuntu安装dlib

    电脑内部环境很多 传统pip无法安装 3 0环境有dlib 最近用2 7的环境 发现没有 好久没装了 试了一些方法并不work 还是用的老指令 conda install c menpo dlib 18 18
  • Word调用ChatGPT

    目录 前言 一 ChatGPT是什么 二 使用步骤 1 申请ChatGPT的API KEY 2 创建宏模块 3 添加工具栏按钮 4 使用此模块的方法 总结 前言 此文章目的是将ChatGPT作为工具在Word中直接使用 以快速生成自己想要的
  • 《计算机网络》(第8版)第三章 数据链路层 知识点总结

    文章目录 1 数据链路层的三个基本问题 1 1 封装成帧 framing 1 2 透明传输 1 3 差错检测 1 3 1 循环冗余检验CRC Cycle Redundancy Check 1 3 2 FCS计算图 2 点到点协议PPP及其透
  • 毕业设计 - 树莓派寝室宿舍门禁刷卡系统 - 物联网 单片机 嵌入式

    文章目录 0 前言 1 前言 2 主要器件 3 实物效果 4 树莓派读取 RC522 RFID 标签 5 mg90s 控制原理 6 最后 0 前言 这两年开始毕业设计和毕业答辩的要求和难度不断提升 传统的毕设题目缺少创新和亮点 往往达不到毕
  • 公司网络故障总结

    公司网络故障总结 Author skate Time 2007 6 8 今天早上一到公司 刚坐下 买的早饭还没吃呢 就有人打电话反映不能上网 我以为是个别机器的问题 但我还是检测一下 查看网络是否畅通 查看结果是不通 于是就要分析原因 要尽
  • Redis基础与高可用集群架构进阶详解

    一 NoSQL简介 1 问题引入 每年到了过年期间 大家都会自觉自发的组织一场活动 叫做春运 以前我们买票都是到火车站排队 后来呢 有了 12306 有了它以后就更方便了 我们可以在网上买票 但是带来的问题 大家也很清楚 春节期间买票进不去
  • 西瓜书作业4.4(基于基尼指数划分决策树,未剪枝/预剪枝/后剪枝)

    文章目录 题目 未减枝 思想 画图 预剪枝 思想 画图 后剪枝 思想 画图 比较总结 参考 全部代码 画图代码 题目 试编程实现基于基尼指数进行划分选择的决策树算法 为表4 2中数据生成预剪枝 后剪枝决策树 并与未剪枝决策树进行比较 牢骚
  • 密码学与网络安全 - 11 密码学Hash函数

    11 密码学Hash函数 Hash函数输入长度可变 而输出长度固定 合格的Hash函数输出应该均匀分布 看起来随机 Hash函数两个要求 1 抗碰撞性 找到两个不同的输入对应相同的输出在计算上不可行 2 单向性 通过Hash值找到输入值在计
  • Vue突然报错 doesn‘t work properly without JavaScript enabled

    突然报错未启用JavaScript 下午演示项目的时候突然给我整了一出JavaScript未启用 当场就把我整尴尬了 然后我怀疑是不是写的路由守卫有问题就注释了再试 发现问题还在 然后经过各种骚操作以后 发现还是报这个js未启用 当场我就不
  • Idea 激活插件IDEA Eval Reset食用

    在setting中的Plugins中点击设置小图标 点击第一个选项 添加远程仓库 2 点击 号 输入 https plugins zhile io 3 搜索 IDEA Eval Reset 安装 4 Help gt Eval Restart
  • 短短半小时 创建自己的个性操作系统

    短短半小时 创建自己的个性操作系统 邹震 大家认为桌面使用比较困难 但是前段时间推出一款Whitefin 而且可以在半小时内自己创建个性操作系统 今天我们采访一下 熊伟 先生 熊伟 先生您好 我们想请您谈一下Whitefin这个的来源 熊伟
  • 分数构造方法java,Java--构造方法

    1 构造方法 类中的特殊方法 主要用于创建并初始化对象 2 特点 构造方法的名称与类名完全相同 没有返回值类型 定义的时候不用写 void 普通方法没有返回值的时候 要写void 创建对象时 触发构造方法的调用 不可以通过句点手动调用 方法
  • Typescript学习——接口

    接口 interface TypeScript 的核心原则之一就是对 值 所具有的结构进行类型检查 而接口的作用就是为这些类型命名或为你的第三方代码定义契约 相当于定义了值的类型 用法 const foo params name strin
  • C语言: 数组指针/指针数组等相关的选择题目

    文章目录 写在前面 形参和实参 二维数组传参 字符数组 二维数组 函数指针数组 参数匹配 多级指针 写在前面 本篇总结的是和指针相关的有难度的选择题 并对这些题进行解析和分析 形参和实参 下面程序的运行结果是什么 include
  • C/S和B/S的区别和优缺点

    一 CS BS架构定义 1 C S Client Server 客户端 服务器结构 C S结构在技术上很成熟 它的主要特点是交互性强 具有安全的存取模式 网络通信量低 响应速度快 利于处理大量数据 因为客户端要负责绝大多数的业务逻辑和UI展