网络 服务 是 怎么 运作 的?

請了解Web服務的運作方式。解決前端、後端、數據庫的角色和疑問。

bamchi 808

1.1 网络服务是如何运作的呢?

你好!大家每天都会用手机发KakaoTalk,看YouTube,还在Coupang购物吧?但是你们有没有好奇这些应用是如何运作的呢?

今天我们将揭开我们每天都在使用的网络服务的秘密!

网络服务就像是一栋三层楼

我来比喻一下网络服务就像是一栋三层楼。每层楼都住着不同工作的人。

┌─────────────────────────────────────┐
│    3楼: 数据库 (Database)            │
│     存储所有信息的仓库               │
│    - 会员信息,商品信息,订单记录       │
├─────────────────────────────────────┤
│    2楼: 后端 (Backend)               │  
│     看不见的工人们                   │
│    - 计算,处理,业务逻辑             │
├─────────────────────────────────────┤
│    1楼: 前端 (Frontend)              │
│     我们看到的漂亮界面               │
│    - 按钮,图片,用户界面              │
└─────────────────────────────────────┘

1楼: 前端 - 我们看到的漂亮界面

1楼是前端(Frontend)。这里是我们可以直接看到和触摸的地方。

  • 智能手机应用界面: 按钮,图片,文字等
  • 网站界面: Naver首页,YouTube视频界面
  • 设计: 漂亮的颜色,字体,动画

如果用房子来比喻的话,就像是前门和客厅。这是客人(用户)最先看到的地方!

2楼: 后端 - 看不见的工人们

2楼是后端(Backend)。这里是真正发生事情的地方,但我们的眼睛看不到。

  • 计算和处理: 登录确认,商品搜索,支付处理
  • 业务逻辑: "这个用户可以购买这个商品吗?","需要应用折扣吗?"
  • 交通整理: 按顺序处理众多用户的请求

如果用房子来比喻的话,就像是厨房。这里做着美味的菜肴(数据处理),但客人不能直接进来!

3楼: 数据库 - 存储一切的仓库

3楼是数据库(Database)。这里所有信息都整齐地存储着。

  • 会员信息: 姓名,电子邮件,密码,地址
  • 商品信息: 价格,库存,描述,图片
  • 记录: 订单记录,支付信息,发货状态

如果用房子来比喻的话,就像是仓库和书房。所有重要的物品和记录都被系统地保存着!

实际例子: 在Coupang上订购"无线耳机"

现在让我们跟随你们在Coupang上订购无线耳机的过程,看看每层楼发生了什么!

数据的旅程: "无线耳机"搜索过程

 用户               网络服务 3层楼
                    ┌─────────────────────────┐
  "无线耳机"         │ 3楼:  数据库            │
     搜索! ──────┐   │ SELECT * FROM 商品      │
                  │   │ WHERE 商品名 LIKE       │
     ↓             │   │ '%无线耳机%'...        │
                  │   ├─────────────────────────┤
   显示在屏幕上   │   │ 2楼:  后端            │
   结果 ←─────┘   │ • 搜索处理               │
                      │ • 排序 & 过滤           │
                      │ • 折扣计算             │
                      ├─────────────────────────┤
                      │ 1楼:  前端            │
                      │ • 搜索框               │
                      │ • 加载界面             │
                      │ • 结果界面             │
                      └─────────────────────────┘

1阶段: 在搜索框中输入"无线耳机"!

前端(1楼)中:
- 你们点击搜索框
- 输入"无线耳机"
- 点击搜索按钮
- 屏幕显示"稍等,正在查找搜索结果..."的加载界面

2阶段: 后端努力工作! ‍

后端(2楼)中:

后端: "哦,有人在找无线耳机!"
后端: "数据库啊,能找到无线耳机商品吗?"
后端: "哦,还要为这个用户挑选合适的商品!"
后端: "按照价格从低到高排序!"

3阶段: 数据库回答了!

数据库(3楼)中:
```sql
数据库: "稍等,我来找找..."
SELECT 商品名, 价格, 图片, 评分, 库存数量
FROM 商品列表
WHERE 商品名 LIKE '%无线耳机%'
AND 库存数量 > 0
ORDER BY 价格 ASC;

数据库: "找到了!总共有347个商品!"
```

4阶段: 后端精心包装结果!

后端(2楼)中:

后端: "347个太多了。只挑选热门的20个商品"
后端: "计算折扣信息,确认运费..."
后端: "根据用户位置计算预计送达日期!"
后端: "好了,现在发送到1楼!"

5阶段: 在漂亮界面展示!

前端(1楼)中:
- 商品列表漂亮地排序显示
- 每个商品的照片,价格,评分显示
- 有"火箭发货","免费送货"等标签
- 滚动页面会显示更多商品

6阶段: 点击商品加入购物车!

这个过程也是按照1楼→2楼→3楼→2楼→1楼的顺序进行的!

 用户                   网络服务处理过程
                        ┌─────────────────────┐
"加入购物车"         │ 3楼:  数据库         │
      点击! ──────1──→   │ UPDATE 库存 SET      │
                        │ 数量 = 数量 - 1      │
  ↓                     │ INSERT INTO 购物车  │
                        ├─────────────────────┤
"已添加!" ←──5── │ 2楼:  后端       │
    显示消息           │ • 库存确认    ←──3─┘│
                        │ • 权限确认    ──4──→│
                        │ • 优惠券计算          │
                        ├─────────────────────┤
                        │ 1楼:  前端       │
                        │ • 按钮点击检测 ──2─┘│
                        │ • 成功消息显示    │
                        └─────────────────────┘
  1. 1楼: 点击"将AirPods Pro加入购物车"按钮
  2. 2楼: "这个用户可以购买这个商品吗?库存够吗?"
  3. 3楼: "减少1个库存,添加到购物车表中!"
  4. 2楼: "检查是否有折扣券,计算总金额!"
  5. 1楼: "已添加到购物车!"

为什么要这样复杂地划分呢?

你可能会想:"为什么不只做一个程序呢?" 但是这样划分是有原因的!

1. 分工提高效率! ‍‍‍

  • 设计师: 在1楼(前端)制作漂亮的界面
  • 后端开发人员: 在2楼实现业务逻辑
  • 数据库专家: 在3楼设计数据结构

每个人专注于自己的领域,结果更好!

2. 出现问题也能快速解决!

如果界面变慢了?
- 是1楼(前端)的问题吗?
- 是2楼(后端)的问题吗?

- 是3楼(数据库)的问题吗?

可以轻松找到并修复!

3. 易于扩展!

如果用户增加了?
- 增加更多2楼(后端)服务器
- 将3楼(数据库)更换为更快的数据库
- 保持1楼(前端)不变!

只需升级需要的部分。

4. 安全性更强!

  • 重要信息(密码,支付信息)只保存在2楼和3楼
  • 1楼只显示必要信息
  • 即使遭受黑客攻击,也能最小化损失

后端开发人员做什么?

那么后端开发人员具体做些什么呢?

1. 创建API

制定与前端交流的规则。

"获取用户信息" → GET /user/123
"帮我搜索商品" → GET /products?search=无线耳机
"下订单" → POST /orders

2. 实现业务逻辑

if (用户是VIP客户) {
    折扣率 = 20%;
} else if (首次购买客户) {
    折扣率 = 10%;
} else {
    折扣率 = 0%;
}

3. 与数据库交互

-- 创建订单
INSERT INTO 订单 (客户ID, 商品ID, 数量, 总金额) 
VALUES (123, 456, 1, 89000);

-- 减少库存
UPDATE 商品 SET 库存数量 = 库存数量 - 1 WHERE 商品ID = 456;

4. 优化性能

  • 找到慢的部分并加快速度
  • 使得能够承受多用户同时访问
  • 节省服务器成本

5. 管理安全性

  • 仅允许登录用户访问
  • 防止黑客攻击
  • 对个人信息进行加密

总结一下...

网络服务就像是一栋三层楼:

  • 1楼前端: 我们看到的漂亮界面
  • 2楼后端: 实际发生事情的地方 (我们看不到)
  • 3楼数据库: 存储所有信息的仓库

这三层相互交流,才能制作出我们使用的精彩应用和网站!

而你们正在阅读这本书...意味着你们正在为成为这个美妙世界的一部分做准备!

接下来的部分,我们将特别探讨为什么数据库如此重要,为什么它是必不可少的。准备好了吗?

Comments

Add Comment

Your email won't be published and will only be used for reply notifications.

继续阅读

Get notified of new posts

We'll email you when Bamchi Blog publishes new content.

Your email will only be used for new post notifications.