背景:
这两天看了一个视频,介绍什么是C/S,什么是B/S,总觉得很奇怪。里面说到只要是app的,都是client-server,而网页端,如h5网站,web网站,小程序等都是brower-server架构。感觉这种划分非常“反直觉”,因为现在的软件都是多端,连接在“同一个”服务器下为使用者提供网络服务,对于服务端开发来说都是无感知的。那么,C/S,B/S究竟是什么,以及什么样的关系呢?
先说结论:
B/S属于C/S,B/S甚至是一种“伪概念”,而是专指客户端程序是浏览器的访问模式。
一、错误认知的来源
搜遍中文互联网,对于c/s,b/s的解释,可以归结于下图:
https://baike.baidu.com/item/B/S结构/4868588
图中所列的对比应该是来源于一下两篇论文:
原文:https://wenku.baidu.com/view/3b96732fbdd5b9f3f90f76c66137ee06eff94eea.html
原文:https://www.docin.com/p-1208584967.html
主要看第一篇论文。论文的第一部分介绍“单机程序”,发现几乎跟第二部分"c/s架构“的优缺点是一致的,感觉第一部分之所以简短是因为作者也解释不清楚”单机程序“与”c/s架构“的区别。我们通过对号入座的方式带入我们平时接触到的联网应用,似乎都更接近于B/S, 即便是app应用,都符合B/S的特征,除了“用户接口”这一条。
除了这两篇论文是最早分析B/S,C/S框架的,其他的并没有搜索到。然后百度or谷歌相关关键字,基本上都是复用以上论文总结的逻辑。
更有甚者,直接说“需要安装app的就是C/S架构,使用浏览器的,就是B/S架构”。
二、应该的定义
在互联网还没有开发以前,计算机主要是“单机”类的软硬件系统,用户所有的应用、数据、操作只能通过单台计算机来计算,给出结果;但是,出现网络以后,一切变得不同了,以前单台计算机可以通过网络组合成能力更强的计算机,而且,物理上也可以分布在不同的区域,或者机房;随着广域互联网的发展,现在的计算机可以链接世界上任意的计算机来请求对应的服务。这个时候,服务的提供者,就是所谓的“server”,服务的使用者就是“client”。
(互联网发展史:https://zhuanlan.zhihu.com/p/150417958)
在当前社会实践中,我们终端客户被称为“客户端”,服务提供者被称为“服务器”(当然,在分布式服务器上,服务器也扮演着客户端的角色,你中有我,我中有你),直观的感受就是服务器是用来存储数据相关的内容,并且处理一些关联的业务逻辑,客户端则负责给用户提供交互体验。
此时,我们称之为”C/S“架构,也就是说客户端关注于交互,服务器关注于数据,两者都是互联网(或者局域网)上面的一个节点。
定义:
Client-server model is adistributed application structure that partitions tasks or workloads between the providers of a resource or service, called servers
, and service requesters, called clients
三、后话
之所以应该是最开始论文作者没有在写的时候,存粹是为了凑字数,还有自己闭门造车的理解,生生的将B/S剥离了出来。以至于后面以讹传讹,大家都这样公式化的记忆。
”请说下B/S 与 C/S的区别“
"客户端不同而已”
参考:
问答:
client/server and browser/server
https://stackoverflow.com/questions/5044879/client-server-and-browser-server
百度百科
https://baike.baidu.com/item/B/S结构/4868588
Client–server model
https://en.wikipedia.ahnu.cf/wiki/Client–server_model
Difference Between Web Server and Application Server
http://www.differencebetween.net/technology/difference-between-web-server-and-application-server/
What is Client Server Architecture?
https://intellipaat.com/blog/what-is-client-server-architecture/
what-is-client-server-architecture
https://www.w3schools.in/what-is-client-server-architecture
client/server and browser/server
https://stackoverflow.com/questions/5044879/client-server-and-browser-server
Client/Server Architecture
https://www.techopedia.com/definition/438/clientserver-architecture
An Ontology for Classifying Advanced Visualization Infrastructures
https://www.researchgate.net/publication/274316320_An_Ontology_for_Classifying_Advanced_Visualization_Infrastructures
New way of doing business set to emerge - new 'browser-server' architecture -Internet/Web/Online Service Information
https://www.georgeschussel.com/wp-content/uploads/articles/OM6720050524_browser-server architecture.pdf
https://www.georgeschussel.com/portfolio/the-new-browser-server-architecture/#:~:text=A new architecture that might be called browser-server,executive of Digital Consulting Inc. in Andover%2C Mass.
Difference Between Client Server Application and Web Application
Read more: Difference Between Client Server Application and Web Application | Difference Between http://www.differencebetween.net/technology/software-technology/difference-between-client-server-application-and-web-application/#ixzz7gdFNs1gA
history-of-the-client-server-architecture-information-technology-essay.php#citethis
https://www.ukessays.com/essays/information-technology/history-of-the-client-server-architecture-information-technology-essay.php#citethis
The client/server model
https://www.ibm.com/docs/en/txseries/8.1.0?topic=computing-clientserver-model