← 返回首页
高频Web 架构

Web 架构 / REST / RPC

案例分析高频考点,论文也常用作背景。重点:REST vs SOAP、动静分离、CDN、反向代理

高频 · 几乎每年 分值 10~20

一、Web 经典架构演进

  1. 单体架构:所有功能打包成一个应用,部署在一台服务器
  2. 垂直拆分:按业务拆为多个独立应用,互不相干
  3. 分布式架构:抽离公共服务为 RPC 服务
  4. SOA:统一服务治理,引入 ESB
  5. 微服务:更细粒度、独立部署、技术栈自由、去中心化治理

典型 3 层 Web 架构

客户端 (浏览器/App)
   │
[负载均衡 LB]   ← Nginx / SLB / F5
   │
[Web/应用服务器集群]  ← Tomcat / Node
   │
[缓存]    [消息队列]   [数据库主从]   [搜索引擎 ES]
 Redis      Kafka      MySQL          Elastic

二、REST vs SOAP vs RPC ⭐⭐⭐

这是案例最爱的对比题,务必背熟下表:

对比项RESTSOAP Web ServiceRPC
风格资源 + HTTP 动词WSDL + 协议函数调用
消息格式JSON / XMLXML(SOAP 信封)二进制 / Protobuf
传输协议HTTP / HTTPSHTTP / SMTP / TCPTCP(常自定义)
性能较好差(XML 解析重)最好
跨平台极好极好需 SDK
安全 / 事务较弱(靠 HTTPS/Token)WS-Security / WS-Tx 完善需自定义
典型应用互联网开放 API企业级集成、金融内部服务调用

REST 6 大约束(必背)

  1. 客户端-服务器:关注点分离
  2. 无状态:每次请求自包含,服务器不存会话
  3. 可缓存:响应可标记是否可缓存
  4. 统一接口:资源 URI + HTTP 动词
  5. 分层系统:中间件透明
  6. 按需代码(可选):服务端可下发脚本
REST 6 约束口诀:"客无缓 · 统层码"

REST 资源 + 7 个 HTTP 动词

GET查询(幂等、无副作用) POST新增(非幂等) PUT全量更新 / 创建(幂等) PATCH局部更新(幂等) DELETE删除(幂等) HEAD只取响应头 OPTIONS查询支持的方法(预检)

三、负载均衡 / 反向代理 / CDN

1. 负载均衡(LB)

考点小知识
会话保持(粘性会话):同一用户路由到同一台服务器,常用 Cookie 注入或 IP Hash 实现。

2. 反向代理

作用隐藏后端、负载均衡、缓存、SSL 终止、安全防护 代表Nginx、HAProxy、Apache、Varnish

3. CDN(内容分发网络)

目的把静态资源缓存到离用户最近的节点 → 降延迟、降回源压力 关键DNS 调度、边缘节点、回源、缓存刷新 质量属性主要提升 性能,顺带 可用性(吸收流量峰值)

4. 动静分离

四、典型 Web 性能优化方案(论文/案例必背)

"前-中-后 + 数据"四层优化(背):

  1. 前端:压缩(Gzip/Brotli)、合并、懒加载、CDN、浏览器缓存、HTTP/2、图片优化
  2. 中间层(代理/网关):反向代理缓存、限流、动静分离、连接复用
  3. 应用层:多级缓存(本地 + Redis)、异步化(MQ)、连接池、池化对象
  4. 数据层:索引、读写分离、分库分表、SQL 优化、慢查询、NoSQL
口诀:"前压后异 · 中缓数分"

五、HTTP 状态码速记

类别含义典型
1xx信息100 Continue
2xx成功200 OK · 201 Created · 204 No Content
3xx重定向301 永久 · 302 临时 · 304 未修改
4xx客户端错误400 · 401 未认证 · 403 无权 · 404 · 429 限流
5xx服务端错误500 · 502 网关 · 503 不可用 · 504 网关超时
✅ 答题套路

"为什么选 REST 而不是 SOAP?"

① 互联网应用更看重 跨平台和性能;② REST 轻量、JSON 易读;③ 利用 HTTP 缓存等基础设施;④ 不需要 SOAP 的事务/安全等重量级特性;⑤ 工具链丰富、开发效率高。

📗 高频专题 · Web 架构 完