跳到主要内容

3.1 技术基础扫盲

开一家"餐厅"需要什么?

你可能听说过"前端"、"后端"、"数据库"这些词,但总觉得模模糊糊的。别急,我用一个你每天都在经历的事情来解释——去餐厅吃饭。

想象你要开一家餐厅。客人进来看到的是什么?菜单、装修、服务员、桌椅——这些是你能看到、能摸到的东西。在互联网的世界里,这就是前端。客人点完单,菜单传到后厨,厨师做菜——后厨里发生的一切客人看不到,但没有后厨餐厅就开不了。这就是后端。餐厅每天要进货,食材得有仓库分门别类放好,需要时取出来。这就是数据库

👤 用户(客人)
│ 打开浏览器(走进餐厅)

🍽️ 前端 Frontend
│ HTML(菜单)+ CSS(装修)+ JS(服务员动作)
│ 用户看到的一切:按钮、图片、文字、动画
│ 发送请求(服务员传单给后厨)

👨‍🍳 后端 Backend
│ 接单 → 验证身份 → 处理逻辑 → 调用数据
│ 用户看不到的业务规则和安全控制
│ 读写数据(厨师从仓库拿食材)

📦 数据库 Database
│ 存储用户信息、订单记录、商品数据
│ 像仓库一样分类存放,随取随用

记住这三个词:前端 = 餐厅前厅,后端 = 厨房,数据库 = 仓库

系统架构全景图


前端:客人看到的一切

前端就是用户打开你的网站或 App 时,屏幕上呈现的所有东西。它靠三个"语言"撑起来:

HTML——骨架。决定了页面上有什么内容,就像盖房子先搭框架。<h1> 是标题,<p> 是段落,<button> 是按钮。

CSS——衣服。决定了这些东西长什么样——颜色、大小、间距、圆角。同样一个按钮,CSS 可以让它变成红色圆角的,也可以变成蓝色方角的。

JavaScript——肌肉和大脑。让页面"活"起来。点击按钮弹出对话框、滚动加载更多内容、输入时实时检查——都是 JS 干的。没有它,网页就是一张静态海报。

下面这个例子,点按钮后文字会变:

<!DOCTYPE html>
<html>
<head>
<style>
body { font-family: sans-serif; text-align: center; padding-top: 80px; }
button { background: #ff6b35; color: white; border: none;
padding: 12px 24px; border-radius: 8px; font-size: 16px; }
</style>
</head>
<body>
<h1>你好,世界!</h1>
<p id="msg">还没点呢...</p>
<button onclick="changeText()">点我试试</button>
<script>
function changeText() {
document.getElementById('msg').innerText = '🎉 你写出了第一行 JavaScript!';
}
</script>
</body>
</html>

保存成 .html 文件用浏览器打开,点一下按钮试试——这就是前端三件套配合工作的效果。


后端:厨房里的秘密

后端是用户看不到的逻辑。它通常做三件事:

  • 处理业务逻辑:电商下单后计算价格、检查库存、扣优惠券、生成订单号
  • 提供 API 接口:前端通过"接口"向后端要数据。就像你对服务员说"来一份红烧肉"
  • 安全控制:谁能看什么数据、能做什么操作,都由后端说了算

请求/响应:一来一回

前端(客人) 后端(厨房)
│── "我要红烧肉" (Request) ──→ │
│ │ 处理中...
│←── "红烧肉好了" (Response) ──│

REST API:标准化的点菜方式

REST API 用 HTTP 动词表示你想做什么:

动作HTTP 方法例子
查看GETGET /api/users 获取用户列表
创建POSTPOST /api/users 新建用户
修改PUTPUT /api/users/123 更新用户
删除DELETEDELETE /api/users/123 删除用户

就像餐厅的标准化菜单——每道菜有固定编号和做法,不管谁做出来味道都一样。常见后端语言有 Python、Node.js(JavaScript)、Java、Go。AI 编程最常用 Python 和 Node.js。


数据库:仓库管理大师

数据库帮你"记住一切"——用户信息、商品数据、订单记录,几乎所有需要持久保存的东西都在这里。

SQL vs NoSQL

关系型数据库(SQL)——MySQL、PostgreSQL,像 Excel 表格:

┌────┬──────┬─────────────────┬──────┐
│ ID │ 姓名 │ 邮箱 │ 年龄 │
├────┼──────┼─────────────────┼──────┤
│ 1 │ 张三 │ zhangsan@qq.com │ 25 │
│ 2 │ 李四 │ lisi@163.com │ 30 │
└────┴──────┴─────────────────┴──────┘

每行是一条记录,每列是一个字段。多个表通过 ID 关联。查询用 SQL 语言:

SELECT * FROM users WHERE age > 25;

非关系型数据库(NoSQL)——MongoDB,像 JSON 文件,更灵活:

{ "name": "张三", "email": "zhangsan@qq.com", "hobbies": ["编程", "跑步"] }

SQL 像严整的表格,每条数据格式一样;NoSQL 更自由,每条数据可以有不同的字段。

新手建议:直接用 Supabase(基于 PostgreSQL)或 Firebase(基于 NoSQL),封装好了复杂操作,不需要学 SQL 也能上手。


用户登录:永远不要自己造轮子

登录的学名叫"认证"(Authentication)。它要处理的事情极多:密码哈希存储、验证邮件、忘记密码重置、第三方登录、Token 管理、防暴力破解、防 CSRF/XSS 攻击……每一个环节都有安全漏洞

所以,千万不要自己写登录系统。 用现成的认证服务:

  • Supabase Auth:和 Supabase 数据库无缝集成,免费额度够个人项目用
  • NextAuth.js / Auth.js:Next.js 最佳搭档,内置几十种第三方登录
  • Clerk:UI 最漂亮,几乎零代码集成

OAuth 是什么?"用 Google 登录"的原理

  1. 用户点击"用 Google 登录"
  2. 跳转到 Google 页面确认授权
  3. Google 发一个"通行证"(Token)回你的网站
  4. 你的网站拿通行证获取用户基本信息

整个过程用户从未把 Google 密码给你——这就是 OAuth 的精妙之处。


它们是怎么一起工作的?

以"用户点赞"为例,走一遍完整流程:

① 用户点击 "👍 点赞" 按钮(前端交互)

② JS 捕获点击,发送请求:POST /api/posts/123/like
请求头带上 Token 证明身份(前端 → 后端)

③ 后端接收请求:
- 验证 Token → 用户是谁?
- 检查规则 → 是否已点过赞?
- 写入数据库 → INSERT INTO likes (user_id, post_id)

④ 数据库返回结果(数据库 → 后端)

⑤ 后端返回响应:{ "success": true, "likeCount": 42 }
(后端 → 前端)

⑥ JS 收到响应,更新页面:按钮变"👍 已点赞",数字 41→42
✅ 完成!

整个过程不到 1 秒。当你用 AI 写代码时,需要知道"点赞"涉及前端交互、网络请求、后端逻辑、数据库操作四个层面,才能给 AI 正确的指令。


常见的技术栈组合

"技术栈"就是你选的一整套工具组合,就像做菜选食材——中餐用炒锅和酱油,西餐用烤箱和黄油。

LAMP(老牌经典):Linux + Apache + MySQL + PHP。2000 年代的主力,WordPress 基于此。现在新项目用得少了。

MEAN/MERN(全栈 JavaScript):MongoDB + Express + Angular/React + Node.js。前后端都用 JS,一种语言走天下,适合小团队快速出活。

Next.js + Supabase(AI 编程首选)

Next.js(前后端一体)
├── 前端:React 组件 + Tailwind CSS
├── 后端:API Routes / Server Actions
└── 对接 Supabase
├── 数据库:PostgreSQL
├── Auth:用户认证
└── Storage:文件存储

两个工具搞定从界面到数据库的全部事情,有免费额度。独立开发者和 AI 编程选手的首选组合。


技术术语速查表(20个)

术语一句话解释
前端用户看到和操作的一切界面
后端服务器上运行的、用户看不到的逻辑
数据库存储和管理数据的地方
API程序之间沟通的"标准接口"
服务器永远在线的电脑,跑着你的后端代码
框架现成的工具和规则,帮你更快写代码
一组现成的功能代码,按需拿来用
部署把代码放到服务器上,让全世界能访问
域名网站的地址,比如 google.com
HTTPS加密的安全连接,网址前的🔒
Token登录后的"通行证",证明"我是我"
组件前端页面的独立模块,像积木拼装
路由根据网址决定显示哪个页面
响应式页面自动适配不同屏幕大小
SDK某个服务提供的工具包,方便调用功能
包/依赖别人写好的工具,装了就能用
终端用文字输入命令操控电脑的工具
Git代码版本管理工具,记录每次修改
开源代码公开免费,谁都能看和用
异步"你先干着,干完了告诉我"的编程方式

技术基础就像学开车前先认路——你不需要知道每条街叫什么名字,但你得知道城市大致是什么布局。前端是门面、后端是工厂、数据库是仓库,它们通过 API 协作完成一件事。有了这个底子,后面聊框架和工具的时候,你就不会迷路了。