网络应用层架构一般分为两层架构、三层架构、N层架构。其中B/S架构、C/S架构是两层架构的代表。

一、C/S架构

C/S架构是Client/Server的缩写,翻译过来就是“客户端/服务器”。

C/S架构的业务逻辑主要集中在客户端,而这里的“服务器”,其实可以认为是数据库服务器,因为除了提供基础的数据库服务外,服务器并没有其他的功能。常用于开发应用软件(application software),也就是QQ、网易云音乐之类的。

优点:

充分发挥客户端计算机处理能力,客户端能将用户请求处理后再提交给服务器,将用户请求处理之后再提交给服务器;将服务器提供的数据处理后再以某种方式显示给客户,所以客户端的响应速度较快、网络通信量低。其次,开发人员在开发单片机应用程序的过程中积累了大量可借鉴的经验,加之有高效的开发工具支持,所以开发效率很高

缺点:

因为业务逻辑处理主要集中在客户端,所以应用需求只要发生变化,即业务逻辑发生改变,就必须对客户端和服务器端的应用程序都进行修改。服务器端应用程序修改比较容易,主要是服务器数量少,而且涉及数据储存,改动量较小。但是,新的客户端应用程序需要重新分发给所有的用户,工作量大。而且,开发客户端往往是针对某一操作系统编写的。如适用于Windows操作系统的软件,通常不适用于Linux,而且就算都是Windows系统,Windows xp下能运行,但在Windows10下就未必了。基于以上原因,在C/S架构的基础上又产生了B/S架构。

二、B/S架构

B/S架构是Browser/Server的缩写,翻译过来就是“浏览器/服务器”。

B/S架构的业务逻辑和数据操作都集中在服务器端 ,而这里的“服务器”,其实可以认为是既包含应用服务器,也包含数据服务器,对客户端进行统一,用户只需要安装一个浏览器(Browser)。

优点:

B/S架构解决了C/S架构存在部分问题,首先没有客户端的差异,用户只需要安装浏览器,无须另外安装客户端。如果应用的业务逻辑发生变化,只需要更新服务端的应用程序就可以了。其次,客户端将不受到操作系统的限制,目前主流的浏览器往往在多种操作系统下都有对应的版本可供使用。

缺点:

增加了服务器端的负担,因为业务逻辑集中在服务器端,服务器需要对不同用户的多次请求斗做出响应,同时又要对数据库进行维护,工作量较大。

注:部分内容参考于 清华大学出版社 -《Java Web开发基础——从Servlet 到 JSP》

网络应用程序的架构:C/S架构、B/S架构的区别与优缺点相关推荐

  1. 网络应用程序设计模式:浅谈CS架构与BS架构

    CS架构与BS架构的区别 应用程序 单机程序 网络应用程序 网络应用程序设计模式 CS架构 CS架构优缺点 BS架构 BS架构优缺点 应用程序 应用程序是指为了完成特定任务而被开发运行于操作系统之上的 ...

  2. Java程序猿如何从码农晋升为架构师

    一.架构师的定义 首先必须具有丰富的软件设计与开发经验,这有助于理解并解释所进行的设计是如何映射到实现中去. 其次要具有领导能力与团队协作技能,软件架构师必须是一个得到承认的技术领导,能在关键时候对技 ...

  3. Java程序员如何从码农晋升为架构师,你跟架构师的差别在哪里?

    一.如何定义架构师 Java架构师,首先要是一个Java程序员,熟练使用各种框架,并知道它们实现的原理.jvm虚拟机原理.调优,懂得jvm能让你写出性能更好的代码;池技术,什么对象池,怎么解决并发量. ...

  4. 如何从三流程序员成长为一名年薪50W的架构师(文末附送学习资料)

    成为架构师是绝大部分程序员的梦想,当然不敢说绝对,因为一部分程序员想转行搬砖还有一部分想往管理层发展.可是像我们这样有这良好的职业操守的程序员怎么可能三心二意呢,自己选的编程跪着也要把代码敲完.想要成 ...

  5. 程序员过关斩将--从未停止过的系统架构设计步伐

    " 首先,这篇文章肯定会得罪一些人 " 其次,此文只代表我个人的意见,仅供参考 从分层说起 谈到系统架构的分层和系统领域边界的划分,每个架构师,每个技术经理,甚至每个程序员都有自己 ...

  6. 飞龙的程序员书单 – 思想、工程、架构、职业发展

    思想 编程珠玑 编程珠玑,字字珠玑.这本书并不单纯讲解算法,而是由一系列实际问题切入,引导读者理解这些问题并学会解决方法,使用现有的算法,或者程序设计技巧解决问题.本书的特色是通过一些精心设计的有趣而 ...

  7. 程序员,练就哪些技能才胜任架构师?

    关注「 IT老兵哥 」,赋能程序人生!本系列前序文章索引: 程序员为什么必须要懂架构? 架构到底是什么,你知道吗? 架构都有哪些,我该怎么选? 架构师都干什么,你知道吗? 架构师,我们程序员打怪升级的 ...

  8. 2019测试指南-web应用程序安全测试(二)地图应用架构

    2019独角兽企业重金招聘Python工程师标准>>> 互连和异构Web服务器基础架构的复杂性可包括数百个Web应用程序,并使配置管理和审查成为测试和部署每个应用程序的基本步骤.实际 ...

  9. 基于MINA框架快速开发网络应用程序

    1.MINA框架简介  MINA(Multipurpose Infrastructure for Network Applications)是用于开发高性能和高可用性的网络应用程序的基础框架.通过使用 ...

  10. 使用 Apache MINA 开发高性能网络应用程序

    http://www.ibm.com/developerworks/cn/opensource/os-cn-apmina/ Apache MINA(Multipurpose Infrastructur ...

最新文章

  1. 柚子的collection
  2. pppoe 服务器 无线,无线路由器怎么设置PPPOE拨号【图文讲解】
  3. python:dataframe groupby后agg、apply、transfrom用法
  4. 常见文件、目录、路径操作函数
  5. HDU4311(排序+二分)
  6. 这样的递归调用,你看出来了?
  7. vscode 显示分支_Git以及vscode里的使用
  8. myeclipse中对jar包中的类热部署调试方法介绍
  9. Numpy的使用(3)
  10. 一个树杈y图片_鬼脸纹:黄花梨树上一个树杈,反映到主干上时,会形成一个疖痕...
  11. c#文件分割与合并 part 1 (转自互联网)
  12. 自定mvc之新增,下架以及上架
  13. 马斯克在推特说特斯拉股价太高导致大跌 会被罚吗
  14. ABC类IP地址划分_wuli大世界_新浪博客
  15. 微信小程序搜索php,如何解决微信小程序没有模糊搜索功能
  16. 一代爱国电脑天才,郭盛华的传奇一生
  17. HashMap源码总结
  18. linux 五防实时模式与开票模式
  19. linux centos amd显卡驱动,【14-12-04】 【分享】关于CentOS 7联想电脑AMD显卡驱动的问题...
  20. Linux内核Adaptive-RED实现

热门文章

  1. IntelRealsense升级摄像头的固件版本方法
  2. OpenGL学习书籍推荐
  3. J - Architect of Your Own Fortune -hah-first blood -二分图.
  4. 安卓java 模拟直装_安卓2.3java模拟器下载
  5. “秃“如其来的植发经济是一门好生意吗?
  6. 第一周学习报告(关于string)
  7. RabbitMQ(一) | MQ技术对比,以及对RabbitMQ五种消息模型的使用
  8. excel与access结合运用_如何在EXCEL与ACCESS之间建立关联
  9. Blue Coat 2.8亿美元收购云安全创业企业Elastica
  10. GAMMA初学笔记二