基础:BS(Browser/Server)、CS(Client/Server)架构
一、BS(Browser/Server)
所有浏览器应用都是BS架构。
BS(Browser/Server):浏览器 / 服务器结构。BS是伴随着Internet技术的兴起,对C/S架构的改进,为了区别于传统的C/S 模式,特意称为B/S模式。在这种结构下,通过浏览器来进入工作界面,页面交互部分事务逻辑在前端(Browser)实现,数据逻辑在服务器端(Server)实现。
BS的主要特点是分布性强、维护方便、开发较简单且共享性强、总体拥有成本较低。它是瘦客户端,对大量的数据输入以及报表的应答等都需要通过浏览器与服务器进行交互,通信开销大,而且对于实现复杂的应用构造有较大的困难。
BS架构三层框架:将整个业务应用划分为“表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)”。
常见浏览器:chrome、Firefox、operate、safari、360、腾讯等
二、CS(Client/Server)
CS(Client/Server):客户端 / 服务器结构。C/S结构在技术上很成熟,它的主要特点是交互性强、具有安全的存取模式、网络通信量低、响应速度快、利于处理大量数据。它充分利用两端硬件,将任务分配到Client 和Server两端,降低了系统的通讯开销。C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件。
C/S 架构是一种典型的两层架构,其客户端包含一个或多个在用户的电脑上运行的程序,而服务器端有两种,一种是数据库服务器端,客户端通过数据库连接访问服务器端的数据;另一种是Socket服务器端,服务器端的程序通过Socket与客户端的程序通信。
开发技术:C、C++、Electron
CS架构平台:windows、Android、iOS、Harmony
BS、CS对比:
BS | CS | |
程序架构不同 | BS对安全以及访问速度的多重考虑建立在需要更加优化的基础之上,比CS有更高的要求。 | CS程序可以更加注重流程可以对权限多层次校验,对系统运行速度可以较少考虑。 |
处理问题不同 | BS建立在广域网上,面向不同的用户群,分散地域,与操作系统关系小,可实现跨平台。 | CS安全性较高,与操作系统关系大,不能跨平台。 |
用户接口不同 | BS建立在浏览器上,不管是电脑浏览器,还是手机浏览器,不管是什么系统 | Windows、Mac、Linux、Android、iOS、Harmony |
获取方式不同 | 打开浏览器,直接访问。 | 在应用商店下载应用,或通过U盘安装程序等。 |
电脑配置 | 对电脑配置要求较低 | 对电脑配置要求较高 |
共享性 | 用户传播方便,共享性好 | 应用商店下载也很方便 |
开发维护 | 开发维护较易 | 开发维护较BS要求高 |
开发成本 | 较低 | 较高 |
开发技术 |
HTML、CSS、JS |
C、C++、Rust、Electron、java、swift、objective-c、dart |
发版方式 | 服务器部署,直接访问 | 提交应用平台审核,审核通过后发布 |
开发兼容性 | 兼容不同内核浏览器 | 不同操作系统、同操作系统不同版本可能需要从头开发,同操作系统不同设备可能需要兼容差别 |
对硬件的调用 | 不便 | 方便 |
获取用户设备信息 | 不便 | 方便 |
程序员数量 | 多 | 也很多 |
用户体验 | 优秀,随着ajax技术的使用,用户体验越来越好 | 优秀 |
不适用 | 类型大型网络游戏,如,王者荣耀,反正我看见过网页版,我不玩游戏 | 适用重型项目 |
市场占有率 | 繁荣 | 繁荣 |
应用迁移 | 方便 | 不便,需要重新安装 |
易维护性 | 较易 | 相对较高 |
BS与CS的联系
现在可以使用electron开发客户端,Electron的语法与vue相似度较高,
移动端现在flutter也是一个趋势,市场上使用的公司已经较多,
React Native使用也很多,
还有微信生态,
不管是BS还是CS逐渐都是大前端开发了。
参考链接:
【漫画编程】漫画带你一分钟了解BS与CS架构_哔哩哔哩_bilibili
BS架构和CS架构的优缺点_「已注销」的博客-CSDN博客_cs结构和bs结构优缺点
项目开发常识:CS架构和BS架构、API与SDK 、DOM结构 - 泰初 - 博客园
系统开发中BS和CS的优劣势 - 知乎
cs和bs架构的区别有哪些?-常见问题-PHP中文网
BS架构和CS架构的优缺点_「已注销」的博客-CSDN博客_cs结构和bs结构优缺点
CS和BS 到底是什么_test45656的博客-CSDN博客_cs和bs
基础:BS(Browser/Server)、CS(Client/Server)架构相关推荐
- Client/Server 和 Browser/Server 模式的区别
客户端/服务器模式:设备(客户端)的软件和服务器上的软件进行通信,设备上的软件和服务器上的软件必须匹配,而且只有某些设备和操作系统才支持. 浏览器/服务器模式:在任何含有Internet浏览器的设备( ...
- BS(Brower/Server)浏览器/服务器 和 C/S (Client/Server)客户端/服务器 的区别
1,B/S是Brower/Server的缩写,客户机上只要安装一个浏览器(Browser),如Internet Explorer或Netscape Navigator,服务器安装Oracle.Syba ...
- 【Python 基础】网络编程 - Python写一个简单的HTTP服务端和客户端,实现Client/Server交互
1.HTTP 首先讲一下http和https,详细可以去看runoob http-vs-https 基本概念 HTTP(HyperText Transfer Protocol:超文本传输协议)是一种用 ...
- java黑盒白盒测试及Client/Server结构
1. B/S和C/S架构各自的优势和劣势? C/S结构,即Client/Server(客户机/服务器)结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,可充分利用两 ...
- 搭建Apache Mina框架并实现Server与Client端的简单消息传递
http://www.himigame.com/apache-mina/831.html :(作者新浪微博: @李华明Himi ) 转载自[黑米GameDev街区] 原文链接: http://www. ...
- Mina框架并实现Server与Client端的简单消息传递!
Hibernate系列学习阶段到此结束了,那么紧接着进入Apache Mina的开发学习,很多童鞋在微薄和QQ中疑问Himi为什么突然脱离游戏开发了,嘿嘿,其实可能更多的童鞋已经看出来了,Himi在偏 ...
- 【Apache Mina2.0开发之一】搭建Apache Mina框架并实现Server与Client端消息传递
Hibernate系列学习阶段到此结束了,那么紧接着进入Apache Mina的开发学习,很多童鞋在微薄和QQ中疑问Himi为什么突然脱离游戏开发了,嘿嘿,其实可能更多的童鞋已经看出来了,Himi在偏 ...
- 【Apache Mina2.0开发之一】搭建Apache Mina框架并实现Server与Client端的简单消息传递!
Hibernate系列学习阶段到此结束了,那么紧接着进入Apache Mina的开发学习,很多童鞋在微薄和QQ中疑问Himi为什么突然脱离游戏开发了,嘿嘿,其实可能更多的童鞋已经看出来了,Himi在偏 ...
- JVM Server与Client运行模式
为什么80%的码农都做不了架构师?>>> JVM Server模式与client模式启动,最主要的差别在于:-Server模式启动时,速度较慢,但是一旦运行起来后,性能将会有很 ...
最新文章
- 科普| 越来越火的图数据库究竟是什么?
- 使最新版Code::Blocks支持C++11标准
- LIVE预告 | 哈佛大学CS博士徐莉莉:用博弈论保护野生动物
- Linux下C语言的调试--转
- 在C++的类中封装多线程
- boost::mp11::mp_assign相关用法的测试程序
- 大话数据结构 01 :顺序线性表
- C++设计模式-代理模式
- 【图说】Eclipse与Unity 3D协同工作
- 使用zlib库实现gzip格式压缩
- 滴滴柳青探望被害司机家属;支付宝信用卡还款收费;ofo 查处 8 起贪腐案件 | 极客头条...
- socket是什么?
- 【java面试题】equals()方法和==的比较区别?
- python数字图像处理(10):图像简单滤波
- c 语言程序设计(清华大学郑莉),清华大学 C++程序设计语言 45 郑莉 视频教程
- 【车标识别】基于SIFT算子的车标识别算法matlab仿真
- 私人助手android,私人助手Pro专业版
- 每个程序员都应该阅读的10本数据结构和算法书籍
- 转 OpenGL核心技术之帧缓冲
- Win7 不支持此接口问题
热门文章
- 干货— 90后小伙如何用群控系统推广自己产品赚50万!
- WinDbg调试dmp(查找问题的异常堆栈时出现的 UnhandledExceptionFilter 调用堆栈跟踪中和其他技巧)
- buuctf还原大师解题思路
- C语言数字与字母拼接,c语言 字符串的拼接和分割实例
- C++语言程序设计(第四版)清华大学 郑莉 实验6实习报告
- LIS3DH的初步探索
- 关于机器人状态估计8-VSLAM工程与VIO工程难点
- 常用生物信息学格式介绍(fasta、fastq、gff2、gtf(gff2.5)、gff3、bed、sam、bam、vcf)
- Deepdive原理
- 大整数乘法(递归+分治法)