服务端基础(前端视角)

后端到底在做什么?

前端负责”用户看到和操作的界面”,后端负责”处理完数据返回给前端”。一次完整的请求链路:

1
2
3
4
5
6
7
8
9
10
11
12
浏览器输入 URL
↓ DNS 解析 → 找到服务器 IP
↓ 建立 TCP 连接(三次握手)
↓ 发送 HTTP 请求

服务器收到请求
↓ 路由匹配 → 确定由哪个处理函数处理
↓ 可能查询数据库 / 调用其他服务 / 读写文件
↓ 组装响应数据(JSON/HTML/XML)
↓ 返回 HTTP 响应

浏览器收到响应 → 解析渲染

核心概念对照(前端 ↔ 后端)

前端概念后端对应说明
组件中间件 / Controller前端组件拼 UI,后端中间件拼处理链
状态管理 (Pinia/Vuex)数据库 + 缓存 (Redis)前端存组件状态,后端存持久化数据
路由 (Vue Router)服务器路由前端控制页面切换,后端控制 API 分发
生命周期 (mounted)中间件执行顺序前端组件挂载,后端请求经过中间件链
环境变量 (.env)环境变量 / 配置文件前后端都有,区分 dev/prod
打包构建 (Vite)CI/CD 流水线前端构建产物,后端构建镜像/部署

服务端两大核心模型

多进程 vs 多线程 vs 事件循环

模型代表特点
多进程PHP-FPM / Python WSGI每个请求一个进程,隔离好但内存开销大
多线程Java Spring / Ruby on Rails每个请求一个线程,共享内存但需注意并发
事件循环Node.js / Nginx单线程 + 异步 I/O,轻量但 CPU 密集型场景吃力

Node.js 事件循环(前端最熟悉的模型):

1
2
3
4
5
6
7
8
9
主线程(单线程)

注册异步任务(文件读写 / 网络请求 / 定时器)

主线程继续处理其他请求

异步任务完成后 → 回调放入事件队列

事件循环取回调执行

这就是为什么 Node.js 适合 I/O 密集型场景(API 网关、BFF 层),不适合 CPU 密集型场景(图像处理、大数据计算)。

后端分层架构

1
2
3
4
5
6
7
8
9
路由层 (Router)          → 将 URL 映射到控制器

控制器层 (Controller) → 参数校验、调用 Service、返回响应

服务层 (Service) → 业务逻辑、事务管理

数据访问层 (DAO/Repository) → 操作数据库

数据库 (Database) → 持久化存储

前端类比: 组件 → 页面 → 业务逻辑 → API 请求 → 后端接口。

前端转后端的第一课

  • 不要怕黑框终端:后端开发大量时间在命令行(启动服务、查看日志、操作数据库)
  • 学会看日志console.log 在前端调试,stdout/stderr + 日志文件在后端
  • **理解”无状态”**:HTTP 请求默认是无状态的,Session/JWT 就是为了给请求加”身份”
  • RESTful API 接口规范:前端对接后端的第一道门槛,下一步讲
  • 本地跑一个 Node.js 服务:Express 起一个 hello world,比任何概念都直观