网络知识篇
什么是GET与POST方法
HTTP 方法:告诉服务器你要做什么
HTTP 请求方法(也叫"动词")决定了你对服务器资源要执行什么操作。最常用的两个是 GET 和 POST。
💡 类比:去图书馆,GET 就是"我要借一本书"(获取),POST 就是"我要捐一本书"(提交)。
加载图表中...
GET 方法
GET 用于获取数据,是最常见的请求方法。
GET /api/articles?page=1&limit=10 HTTP/1.1
Host: example.com
特点:
- 参数放在 URL 中(
?key=value&key2=value2) - 没有请求体
- 可以被浏览器缓存
- 可以被收藏为书签
- 参数在地址栏可见
什么时候用 GET?
- 打开一个网页
- 搜索内容
- 获取文章列表
- 查看用户信息
// 获取文章列表
const res = await fetch("/api/articles?page=1");
const articles = await res.json();
POST 方法
POST 用于提交数据给服务器。
POST /api/articles HTTP/1.1
Host: example.com
Content-Type: application/json
{
"title": "我的新文章",
"content": "文章内容..."
}
特点:
- 数据放在请求体中(不在URL里)
- 适合传输大量数据
- 适合传输敏感数据(如密码)
- 不会被浏览器缓存
什么时候用 POST?
- 用户注册/登录
- 提交表单
- 创建新内容
- 上传文件
// 创建新文章
const res = await fetch("/api/articles", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
title: "我的新文章",
content: "文章内容..."
}),
});
GET vs POST 对比
| 特性 | GET | POST |
|---|---|---|
| 用途 | 获取数据 | 提交数据 |
| 参数位置 | URL 中 | 请求体中 |
| 数据大小 | 有限制(URL长度) | 无限制 |
| 安全性 | 参数可见(不安全) | 参数不可见(相对安全) |
| 可缓存 | ✅ 可以 | ❌ 不可以 |
| 书签 | ✅ 可以 | ❌ 不可以 |
| 后退/刷新 | 无副作用 | 可能重复提交 |
加载图表中...
其他 HTTP 方法
除了 GET 和 POST,还有几个常用的方法:
| 方法 | 用途 | 示例 |
|---|---|---|
| GET | 获取资源 | 查看文章 |
| POST | 创建资源 | 发表新文章 |
| PUT | 全量更新资源 | 修改整篇文章 |
| PATCH | 部分更新资源 | 只改文章标题 |
| DELETE | 删除资源 | 删除文章 |
这些方法对应了数据的 CRUD 操作:
加载图表中...
RESTful API 设计规范
现代 Web API 通常遵循 RESTful 风格,用 HTTP 方法 + 路径来表达操作:
| 操作 | 方法 | 路径 | 说明 |
|---|---|---|---|
| 获取所有文章 | GET | /api/articles | 列表 |
| 获取单篇文章 | GET | /api/articles/123 | 详情 |
| 创建文章 | POST | /api/articles | 新建 |
| 更新文章 | PUT | /api/articles/123 | 修改 |
| 删除文章 | DELETE | /api/articles/123 | 删除 |
🎯 AI编程小贴士:告诉AI"帮我写一个文章的RESTful API",它就会按照上面的规范帮你生成完整的增删改查接口代码。
小结
- GET 用来获取数据,参数在URL中
- POST 用来提交数据,参数在请求体中
- GET 适合查询,POST 适合创建
- HTTP 还有 PUT、PATCH、DELETE 等方法
- RESTful API 用方法+路径的组合来表达不同操作