B/S架构系统角色与对应协议详解
B/S架构系统角色与对应协议详解
一、核心角色及协议映射
系统角色 | 主要职责 | 关键协议 | 协议作用说明 |
---|---|---|---|
浏览器 | 用户交互界面 | HTTP/HTTPS | 应用层通信基础 |
(Browser) | 发送请求/渲染响应 | WebSocket | 全双工实时通信 |
执行前端逻辑 | WebRTC | 点对点音视频传输 | |
DNS | 域名解析 | ||
------------------- | ----------------------------------- | ----------------------------------- | -------------------------------- |
Web服务器 | 静态资源服务 | HTTP/HTTPS | 请求响应处理 |
(Nginx/Apache) | 请求转发 | FastCGI/WSGI | 与应用服务器通信 |
负载均衡 | TCP/UDP | 传输层通信 | |
SSL终端 | TLS/SSL | 加密通信 | |
------------------- | ----------------------------------- | ----------------------------------- | -------------------------------- |
应用服务器 | 执行业务逻辑 | HTTP API (REST/GraphQL) | 业务接口通信 |
(Tomcat/Node.js) | 数据处理 | RPC (gRPC/Thrift) | 服务间高效通信 |
会话管理 | WebSocket | 实时消息推送 | |
JDBC/ODBC | 数据库连接 | ||
------------------- | ----------------------------------- | ----------------------------------- | -------------------------------- |
数据库 | 数据持久化存储 | SQL (MySQL/PostgreSQL) | 关系型数据操作 |
(MySQL/Redis) | 事务处理 | NoSQL (MongoDB协议/Redis协议) | 非结构化数据操作 |
查询优化 | TCP/IP | 网络通信基础 | |
------------------- | ----------------------------------- | ----------------------------------- | -------------------------------- |
CDN节点 | 内容分发加速 | HTTP/HTTPS | 资源传输 |
边缘缓存 | QUIC (HTTP/3) | 快速UDP传输 | |
负载均衡 | BGP | 路由优化 | |
------------------- | ----------------------------------- | ----------------------------------- | -------------------------------- |
认证服务器 | 用户身份验证 | OAuth 2.0 / OpenID Connect | 第三方授权登录 |
(OAuth服务) | 权限管理 | SAML | 企业级单点登录 |
令牌颁发 | JWT | 安全凭证传输 |
二、协议分层架构
三、关键协议详解
1. 浏览器核心协议
-
HTTP/HTTPS:
- 无状态请求-响应模型(通过Cookie/Session保持状态)
- HTTPS = HTTP + TLS/SSL加密
-
WebSocket:
GET /chat HTTP/1.1 Upgrade: websocket Connection: Upgrade Sec-WebSocket-Key: x3JJHMbDL1EzLkh9GBhXDw==
2. 服务器间通信协议
协议类型 | 使用场景 | 特点 |
---|---|---|
FastCGI | Nginx+PHP/Python | 持久进程/高并发 |
WSGI | Python Web标准接口 | 框架与服务器解耦 |
gRPC | 微服务通信 | 基于HTTP/2+ProtoBuf |
JDBC | Java应用连接数据库 | 跨数据库标准接口 |
3. 安全协议栈
sequenceDiagram浏览器->>+服务器: ClientHello(加密套件列表)服务器-->>-浏览器: ServerHello(选定套件+证书)浏览器->>服务器: 验证证书+生成会话密钥服务器-->>浏览器: 加密确认双方->>安全通道: 开始加密通信
四、特殊角色协议
1. CDN网络协议
- QUIC协议:
- 基于UDP的0-RTT快速连接
- 解决TCP队头阻塞问题
- 示例:YouTube视频分发
2. 认证协议对比
协议 | 流程类型 | 适用场景 |
---|---|---|
OAuth 2.0 | 授权委托 | 第三方应用登录 |
OpenID Connect | 身份认证 | 联合身份认证 |
SAML 2.0 | XML单点登录 | 企业级SSO解决方案 |
五、典型通信场景示例
1. 用户访问 https://example.com👉 浏览器使用DNS解析域名2. 发送HTTPS请求到Nginx👉 TLS握手建立加密通道3. Nginx转发请求到Tomcat👉 通过AJP协议传输请求4. Spring应用查询MySQL👉 通过JDBC执行SQL查询5. 返回JSON响应到浏览器👉 使用HTTP/2多路复用传输6. 浏览器渲染页面👉 通过WebSocket接收实时更新
协议选择原则:
- 外部通信:HTTP/HTTPS + RESTful API
- 内部通信:gRPC/Thrift
- 实时交互:WebSocket/SSE
- 安全要求:TLS 1.3 + JWT令牌