- 前言
- 一、前后端分别负责什么
- 二、语言、运行环境和框架的区别
- 三、React、Vue 3 和 Next.js
- 四、Node.js 到底负责什么
- 五、Spring Boot 和 FastAPI
- 六、HTTP API 是什么
- 七、服务器放在哪里
- 八、前端是否需要放到服务器
- 九、一台云服务器能否部署所有内容
- 十、Next.js 的服务器位置
- 十一、常见技术组合
- 十二、总结
前言
刚开始接触 Web 开发时,JavaScript、TypeScript、React、Vue、Next.js、Node.js、Spring Boot 这些名称很容易混在一起。
原因并不复杂:它们本来就不属于同一层。有些是编程语言,有些是运行环境,有些负责页面,还有一些专门处理服务器和数据库。
这篇文章按照一条实际请求的运行过程,把这些概念重新整理一遍。

一、前后端分别负责什么
用户在浏览器中看见并操作的部分叫前端,例如:
- 页面布局
- 输入框和按钮
- 表格与图表
- 表单校验
- 页面跳转
- 数据展示
后端运行在服务器中,负责处理前端看不见的工作,例如:
- 接收请求
- 执行业务规则
- 查询和修改数据库
- 用户登录与权限验证
- 文件上传
- 调用其他系统接口
前端与后端通常通过 HTTP API 通信。
用户操作页面
↓
前端发送 HTTP 请求
↓
后端处理业务
↓
后端读写数据库
↓
返回处理结果
↓
前端更新页面
二、语言、运行环境和框架的区别
理解前后端架构前,需要先分清三个概念。
编程语言
编程语言用来写代码。
常见语言包括:
| 语言 | 常见用途 |
|---|---|
| JavaScript | 浏览器前端、Node.js 后端 |
| TypeScript | React、Vue、Next.js 和 Node.js 后端 |
| Java | Spring Boot 后端 |
| Python | FastAPI、Django、数据处理和 AI |
| C# | ASP.NET Core 后端 |
TypeScript 可以看作带类型检查的 JavaScript。它通常先转换成 JavaScript,再交给浏览器或 Node.js 执行。
TypeScript
↓ 编译
JavaScript
↓
浏览器或 Node.js
运行环境
运行环境负责执行代码。
| 运行环境 | 执行内容 |
|---|---|
| 浏览器 | 前端 JavaScript |
| Node.js | 浏览器之外的 JavaScript |
| JVM | Java 程序 |
| Python Runtime | Python 程序 |
Node.js 不是前端框架,也不是后端框架。它是 JavaScript 的运行环境。
框架和库
框架为开发提供已经组织好的结构和功能。
| 名称 | 类型 | 作用 |
|---|---|---|
| React | 前端 UI 库 | 构建页面组件 |
| Vue 3 | 前端框架 | 构建页面、表单和交互 |
| Next.js | React 应用框架 | 为 React 增加路由和服务端能力 |
| NestJS | Node.js 后端框架 | 开发结构化的 TypeScript 后端 |
| Spring Boot | Java 后端框架 | 开发企业级后端 |
| FastAPI | Python 后端框架 | 开发 API 和数据服务 |
三、React、Vue 3 和 Next.js
React 和 Vue 3 都用于前端开发,通常选择其中一个。
前端路线 A:TypeScript + React
前端路线 B:TypeScript + Vue 3
它们负责的事情比较接近:
- 拆分页面组件
- 管理页面数据
- 处理用户操作
- 展示后端返回的结果
Next.js 建立在 React 之上。
Next.js = React + 路由 + 服务端渲染 + 服务端接口
所以 React 和 Vue 是两条不同的前端路线,而 Next.js 属于 React 生态。
React
└── Next.js
Vue 3
└── Nuxt
普通后台管理页面、内部工具可以直接使用 React 或 Vue。需要服务端渲染、搜索引擎收录或者全栈能力时,再考虑 Next.js 或 Nuxt。
四、Node.js 到底负责什么
Node.js 有两个常见角色。
开发前端时
现代前端项目通常需要 Node.js 运行开发工具:
React / Vue / Next.js 源代码
↓
Node.js 运行 npm、Vite、TypeScript 编译器
↓
生成 HTML、CSS、JavaScript
↓
浏览器运行
这个阶段的 Node.js 运行在开发电脑上。用户打开网页后,真正显示页面的是浏览器。
开发后端时
Node.js 也可以运行后端程序。
TypeScript
↓
NestJS 或 Express
↓
Node.js 执行
↓
提供 HTTP API
常见组合是:
TypeScript + Node.js + NestJS + PostgreSQL
其中 TypeScript 是语言,NestJS 是后端框架,Node.js 是运行环境,PostgreSQL 是数据库。
五、Spring Boot 和 FastAPI
Spring Boot 和 FastAPI 都是后端框架,但使用的语言不同。
| 对比项 | Spring Boot | FastAPI |
|---|---|---|
| 使用语言 | Java | Python |
| 运行环境 | JVM | Python Runtime |
| 常见场景 | 物流、金融、ERP、企业系统 | API、数据处理、AI 服务 |
| 项目结构 | 完整、规范 | 简洁、灵活 |
| 学习成本 | 相对较高 | 相对较低 |
前端不需要关心后端使用哪种语言。只要 HTTP API 的地址、参数和返回格式保持一致,React 或 Vue 都可以与它们配合。
Vue 3
↓ HTTP API
Spring Boot
↓
PostgreSQL
也可以是:
React
↓ HTTP API
FastAPI
↓
PostgreSQL
Node.js 后端、Spring Boot 和 FastAPI 通常是三条可选路线,不需要在一个普通项目中全部使用。
六、HTTP API 是什么
HTTP API 是前端访问后端的通信入口。
假设前端要查询订单 BL001,可能发送下面的请求:
GET /api/orders/BL001
后端收到请求后查询数据库,再返回 JSON:
{
"billNo": "BL001",
"origin": "Shanghai",
"destination": "Hamburg",
"status": "In Transit"
}
前端拿到数据后,将它显示在页面上。
常见的请求方法有:
| 方法 | 常见用途 |
|---|---|
| GET | 查询数据 |
| POST | 新增数据 |
| PUT/PATCH | 修改数据 |
| DELETE | 删除数据 |
HTTP API 并不是脱离后端单独运行的一套程序。它通常由 NestJS、Spring Boot 或 FastAPI 直接实现。
七、服务器放在哪里
服务器是程序实际运行的计算机或云资源,不是一种编程框架。
一个完整的 Web 系统通常有三种逻辑角色:
Web 服务器
应用服务器
数据库服务器
Web 服务器
Web 服务器负责发布前端文件:
HTML
CSS
JavaScript
图片
字体
常见选择包括 Nginx、对象存储和 CDN。
用户访问网址时,浏览器先从 Web 服务器下载前端文件。
应用服务器
应用服务器负责运行后端程序:
Node.js + NestJS
或 Java + Spring Boot
或 Python + FastAPI
HTTP API 也运行在这里。
数据库服务器
数据库服务器运行 PostgreSQL、MySQL 等数据库,用来长期保存数据。
完整请求过程如下:
flowchart LR
USER[用户浏览器]
WEB[Web服务器<br/>前端静态文件]
subgraph APP[应用服务器]
API[HTTP API]
BACKEND[后端程序<br/>NestJS / Spring Boot / FastAPI]
API --> BACKEND
end
subgraph DATA[数据库服务器]
DB[PostgreSQL / MySQL]
end
WEB -->|发送前端文件| USER
USER -->|请求数据| API
BACKEND -->|读取或写入| DB
API -->|返回结果| USER
八、前端是否需要放到服务器
如果用户通过浏览器访问网页,前端文件需要发布到 Web 服务器、对象存储或 CDN。
用户浏览器
↓ 下载网页
Web服务器 / CDN
↓ 调用 API
应用服务器
↓
数据库
如果前端通过 Capacitor 打包成 Android 或 iOS App,HTML、CSS 和 JavaScript 可以直接放在安装包里。
Android / iOS App
└── HTML + CSS + JavaScript
此时前端本身不一定需要 Web 服务器,但涉及多人共享数据时,App 仍然要访问后端服务器。
九、一台云服务器能否部署所有内容
可以。
小型项目经常把前端、后端和数据库部署在同一台云服务器中:
一台云服务器
├── Nginx
│ └── 发布 React/Vue 前端
├── NestJS/Spring Boot/FastAPI
│ └── 提供 HTTP API
└── PostgreSQL/MySQL
└── 保存数据
这种部署方式成本低,也方便维护。缺点是服务器一旦发生故障,前端、后端和数据库会同时不可用。
项目规模扩大后,可以逐步拆开:
CDN / Web服务器
↓
应用服务器
↓
独立云数据库
所以“Web 服务器”“应用服务器”和“数据库服务器”首先是逻辑角色,并不一定对应三台真实机器。
十、Next.js 的服务器位置
Next.js 需要根据使用方式判断。
如果只生成静态页面:
Next.js
↓ 构建
HTML + CSS + JavaScript
↓
Web服务器 / CDN
如果使用服务端渲染、Server Actions 或 API:
用户浏览器
↓
Node.js
↓
Next.js 服务端
↓
数据库或其他后端服务
此时 Next.js 的服务端部分需要部署在应用服务器上。
十一、常见技术组合
React 全栈
TypeScript + React + Next.js + Node.js + PostgreSQL
适合需要服务端渲染或全栈能力的网站。
Vue 前端与 Node.js 后端
TypeScript + Vue 3 + NestJS + Node.js + PostgreSQL
前后端都使用 TypeScript,语言比较统一。
Vue 或 React 与 Java 后端
Vue 3 / React + Spring Boot + PostgreSQL
常见于物流、金融和企业内部系统。
Vue 或 React 与 Python 后端
Vue 3 / React + FastAPI + PostgreSQL
适合数据处理、自动化和 AI 相关系统。
十二、总结
把整套关系压缩后,可以得到下面这条主线:
编程语言
↓
前端或后端框架
↓
对应的运行环境
↓
部署到服务器
↓
通过 HTTP API 通信
↓
数据库保存数据
浏览器负责运行前端页面。Node.js、JVM 或 Python Runtime 负责运行服务器代码。NestJS、Spring Boot 和 FastAPI 负责处理业务,PostgreSQL 或 MySQL 保存数据。
技术名称很多,但实际项目仍然沿着同一条路径运行:
用户操作页面
→ 前端发送请求
→ 后端处理业务
→ 数据库读写数据
→ 后端返回结果
→ 前端更新页面