▲ 架构简介

一、B/S架构(Browser/Server)架构详解

        定义:B/S(Browser/Server,浏览器/服务器)架构是基于互联网技术发展的分布式架构,核心逻辑是客户端通过浏览器访问服务器,极少部分事务逻辑在前端(浏览器)实现,主要业务逻辑与数据处理集中在服务器端,形成“浏览器-Web服务器-数据库服务器”的三层结构。       

        a) 核心结构:

        √ 浏览器层:用户交互接口,负责界面展示(如HTML/CSS渲染)、简单逻辑处理(如表单验证)及向服务器发送请求(如HTTP/HTTPS)。

        √ Web服务器层:处理业务逻辑(如用户认证、数据计算),接收浏览器请求并转发至数据库服务器,将结果返回浏览器。常见技术包括Apache、Nginx、Tomcat等。

        √ 数据库服务器层:存储与管理数据(如用户信息、业务数据),常见数据库有MySQL、Oracle、SQL Server等,通过JDBC/ODBC等方式与Web服务器交互。

        b) 关键特点:

        √ 客户端零安装:仅需浏览器(如Chrome、Edge)即可访问,无需安装专用软件,降低用户使用门槛。

        √ 维护升级便捷:所有更新(如功能迭代、漏洞修复)仅需在服务器端完成,客户端无需操作,适用于大规模用户群体。

        √ 跨平台/跨设备:支持Windows、macOS、Linux等操作系统,以及手机、平板、电脑等设备,只要有网络和浏览器即可使用。

        √ 瘦客户端:客户端仅承担界面展示与简单逻辑,服务器承担核心负载,降低客户端硬件要求(如旧电脑也能访问)。

        √ 大规模并发支持:通过服务器集群、负载均衡(如Nginx反向代理)、CDN(内容分发网络)等技术,可处理海量用户请求(如电商平台大促场景)。

        c) 典型应用:

        √ 在线邮箱(Gmail);

        √ 在线购物(Amazon);

        √ 在线文档(Google Docs);

        √ 企业OA系统(如钉钉Web版);

        √ 视频融合平台(如EasyCVR)。

二、C/S架构(Client/Server)架构详解

        定义:C/S(Client/Server,客户端/服务器)架构是传统分布式架构,核心逻辑是客户端安装专用软件,负责界面交互、部分业务逻辑处理,服务器负责核心逻辑与数据存储,形成“客户端-服务器”的两层或“客户端-应用服务器-数据库服务器”的三层结构。

       a) 核心结构:

        √ 客户端层:安装专用软件(如QQ客户端、ERP客户端),负责用户交互(如复杂界面控件、本地缓存)、部分业务逻辑(如数据预处理、图形渲染),通过网络与服务器通信。

       √  服务器层(两层结构):处理核心业务逻辑(如数据存储、事务管理),直接与客户端交互;或分为应用服务器层(处理业务逻辑)与数据库服务器层(存储数据)(三层结构)。

        b) 关键特点:

        √ 客户端需安装专用软件:需下载并安装客户端(如游戏客户端、企业ERP客户端),增加用户使用步骤,但能提供更精准的功能(如游戏的3D渲染)。

        √ 性能高效:客户端可承担部分业务逻辑(如大数据排序、图形处理),减少服务器负载,适用于对性能要求高的场景(如实时游戏、视频编辑)。

        √ 安全性高:专用客户端可实现本地数据加密(如金融客户端的数字证书)、访问控制(如仅授权设备可登录),适用于敏感数据场景(如银行系统、企业核心ERP)。

        √ 交互性强:支持丰富的界面控件(如拖拽、本地文件操作)、实时反馈(如游戏的即时响应),用户体验优于B/S架构(如早期QQ的聊天窗口)。

        c) 典型应用:

        √ 桌面游戏(如《英雄联盟》客户端);

        √ 企业ERP系统(如SAP客户端);

        √ 文件传输工具(如FTP客户端);

        √ 即时通讯软件(如早期微信PC端)。

三、差异化分析

维度

B/S架构

C/S架构

客户端要求

仅需浏览器,零安装

需安装专用客户端软件

维护升级成本

服务器端更新,成本低(无需逐台客户端操作)

需逐台客户端更新,成本高(如企业ERP升级需上门安装)

跨平台性

支持所有操作系统与设备(浏览器兼容)

受限于客户端操作系统(如Windows客户端无法在macOS运行)

性能与资源利用

服务器承担核心负载,客户端资源占用少(瘦客户端)

客户端承担部分逻辑,服务器负载低(如游戏客户端的3D渲染)

安全性

依赖网络传输(需HTTPS加密),安全性相对较低

专用客户端+本地处理,安全性高(适用于敏感数据)

交互性

受浏览器限制(早期需Ajax改善),交互较简单

支持丰富控件(如拖拽、本地缓存),交互性强

适用场景

广域网、多用户、跨设备(如在线服务、公共平台)

局域网、固定用户群、高性能/高安全(如企业内部系统、桌面游戏)

架构运行原理

一、B/S架构(Browser/Server)的运行原理

        B/S架构以“浏览器-服务器”为核心,通过HTTP/HTTPS协议实现客户端与服务器的交互,核心逻辑是“瘦客户端、胖服务器”,即客户端仅承担界面展示与简单逻辑,服务器承担核心业务与数据处理

        其运行流程可拆解为5个关键步骤:        

        a) 用户发起请求(浏览器层)

        ◆ 用户通过浏览器(如Chrome、Edge)进行操作(如输入URL、点击按钮、提交表单),浏览器将这些操作转化为HTTP请求(如GET请求获取页面、POST请求提交数据)。例如:

        → 输入www.taobao.com:浏览器发送GET请求,请求淘宝首页的HTML文件;

        → 点击“提交订单”:浏览器将订单信息(如商品ID、数量)封装为POST请求,发送至淘宝服务器。

        b) Web服务器接收与转发请求(Web服务器层)

        ◆ 请求到达服务器端后,首先由Web服务器(如Nginx、Apache)接收。Web服务器的核心作用是处理静态资源(如HTML、CSS、JavaScript、图片)和转发动态请求(如需要业务逻辑处理的请求)。例如:

        → 若请求是index.html(静态文件),Web服务器直接返回该文件;

        → 若请求是/api/order/submit(动态接口),Web服务器将请求转发至应用服务器(如Tomcat、Spring Boot)。

        c) 应用服务器处理业务逻辑(应用服务器层)

       ◆  应用服务器是B/S架构的核心业务引擎,负责执行复杂业务逻辑(如用户认证、订单计算、数据校验)。它通过服务器端技术(如Java、Python、Node.js)处理请求,并与数据库交互。例如:

        ◆ 处理“提交订单”请求时,应用服务器会:

                → 校验用户身份(如Token验证);

                → 计算订单金额(如商品价格×数量+运费);

                → 调用数据库接口,修改商品库存(如将“手机”库存从100减至99);

                → 生成订单记录(如存入order表)。

        d) 数据库服务器存储与返回数据(数据库服务器层)

        ◆ 数据库服务器(如MySQL、Oracle)是数据的持久化存储中心,负责存储业务数据(如用户信息、商品信息、订单记录)。应用服务器通过数据库驱动(如JDBC、SQLAlchemy)与数据库交互,执行SQL语句(如SELECT查询、INSERT插入、UPDATE修改)。例如:

        → 应用服务器需要获取用户信息时,执行SELECT * FROM user WHERE id = 123,数据库返回用户的姓名、手机号等数据;

        → 修改库存时,执行UPDATE product SET stock = stock - 1 WHERE id = 456,数据库更新商品库存并返回成功标识。

        e) 服务器返回响应,浏览器渲染界面(浏览器层)

        ◆ 应用服务器处理完请求后,将结果(如动态生成的HTML页面、JSON数据)返回给Web服务器,再由Web服务器封装为HTTP响应(包含状态码、响应头、响应体)发送给浏览器。浏览器接收响应后:

         → 若响应是HTML页面(如淘宝首页),浏览器解析HTML/CSS/JavaScript,渲染成用户可见的界面;

         → 若响应是JSON数据(如{"code": 200, "message": "订单提交成功"}),浏览器中的JavaScript(如Ajax)接收数据,动态更新页面(如显示“订单提交成功”提示)。

二、C/S架构(Client/Server)的运行原理

        C/S架构以**“专用客户端-服务器”为核心,客户端需安装专用软件**(如QQ、英雄联盟客户端),承担界面交互、部分业务逻辑,服务器承担核心逻辑与数据存储,形成“胖客户端、瘦服务器”或“客户端-应用服务器-数据库”的三层结构。

        其运行流程可拆解为4个关键步骤:

        1. 用户操作客户端(客户端层)

        ◆ 客户端是用户直接使用的专用软件,负责:

         → 界面展示(如QQ的聊天窗口、英雄联盟的游戏界面);

         → 本地逻辑处理(如表单验证、本地缓存、图形渲染);

        ◆ 向服务器发送请求(如登录、发送消息、游戏指令)。例如:

         → 用户在QQ客户端输入账号密码,点击“登录”,客户端将账号密码加密(如MD5)后发送至服务器;

         → 用户在英雄联盟客户端点击“移动”,客户端将角色坐标(如x=100, y=200)发送至服务器。

        2. 服务器接收与处理请求(服务器层)

        ◆ C/S架构的服务器通常分为应用服务器(处理业务逻辑)和数据库服务器(存储数据),部分简单场景为“客户端-数据库服务器”的两层结构。服务器的核心作用是处理客户端请求(如登录验证、消息转发、游戏逻辑)。例如:

        ◆ 处理QQ“登录”请求时,服务器会:

                → 校验账号密码(与数据库中的用户表对比);

                → 生成登录Token(如eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...);

                → 返回Token给客户端(用于后续请求的身份验证);

        ◆ 处理英雄联盟“移动”请求时,服务器会:

                → 校验用户Token(确保是合法玩家);

                → 执行游戏逻辑(如碰撞检测:角色是否碰到障碍物);

                → 更新角色坐标(将角色位置从x=100, y=200改为x=110, y=210);

                → 将更新后的坐标同步给其他玩家的客户端(确保所有玩家看到的角色位置一致)。

        3. 数据库服务器存储与返回数据(数据库服务器层)

        ◆ C/S架构的数据库服务器作用与B/S类似,负责存储核心数据(如用户信息、游戏角色数据、聊天记录)。例如:

         → QQ服务器需要校验账号密码时,执行SELECT * FROM user WHERE username = '张三' AND password = '123456',数据库返回用户信息(如用户ID、昵称);

         → 英雄联盟服务器需要保存角色数据时,执行UPDATE player SET x = 110, y = 210 WHERE id = 789,数据库更新角色坐标。

        4. 客户端接收响应,更新界面(客户端层)

        ◆ 服务器处理完请求后,将结果(如登录成功的Token、游戏角色坐标)返回给客户端。客户端接收响应后:

         → 若响应是登录成功,客户端保存Token(用于后续请求),并显示好友列表;

         → 若响应是游戏角色坐标,客户端更新游戏界面(如将角色从x=100, y=200移动到x=110, y=210);

         → 若响应是聊天消息(如“你好”),客户端将消息显示在聊天窗口中。

三、运行原理的核心差异

维度

B/S架构

C/S架构

客户端角色

仅承担界面展示与简单逻辑(瘦客户端)

承担界面交互、部分业务逻辑(胖客户端)

通信协议

主要使用HTTP/HTTPS(基于文本的应用层协议)

可使用TCP、UDP、自定义协议(如QQ的私有协议)

资源处理分工

服务器承担核心负载(业务逻辑、数据存储)

客户端与服务器分工(客户端处理本地逻辑,服务器处理核心逻辑)

响应方式

浏览器渲染HTML/JSON,动态更新页面

客户端直接更新界面(如游戏角色移动、聊天消息显示)

示例流程

在线购物:浏览器→Web服务器→应用服务器→数据库→浏览器

即时通讯:QQ客户端→服务器→数据库→QQ客户端

混合架构与未来趋势

        随着技术发展,纯B/S或C/S架构已难以满足所有需求,混合架构(如B/S+C/S)成为趋势:

        场景举例:企业ERP系统,客户端用C/S处理复杂逻辑(如财务报表生成),同时提供B/S界面供远程员工访问(如查看审批进度);游戏行业,客户端用C/S保证实时性(如游戏战斗),B/S用于账号管理、社区互动。

        技术融合:B/S架构通过HTML5、WebGL、WebAssembly等技术,实现更丰富的交互(如在线3D建模);C/S架构通过云服务(如客户端同步数据至云服务器),改善跨设备体验。

▲ 总结

        B/S架构的运行原理可概括为“浏览器请求→服务器处理→数据库交互→浏览器渲染”,核心是服务器集中处理逻辑,适用于跨平台、大规模用户场景;

        C/S架构的运行原理可概括为“客户端操作→服务器处理→数据库交互→客户端更新”,核心是客户端与服务器分工,适用于高性能、高安全场景。

        两者的本质都是“请求-响应”机制,但因客户端角色、通信协议、资源分工的不同,适用于不同的业务场景。

        B/S与C/S架构各有优劣,选型需结合场景需求:

        ◆ 若需跨平台、大规模用户、低维护成本(如在线购物、公共服务),选B/S架构;

        ◆ 若需高性能、高安全、丰富交互(如企业ERP、桌面游戏),选C/S架构;

        ◆ 若需兼顾两者优势(如企业混合办公),选混合架构。

        ◆ 未来,随着云 computing、边缘计算等技术的发展,架构边界将更加模糊,但“以用户需求为核心”仍是架构设计的关键。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐