公告

👇 QQ 👇 --- 👇 赞赏 👇


Skip to content

第一章:软件设计架构

更新: 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 架构

  • 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 架构

  • 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、硬件等进行优化加速。

贡献者

The avatar of contributor named as XingJi-love XingJi-love

页面历史