判断一个产品属于 B/S 还是 C/S 架构,关键看客户端是否需要安装独立的本地程序,而非功能形态。具体逻辑如下:
- 定义:通过浏览器访问的网页(如 Chrome 打开淘宝官网)。
- 核心特征:
- 无需安装任何本地程序,浏览器(如 Safari、Edge)是标准客户端。
- 所有逻辑在服务器端运行,前端通过 HTML/CSS/JS 渲染页面(如网页版微信)。
- 结论:纯网页属于 B/S 架构,本质是 “浏览器 + 服务器” 的模式。
App 的架构归属取决于其技术实现方式,分为三种类型:
- 示例:手机上安装的微信 App、支付宝 App。
- 技术特点:
- 必须下载安装包(.apk/.ipa)到本地,属于 “专用客户端软件”。
- 可调用手机硬件(摄像头、传感器),本地处理部分逻辑(如缓存聊天记录)。
- 架构归属:C/S 架构,因为存在 “客户端(App)+ 服务器” 的两层模型。
- 示例:部分企业内部 App(如 OA 系统 App)、某些新闻类 App。
- 技术特点:
- 外层是原生 App 外壳(需安装),内核是网页容器(如嵌入 Chromium 内核)。
- 核心功能通过网页加载(如点击 App 内某个按钮跳转至网页),类似 “C/S 包装的 B/S”。
- 架构归属:整体属于 C/S 架构,因为需要安装客户端,但部分功能采用 B/S 逻辑。
- 示例:微信小程序、手机厂商的快应用(如华为快应用)。
- 技术特点:
- 无需下载安装包,在宿主 App(如微信)内直接打开,类似 “轻量化 App”。
- 依赖宿主 App 的运行环境(非标准浏览器),部分功能可本地处理(如缓存)。
- 架构归属:非典型 C/S 架构,本质是 “宿主 App(C/S 客户端)+ 小程序服务器”,但轻量化特性接近 B/S 的便捷性。
| 产品形态 | 客户端类型 | 架构归属 | 核心逻辑 |
| 淘宝官网(PC 端) |
浏览器(Chrome/Safari) |
B/S |
所有内容通过网页加载,无本地程序 |
| 淘宝 App(手机端) |
原生 App(需安装.apk) |
C/S |
本地存储用户数据,调用摄像头(扫码购物) |
| 淘宝小程序(微信内) |
微信内置的网页容器 |
非典型 C/S |
依赖微信 App(C/S 客户端),功能类似 B/S 网页 |
| 微信网页版 |
浏览器(需扫码登录) |
B/S |
完全依赖浏览器,无法调用本地硬件(如文件传输受限) |
- B/S 架构:只要通过浏览器访问(无需安装本地程序),无论功能多复杂,都属于 B/S(如网页版游戏、在线文档)。
- C/S 架构:凡是需要安装独立客户端软件(App、PC 端程序),即使内部包含网页功能(如 App 内的 “帮助中心” 网页),整体仍属于 C/S。
- 例外情况:
- PWA(渐进式 Web 应用):通过浏览器安装到桌面的 “网页应用”(如 Chrome 的 “添加到桌面” 功能),本质仍是 B/S,因为无需专用客户端,仅依赖浏览器。
- B/S 架构(网页):去咖啡店(浏览器)点单,不需要自己带杯子,店里提供一次性杯子(网页界面),喝完就走(关闭浏览器即退出)。
- C/S 架构(App):买一个专用咖啡杯(安装 App),每次去店里(服务器)点单时用自己的杯子装咖啡(本地存储数据),杯子可以重复使用(App 长期保留在手机里)。
- 混合场景:用自己的杯子(App)去店里点单,但咖啡是现磨的(部分数据实时从服务器获取),属于 C/S 架构,但喝咖啡的体验(功能)可能包含 B/S 的逻辑(如查看菜单网页)。
通过 “是否安装专用客户端”+“客户端是否处理本地逻辑” 两个维度,即可快速判断产品的架构归属。实际应用中,许多产品会融合两种架构的优势(如 App 内嵌套网页),但核心架构类型仍由客户端的本质属性决定。