一、概念说明

  C/S(Client/Server(客服机/服务器))架构:客户端/服务器架构。通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,需要安装客服端才可进行管理操作。

  B/S(Browser/Server(浏览器/服务器))架构:是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓3-tier结构。由于客户端基本上没有专门的应用程序,应用程序基本上都在服务器端。由于客户端没有程序,应用程序的升级和维护都可以在服务器端完成,升级维护方便。

二、两者的区别与联系

  C/S 架构即“客户端-服务器” 架构。这里的“客户端”可以是有 GUI (图形用户界面)的定制软件,也可以是浏览器,甚至可以是通过 SSH 访问服务器的命令行脚本。只要是客户端通过访问服务器直接调取计算或者存储资源的,统统都是 C/S 架构,不能单纯的从APP或者网站进行区别,即所谓的 B/S架构其实是 C/S 架构的一种特殊的实现形式。

  网络上从硬件、网络、维护、数据安全等方面对两者的区别分析如下:

  1.网络环境
    Client/Server是建立在局域网的基础上的.Browser/Server是建立在广域网的基础上的.
  2.硬件环境不同:
    C/S 一般建立在专用的网络上,小范围里的网络环境,局域网之间再通过专门服务器提供连接和数据交换服务.
    B/S 建立在广域网之上的,不必是专门的网络硬件环境,例与电话上网,租用设备.信息自己管理.有比C/S更强的适应范围,一般只要有操作系统和浏览器就行 
   对安全要求不同 
    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等信息、流向的变化,更象交易中心
 
 
  个人理解:
  BS架构:支持很多人访问(甚至包括陌生人,游客等),收到需求时直接从服务器获取数据回应,不需要信息的实时性,只在请求发生时进行响应,但数据需要长期有效性。B/S最大优势为客户端免维护,适用于用户群庞大,或客户需求经长发生变化的情况.
  CS架构:信息有着一对一,点对点的转发,单线传输,实时转发的特性的,服务器只做转发功能,大量的工作在客户端,可以减轻服务器端压力,如果用户的需求特别复杂,用C/S.

 

C/S,B/S的区别的更多相关文章

  1. c#与java的区别

    经常有人问这种问题,用了些时间java之后,发现这俩玩意除了一小部分壳子长的还有能稍微凑合上,基本上没什么相似之处,可以说也就是马甲层面上的相似吧,还是比较短的马甲... 一般C#多用于业务系统的开发 ...

  2. jquery和Js的区别和基础操作

    jqery的语法和js的语法一样,算是把js升级了一下,这两种语法可以一起使用,只不过是用jqery更加方便 一个页面想要使用jqery的话,先要引入一下jqery包,jqery包从网上下一个就可以, ...

  3. 【原】nodejs全局安装和本地安装的区别

    来微信支付有2年多了,从2年前的互联网模式转变为O2O模式,主要的场景是跟线下的商户去打交道,不像以往的互联网模式,有产品经理提需求,我们帮忙去解决问题. 转型后是这样的,团队成员更多需要去寻找业务的 ...

  4. 探究@property申明对象属性时copy与strong的区别

    一.问题来源 一直没有搞清楚NSString.NSArray.NSDictionary--属性描述关键字copy和strong的区别,看别人的项目中属性定义有的用copy,有的用strong.自己在开 ...

  5. X86和X86_64和X64有什么区别?

    x86是指intel的开发的一种32位指令集,从386开始时代开始的,一直沿用至今,是一种cisc指令集,所有intel早期的cpu,amd早期的cpu都支持这种指令集,ntel官方文档里面称为&qu ...

  6. Java中Comparable与Comparator的区别

    相同 Comparable和Comparator都是用来实现对象的比较.排序 要想对象比较.排序,都需要实现Comparable或Comparator接口 Comparable和Comparator都 ...

  7. MySQL中interactive_timeout和wait_timeout的区别

    在用mysql客户端对数据库进行操作时,打开终端窗口,如果一段时间没有操作,再次操作时,常常会报如下错误: ERROR (HY000): Lost connection to MySQL server ...

  8. 设置line-height:1.5和line-height:150%或者line-height:150px的区别

    直接正题: 看一下line-height可能的值: 其实可以分为两类: (1)不带单位的(如line-height:1.5),这种是推荐使用的: (2)带单位的(如line-heigth:30px/1 ...

  9. C#中Length和Count的区别(个人观点)

    这篇文章将会很短...短到比你的JJ还短,当然开玩笑了.网上有说过Length和count的区别,都是很含糊的,我没有发现有 文章说得比较透彻的,所以,虽然这篇文章很短,我还是希望能留在首页,听听大家 ...

  10. select、poll、epoll之间的区别总结

    select.poll.epoll之间的区别总结 05/05. 2014 select,poll,epoll都是IO多路复用的机制.I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪 ...

随机推荐

  1. 每天一个linux命令(4):mkdir

    1.命令简介 mkdir (Make Directory 创建目录): 若指定目录不存在则创建目录.在创建目录时,要求创建目录的用户具有写权限,并应保证新建的目录没有重名. 2.用法 用法:mkdir ...

  2. Python性能分析

    Python性能分析 https://www.cnblogs.com/lrysjtu/p/5651816.html https://www.cnblogs.com/cbscan/articles/33 ...

  3. Xilinx的ISE14.7和PlanAhead与win10系统的兼容性问题解决方案

    Xilinx的ISE14.7和PlanAhead与win10系统的兼容性问题解决方案 2018年07月03日 18:27:57 feq123 阅读数:4495   今天在新电脑的win10系统上安装I ...

  4. Linux下源码安装xz的方法

    xz是一个不太常见但又效率非常高的解压缩软件,安装方法如下 ,cd /usr/local/src ,wget https://tukaani.org/xz/xz-5.2.3.tar.gz //下载到/ ...

  5. 双网卡双线路DNS解析分析

    在企业网络维护过程中我们经常会遇到这样或那样的奇怪问题,而很多问题需要有深厚的理论知识才能解决.而随着网络的飞速发展越来越多的中小企业开始尝试通过多条线路来保证网络的畅通,一方面双网卡下的双线接入可以 ...

  6. [转]论SOA架构的几种主要开发方式

    面向服务架构soa以其独特的优势越来越受到企业的重视,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署.组合和使用.服务层是SOA的基础,可以直接被应用调用,从而有效控制系统中与软件代理 ...

  7. 强化学习-Q-Learning算法

    1. 前言 Q-Learning算法也是时序差分算法的一种,和我们前面介绍的SARAS不同的是,SARSA算法遵从了交互序列,根据当前的真实行动进行价值估计:Q-Learning算法没有遵循交互序列, ...

  8. Linux iptables原理和使用

    1.原理 iptables简介 netfilter/iptables(简称为iptables)组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以代替昂贵 ...

  9. Mysql获取最大自增ID(auto_increment)的五种方式及其特点

    在关系型数据库的表结构中,一般情况下,都会定义一个具有‘AUTO_INCREMENT’扩展属性的‘ID’字段,以确保数据表的每一条记录都有一个唯一标识. 而实际应用中,获取到最近最大的ID值是必修课之 ...

  10. 危险代码:如何使用Unsafe操作内存中的Java类和对象

    危险代码:如何使用Unsafe操作内存中的Java类和对象—Part1 危险代码:如何使用Unsafe操作内存中的Java类和对象—Part2 危险代码:如何使用Unsafe操作内存中的Java类和对 ...