在IT技术领域,B/S架构和C/S架构是两种常见的软件系统架构模式。
B/S架构
B/S架构(Browser/Server,浏览器/服务器架构)是一种以浏览器作为客户端,服务器作为服务提供端的软件架构模式。在这种架构中,用户通过浏览器向服务器发送请求,服务器处理请求后将结果返回给浏览器进行显示。其基本结构主要由浏览器、Web服务器、应用服务器和数据库服务器组成。浏览器负责呈现用户界面,接收用户输入;Web服务器用于处理HTTP请求,将请求转发给应用服务器;应用服务器执行业务逻辑处理;数据库服务器则负责存储和管理数据。
B/S架构的工作原理是:用户在浏览器中输入网址或点击链接,浏览器根据输入的信息生成HTTP请求,并将请求发送到服务器。服务器接收到请求后,根据请求的内容进行相应的处理,如从数据库中获取数据、执行特定的业务逻辑等。处理完成后,服务器将结果以HTML、CSS、JavaScript等格式组装成网页,再通过HTTP响应发送回浏览器。浏览器接收到响应后,对网页进行解析和渲染,将内容展示给用户。
日常大部分通过浏览器来访问的系统,都是B/S架构的系统。比如,我们在浏览器访问淘宝、京东等网站进行购物,这些网站就是B/S架构的系统。
B/S架构特点如下。
- 易于部署和维护:用户只需通过浏览器访问系统,无需在本地安装专门的客户端软件,方便快捷。对于软件的更新和维护,只需在服务器端进行操作,用户下次访问时即可使用最新版本,大大降低了维护成本。
- 跨平台性强:只要有浏览器和网络连接,用户可以在不同的操作系统和设备上访问系统,如Windows、Mac、Linux以及各种移动设备等,具有很强的兼容性。
- 安全性相对较低:由于所有数据和业务逻辑都在服务器端处理,浏览器与服务器之间的通信可能存在安全风险,如网络攻击、数据泄露等。需要通过加密技术、身份验证等手段来增强安全性。
- 对服务器性能要求较高:大量的用户请求都需要服务器进行处理和响应,当并发用户数较多时,可能会对服务器的性能造成较大压力,需要服务器具备较高的处理能力和可扩展性。

C/S架构
C/S架构(Client/Server,客户端/服务器架构)是一种将软件系统分为客户端和服务器端两部分的架构模式。客户端安装在用户的本地设备上,负责与用户进行交互,收集用户输入并展示服务器返回的结果;服务器端则负责提供数据存储、业务逻辑处理等服务,为客户端提供支持。其基本结构包括客户端应用程序、服务器和数据库。客户端应用程序通过网络与服务器进行通信,服务器与数据库进行数据交互。
C/S架构的工作原理是:客户端应用程序在本地运行,用户通过客户端界面进行操作,客户端根据用户的操作生成请求,并将请求发送到服务器。服务器接收到请求后,进行相应的处理,如查询数据库、执行特定的业务逻辑等。处理完成后,服务器将结果返回给客户端,客户端对结果进行解析和展示,呈现给用户。
日常在手机端大部分通过App访问来使用的系统,都是C/S架构的系统。比如,我们在淘宝App、京东App进行购物,这些App就是C/S架构的中的客户端部分。当我们希望在鸿蒙系统上设计开发一款鸿蒙App的时候,这个App也是客户端。

C/S架构特点如下。
- 性能较好:由于部分业务逻辑和数据处理可以在客户端进行,减少了与服务器的交互次数,因此在处理一些复杂的业务逻辑和大量数据时,性能相对较好,响应速度较快。
- 安全性较高:客户端和服务器之间的通信通常采用专用的协议,相对HTTP等协议更安全。并且数据可以在客户端进行一定的加密处理,提高了数据的安全性。
- 用户体验好:客户端应用程序可以根据用户的操作习惯和需求进行定制化设计,提供更加丰富和流畅的用户界面和交互体验,如本地缓存数据、离线操作等功能。
- 部署和维护成本高:每个客户端都需要安装和配置软件,当软件更新时,需要逐个客户端进行升级,部署和维护工作较为繁琐,成本较高。
- 跨平台性差:通常情况下,客户端应用程序需要针对不同的操作系统进行开发和编译,如Windows客户端、Mac客户端,以及苹果、安卓、鸿蒙等APP,开发和维护的工作量较大,跨平台性不如B/S架构。
B/S架构和C/S架构各有优缺点,在实际应用中,需要根据具体的业务需求、用户群体、技术特点等因素来选择合适的架构模式。
富客户端技术
富客户端技术是一种用于构建富互联网应用(Rich Internet Applications,RIA)的技术,它集成了桌面应用的交互性和传统Web应用的部署灵活性与成本效益,旨在为用户提供更高和更全方位的网络体验。富客户端技术通过提供一个运行时的环境,承载被编译的客户端应用程序,这些应用程序通常是通过HTTP协议发布的文件。
富客户端技术具有如下特点。
- 丰富的用户界面:富客户端应用程序能够提供类似于本地桌面应用的丰富、动态的用户界面。它支持复杂的布局、动画效果、拖放操作、实时数据验证等高级交互特性,使用户操作更加直观和便捷。比如一些富客户端的绘图软件,用户可以像使用本地的专业绘图工具一样,进行自由的图形绘制、编辑和特效添加,具有非常流畅和自然的操作体验。
- 本地处理能力:富客户端具备在本地执行部分计算和数据处理的能力。它可以在客户端设备上缓存数据、执行脚本和业务逻辑,减少与服务器的交互次数,提高响应速度和运行效率。例如,在离线地图应用中,用户可以提前下载地图数据到本地,在没有网络的情况下依然能够进行地图浏览、路径规划等操作,这些计算和处理都在本地完成。
- 异步数据交互:富客户端采用异步数据传输技术,允许在不刷新整个页面的情况下与服务器进行数据交互。这使得用户在进行数据提交、查询等操作时,页面能够保持当前状态,不会出现整体刷新导致的页面闪烁和中断,提高了用户体验的连贯性。比如在在线表单填写应用中,用户可以实时提交表单数据进行验证,而无需刷新整个页面,验证结果会即时反馈给用户。
- 跨平台兼容性:通过使用一些跨平台的技术框架,富客户端应用可以在不同的操作系统和设备上运行,具有较好的跨平台性。例如,基于HTML5、JavaScript和CSS等技术开发的富客户端应用,可以在Windows、Mac、Linux以及各种移动设备的浏览器中运行,无需为每个平台单独开发。
在B/S架构中,富客户端技术的实现方式有以下几种。
- HTML5技术:HTML5为富客户端应用提供了丰富的功能支持,如Canvas绘图、本地存储、Web Workers多线程处理等。通过Canvas可以实现复杂的图形绘制和动画效果;本地存储可以将大量数据存储在客户端本地,方便离线访问;Web Workers则允许在后台执行脚本,不影响页面的交互响应。
- JavaScript框架:像Angular、React、Vue.js等JavaScript框架,为构建富客户端应用提供了强大的工具和架构支持。它们采用组件化、数据驱动的开发模式,使得开发人员能够更高效地创建复杂的用户界面和交互逻辑,提高代码的可维护性和可扩展性。
- Flash技术:虽然Flash的应用逐渐减少,但在过去,它是实现富客户端应用的重要技术之一。Flash能够提供丰富的多媒体展示和交互功能,常用于制作动画、游戏、在线视频播放器等富客户端应用。
- Microsoft Silverlight:是一种融合了微软的多种技术的Web呈现技术。它提供了一套开发框架,并通过使用基于向量的图像图层技术,支持任何尺寸图像的无缝整合。Silverlight使开发设计人员能够更好的协作,有效地创造出能在Windows和Macintosh上多种浏览器中运行的内容丰富、界面绚丽的Web应用程序。简而言之,Silverlight是一个跨浏览器、跨平台的插件,为网络带来下一代基于
.NET媒体体验,和丰富的交互式应用程序。由于HTML5技术比较成熟了,导致微软在2021年已经停止支持Silverlight,官方网站时也不再提供下载。 - JavaFX:JavaFX是一种用于构建富客户端应用的Java技术框架,它提供了丰富的图形界面组件和动画效果,能够开发出功能强大、界面美观的跨平台应用程序,适用于开发各种类型的桌面应用和企业级应用。
富客户端技术的应用场景如下。
- 在线办公软件:如Google Docs、腾讯文档等,用户可以在浏览器中进行文档编辑、表格制作、幻灯片演示等操作,具有与本地办公软件相似的功能和操作体验,同时还能实时保存和共享文档。
- 在线游戏:许多网页游戏采用富客户端技术,能够在浏览器中呈现出精美的游戏画面和流畅的游戏操作,用户无需下载庞大的游戏客户端,通过浏览器即可快速启动游戏。
- 企业级应用:在企业内部的管理系统、客户关系管理(CRM)系统、项目管理系统等应用中,富客户端技术可以提供丰富的交互功能和高效的数据处理能力,满足企业用户复杂的业务需求。
参考引用
加入鸿蒙生态,共建万物互联。以下是鸿蒙应用开发常用教程。
- 《跟老卫学HarmonyOS开发》开源免费教程, https://github.com/waylau/harmonyos-tutorial
- 《跟老卫学AI大模型开发》开源免费教程, https://github.com/waylau/ai-large-model-tutorial/
- 《跟老卫学仓颉编程语言开发》开源免费教程, https://github.com/waylau/cangjie-programming-language-tutorial
- 《鸿蒙HarmonyOS手机应用开发实战》(清华大学出版社)
- 《鸿蒙HarmonyOS应用开发入门》(清华大学出版社)
- “鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”(https://coding.imooc.com/class/843.html)
- 《鸿蒙HarmonyOS应用开发从入门到精通(第2版)》(北京大学出版社)
- 《鸿蒙之光HarmonyOS NEXT原生应用开发入门》(清华大学出版社)
- “HarmonyOS NEXT+AI大模型打造智能助手APP(仓颉版)”(https://coding.imooc.com/class/927.html)
- “HarmonyOS 6 AI应用开发”(https://edu.51cto.com/course/39601.html)
- 《仓颉编程从入门到实践》(北京大学出版社)
- 《鸿蒙之光HarmonyOS 6应用开发入门》(清华大学出版社)
- 《鸿蒙架构师修炼之道》(北京大学出版社)
