1、
C/S(Client/Server):客户端--服务器结构
因为客户端要负责绝大多数的业务逻辑和UI展示,又称为胖客户端
C/S 架构是一种典型的两层架构,其客户端包含一个或多个在用户的电脑上运行的程序,而服务器端有两种,一种是数据库服务器端 ,客户端通过数据库连接访问服务器端的数据;另一种是Socket服务器端,服务器端的程序通过Socket与客户端的程序通信。
B/S(Browser/Server):**浏览器----服务器结构,**是目前应用系统的发展方向。BS是伴随着Internet技术的兴起,对C/S架构的改进,为了区别于传统的C/S 模式,特意称为B/S模式。
通过W3浏览器来进入工作界面,极少部分事务逻辑在前端(Browser)实现,主要事务逻辑在服务器端(Server)实现,形成三层(3-tier)结构。这样使得客户端电脑负荷大大简化(因此被称为瘦客户端)
现在 C/S 和 B/S 仍然都在用。 你常听到的"前后端分离""微服务",描述的是系统的其他方面,可以和 C/S、B/S 同时成立。
一个常见的系统可以这样设计:
这些概念分别表示:
| 概念 | 主要说什么 | 例子 |
|---|---|---|
| B/S | 用户通过浏览器访问 | 你填写培养计划的网站 |
| C/S | 用户通过专门的客户端访问 | 安装到手机上的联网 App |
| 前后端分离 | 前端实现页面和交互,后端提供业务接口,两边交换数据 | 网页请求后端,后端返回数据,网页更新显示 |
| 单体架构 | 后端的多个业务模块放在一个应用里部署 | 用户管理、课程管理、成绩管理放在同一个 Java 项目中 |
| 微服务架构 | 后端按业务拆成多个可独立部署的服务 | 用户服务、课程服务、成绩服务分别部署 |
浏览器可以通过 JavaScript 请求接口、动态更新页面;后端既可以返回数据,也可以直接生成网页。MDN:客户端与服务器交互 单体和微服务则需要结合系统复杂度选择,微服务会增加部署和维护成本。微软:常见 Web 应用架构
"C/S 固定两层、B/S 固定三层"的说法过于绝对。 两者都可以采用多层设计,而且"软件分几层"和"部署几台服务器"也不是一回事。微软:多层架构说明