第一章:软件设计架构
更新: 3/17/2025 字数: 0 字 时长: 0 分钟
1.1 概述
C/S 架构
(Client/Server,客户端/服务器)和B/S 架构
(Browser/Server,浏览器/服务器)都属于软件架构
中比较基础和普遍的模式。C/S 架构
(Client/Server,客户端/服务器)和B/S 架构
(Browser/Server,浏览器/服务器)将客户端和服务器分离,通过网络进行数据传输和交互。
1.2 B/S 架构
1.2.1 概述
- B/S 架构,即:浏览器和服务器架构,客户端通过浏览器访问服务器,无需安装额外软件。
NOTE
B/S 架构和 C/S 架构并不是完全独立的,不严谨的说:B/S 架构可以看成客户端是"通用浏览器"的 C/S 架构,C/S 架构则是拥有专属"浏览器"的 B/S 架构。
- 在 B/S 架构中,客户端是一个 Web 浏览器(Chrome、Edge),而服务器则是一个 Web 服务器。用户通过浏览器来访问服务器上托管的 Web 页面,并通过 HTTP/HTTPS 通信协议进行交互,如下所示:
- B/S 架构广泛应用于 Web 应用程序,如:电子商务平台、社交媒体网站、企业门户等。
1.2.2 优点
- ① 用户仅需要一个可用的、兼容的浏览器即可使用该应用程序。
- ② 用户只要熟练使用浏览器即可,无需额外的学习成本。
- ③ 开发者无需提供全新的客户端,可以更快速的开发和维护应用程序。
- ④ 依赖于浏览器的跨平台性,B/S 架构的应用也就具有了跨平台性。
1.2.3 缺点
- ① 受限于浏览器的功能,某些高级和复杂的功能可能难以实现。
- ② 同样受限于浏览器,相比较于 C/S 架构,B/S 架构的应用性能往往更低。
1.3 C/S 架构
1.3.1 概述
- C/S 架构是指客户端和服务器通过网络相连,客户端软件负责用户交互和部分业务逻辑,服务器负责核心业务逻辑和数据存储。
NOTE
B/S 架构和 C/S 架构并不是完全独立的,不严谨的说:B/S 架构可以看成客户端是"通用浏览器"的 C/S 架构,C/S 架构则是拥有专属"浏览器"的 B/S 架构。
- 在 C/S 架构中,客户端和服务器是两个独立的组件,它们通过网络进行通信。客户端通常是用户直接操作的应用程序,而服务器则用于处理客户端的请求和提供相应的服务,如下所示:
- C/S 架构广泛应用于需要专属客户端的应用程序,如:桌面应用程序(QQ、WPS 等)、网络游戏、手机 App 等。
1.3.2 优点
- ① 高度可定制化的、专属的客户端,功能可以十分强大。
- ② 性能强大,效率更高。
1.3.3 缺点
- ① 客户端需要用户单独下载,如果有更新还需要及时下载安装更新。
- ② 专属客户端意味着专属操作,意味着额外的学习成本。
- ③ 专属的客户端意味着跨平台性比较差,可能需要针对不同平台做出不同优化(对于开发者而言,开发的成本高,不便于维护)。
1.4 为什么 C/S 架构的应用程序往往功能更强大,性能更强?
- ①
客户端的计算能力
:C/S 架构中的客户端是一个拥有独立计算能力的独立应用程序。而 B/S 架构中的浏览器,相对于专门的客户端应用程序,其计算能力和功能更受限。 - ②
网络传输的影响
:B/S 架构的数据传输通常基于 HTTP/HTTPS 协议,而 C/S 架构可以使用专门优化的协议进行通信,网络延迟更低,数据传输效率更高。 - ③
资源加载的影响
:一个应用程序程序在运行过程中,总是需要加载一些静态资源的(图片、视频、脚本等)。B/S 架构下,浏览器虽然存在缓存,但依然需要大量从服务器端加载资源,这就带来了性能损耗。而 C/S 架构中的客户端在安装的过程中,就已经将需要的静态资源存在本地了,大多数资源无需从服务端加载。 - ④
一些其他的优化
:B/S 架构受限于通用浏览器的兼容性,难以做个性化优化。而 C/S 架构中的客户端则可以更好的使用底层 API、硬件等进行优化加速。