CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
后端入门实战/课时/后端入门概览
RawBlame
课时目录12 节

后端入门实战

  1. 01后端入门概览
  2. 02Git 与托管
  3. 03语言选型
  4. 04PostgreSQL
  5. 05数据库进阶
  6. 06Redis 与缓存
  7. 07REST API
  8. 08认证
  9. 09ORM
  10. 10单元测试
  11. 11集成与功能测试
  12. 12综合练习

后端入门概览

语言选型与 API 概念。

25 分钟

后端入门概览

这一课你将能做到

  1. 画出并讲清楚「浏览器发起请求 → 后端处理 → 返回响应」的完整链路
  2. 用 Node.js 写出第一个可运行的 HTTP 服务,并用 curl 观察原始的请求与响应
  3. 列出后端工程师的技能地图,并说出每一项「解决什么问题」

为什么要学

你如果直接翻开教程学「Spring Boot 三天入门」,很容易陷入细节:注解是什么、依赖是什么、为什么报 404。缺的不是教程,而是一张地图——知道后端到底在干什么、每一项技术在整条链路里站在哪个位置。

人话:前端负责「用户看到什么」,后端负责「数据从哪来、存到哪去、谁有权操作」。你在购物 App 点「提交订单」,前端只是画了个按钮和弹窗,真正校验库存、扣款、写订单记录的,全是后端。学后端,就是学「怎么可靠地把一件事在服务器上办成」。

本课和后续 11 课对应 /roadmaps/backend-beginner 路线图的节点,学完可以逐个打钩。

先建立图像

一次典型的 Web 请求长这样:

┌──────────┐   ① 请求(Request)    ┌──────────────┐   ③ 查/写数据库   ┌────────────┐
│  浏览器   │ ──────────────────▶ │   后端服务    │ ◀──────────────▶ │  数据库/缓存 │
│ (前端)    │ ◀────────────────── │ (你的程序)    │                  └────────────┘
└──────────┘   ② 响应(Response)  └──────────────┘
  发出 JSON 请求,拿到 JSON 响应        校验、计算、组装数据

后端的日常就是三件事:接住请求(校验参数)→ 处理逻辑(查缓存/查库/计算)→ 返回响应(拼 JSON)。所有框架——Express、Spring Boot、Gin、FastAPI——本质上都是帮你把这三步写得更省力。

跟着做

步骤 1:用 curl 看一次真实的 HTTP 请求

curl 是后端最常用的命令行工具,Windows 10+ / macOS 自带。打开终端输入:

curl -v https://httpbin.org/get

-v 表示显示完整过程,你会看到类似输出:

> GET /get HTTP/1.1          ← 请求行:方法 + 路径 + 协议版本
> Host: httpbin.org          ← 以下是请求头
> User-Agent: curl/8.4.0
> Accept: */*
>
< HTTP/1.1 200 OK            ← 响应行:状态码
< Content-Type: application/json
<
{ "args": {}, "headers": { ... }, "url": "https://httpbin.org/get" }  ← 响应体

先认识三个概念:请求方法(GET/POST 等)、状态码(200 成功、404 找不到、500 服务器出错)、响应体(真正的数据,通常是 JSON)。

步骤 2:写第一个 HTTP 服务

新建文件夹 bebg-intro,进入后新建 server.js(Node.js 18+ 自带一切依赖,不需要 npm install):

// server.js —— 无需安装任何依赖
const http = require('http');

const server = http.createServer((req, res) => {
  console.log('收到请求:', req.method, req.url);
  console.log('请求头 User-Agent:', req.headers['user-agent']);

  res.writeHead(200, { 'Content-Type': 'application/json; charset=utf-8' });
  res.end(JSON.stringify({ message: '你好,这是后端返回的数据', time: new Date().toISOString() }));
});

server.listen(3000, () => {
  console.log('服务已启动: http://localhost:3000');
});

运行:

node server.js

另开一个终端窗口:

curl http://localhost:3000
# {"message":"你好,这是后端返回的数据","time":"2026-01-01T08:00:00.000Z"}

回到第一个终端,你会看到服务打印出了收到的请求。你已经拥有一个后端服务了——虽然只有 10 行,但「监听端口、接收请求、返回响应」的骨架和淘宝的后端没有区别。

步骤 3:用浏览器 DevTools 观察前后端交互

打开任意主流网站,按 F12 → Network 面板 → 刷新页面:

  1. 列表里每一行就是一个 HTTP 请求
  2. 点开一个 XHR/Fetch 类型的请求,看 Headers(请求头、响应头)和 Response(响应体 JSON)
  3. 观察「Initiator」列:是页面里的哪段 JS 发起了这个请求

你会直观看到:前端通过大量 API 请求从后端拿数据,再渲染成页面。这就是「前后端分离」。

步骤 4:画出你的技能地图

对照下面这张表,在纸上给自己标出「学过 / 听过 / 没听过」。这张地图就是本课程 12 课的顺序:

层次技术解决什么问题对应课程
协作Git / GitHub多人协作、版本回滚第 2 课
语言Java / Go / Python / Node后端的编程语言第 3 课
存储PostgreSQL / MySQL数据持久化第 4-5 课
缓存Redis加速读请求、削峰第 6 课
接口REST API前后端通信契约第 7 课
安全认证与授权「你是谁、你能干什么」第 8 课
效率ORM用对象操作代替手写 SQL第 9 课
质量单元/集成测试保证代码改了不出事第 10-11 课
综合完整小项目把上面所有东西串起来第 12 课

讲清楚要点

  1. HTTP 是无状态的请求-响应模型:每个请求独立,服务器默认不记得上一个请求是谁发的。所以后续需要 Cookie/Session/Token 来「记住」用户——这是第 8 课的主题。
  2. 前后端的契约是 API:前端不关心后端用什么语言,只关心「我发什么、你回什么」。JSON 是目前最通用的数据格式,本质就是带键值的文本。
  3. 后端的核心职责:参数校验、业务逻辑、数据存取、权限控制、性能与安全。逻辑放在后端而不是前端,因为前端代码在用户手里,可以被篡改——价格、权限校验绝不能只靠前端。
  4. 「服务器」就是一台跑着你程序的电脑:localhost:3000 中的 3000 是端口号,一台电脑可以用不同端口同时跑多个服务。
  5. 框架解决的是重复劳动:步骤 2 手写的 http 模块能干活,但路由、解析 JSON、错误处理都要自己造轮子。框架(Express/Spring Boot)就是造好轮子的集合,第 7 课开始会大量使用。

你可能会懵的地方

  • API 到底是什么? Application Programming Interface,程序之间约定的「调用方式」。在 Web 后端语境下,通常指「一个 URL + 请求方法 + 入参 + 出参」的组合。GET /api/notes 拿列表、POST /api/notes 创建一条,这就是两个 API。

  • 前端和全栈的边界在哪?我该先学哪边? 边界就是「谁对数据负责」。前端管展示与交互,后端管数据与逻辑。如果目标是理解整个系统、写业务服务,先学后端;后端思维(接口设计、数据建模)迁到前端很容易,反过来难一些。

  • 为什么要有状态码,不能全都返回 200 加个字段吗? 状态码是给「机器和人」快速判断用的通用语义。网关、监控、重试逻辑都依赖它。全 200 的接口会让排错和自动化治理变得混乱,第 7 课会展开。

  • 一个后端要学这么多东西,学到什么时候? 地图是「全貌」不是「任务清单」。入门只需:一门语言 + 一个框架 + SQL 基础 + Git + 会写几个带认证的 CRUD 接口。其他按项目需要再深入,本课程就按这个最小闭环设计。

  • Node.js 算后端吗?它和 Java 后端差在哪? 算。语言只是工具,HTTP/SQL/认证/缓存这些概念完全通用,换语言只是换语法和生态。第 3 课专门讲怎么选。

错法对照

错法问题正解
把业务校验全写在前端用户绕过前端直接调接口就失效后端校验为准,前端校验只做体验
收藏 20 个教程轮流看没有地图,永远在入门按技能地图逐层打通,先跑通最小闭环
一上来就学分布式/微服务基础未稳,全是空中楼阁先把单机 CRUD + 认证 + 测试写扎实
curl 输出看不懂就跳过HTTP 语义是后端地基逐行读懂请求行/响应行/状态码
认为 localhost 不算真后端本地开发环境就是后端开发的主战场本地跑通 = 具备了部署到服务器的同一套能力

卡点急救

  1. node 命令找不到:去 nodejs.org 装 LTS 版本,装完重开终端,node -v 能输出版本号即可。
  2. PowerShell 里 curl 行为奇怪:Windows PowerShell 的 curl 是 Invoke-WebRequest 的别名。用 curl.exe 显式调用真正的 curl,或改用 Git Bash。
  3. 端口被占用(Error: listen EADDRINUSE):说明 3000 端口已有程序。改代码里的 server.listen(3001, ...),或结束占用进程:npx kill-port 3000。
  4. curl 返回乱码:响应头里要带 charset=utf-8(步骤 2 的代码已包含),Windows 终端可先执行 chcp 65001 切换 UTF-8。

面试常问

  • 从输入 URL 到页面展示,发生了什么? 主线:DNS 解析 → TCP 握手(HTTPS 再加 TLS)→ 发送 HTTP 请求 → 服务器处理(后端查缓存/数据库、组装数据)→ 返回响应 → 浏览器解析 HTML/CSS/JS 渲染 → 页面 JS 再发 API 请求拿数据。面试官想听到你把「后端处理」这一段讲细:负载均衡、鉴权、业务逻辑、读写数据库、返回 JSON。

  • 前后端分离和模板渲染(如 JSP、服务端渲染)有什么区别? 模板渲染:后端把 HTML 拼好直接给浏览器,前端逻辑弱;前后端分离:后端只返回 JSON,前端框架负责渲染。分离后前后端可并行开发、各自部署,靠 API 文档协作。

  • 为什么说「不要信任客户端输入」? 前端代码和数据都在用户设备上,可被随意篡改(抓包工具改请求是基本功)。金额、权限、库存等一切关键校验必须在后端重做。

自测三问

  1. 一次 HTTP 请求-响应包含哪几个部分?状态码 200、404、500 分别代表什么?
  2. 把你在步骤 2 写的服务改成:访问 /hello 返回 {"message":"hello"},访问其他路径返回 404。(提示:判断 req.url)
  3. 对照技能地图,说出后面 11 课每课解决什么问题。

小结一句话

后端 = 接住请求、处理逻辑、存取数据、返回响应;技能地图九层楼,本课程带你从地基(Git、语言)一路盖到天台(完整项目)。

延伸

  • MDN:HTTP 概述
  • httpbin.org——随时用来观察请求细节的免费服务
  • 下一课:Git 与托管——没有版本控制,后面的代码写多少丢多少。
加载本节练习…
下一课 →Git 与托管