网络知识篇
什么是网络状态码
服务器的"表情包"
每次服务器返回响应时,都会附带一个三位数的状态码(Status Code),告诉你这次请求的结果如何。
💡 类比:状态码就像快递的物流状态——"已签收"(200)、"地址不存在"(404)、"仓库爆炸了"(500)。
加载图表中...
状态码分类
| 范围 | 类别 | 含义 | 谁的问题? |
|---|---|---|---|
| 1xx | 信息性 | 请求已收到,继续处理 | — |
| 2xx | 成功 | 请求成功完成 | 没问题 |
| 3xx | 重定向 | 需要进一步操作 | 地址变了 |
| 4xx | 客户端错误 | 请求有误 | 你的问题 |
| 5xx | 服务器错误 | 服务器处理失败 | 服务器的问题 |
最常见的状态码
2xx — 成功
| 状态码 | 名称 | 含义 |
|---|---|---|
| 200 | OK | 请求成功,返回数据 |
| 201 | Created | 资源创建成功(POST后常见) |
| 204 | No Content | 成功,但没有返回数据(DELETE后常见) |
加载图表中...
3xx — 重定向
| 状态码 | 名称 | 含义 |
|---|---|---|
| 301 | Moved Permanently | 资源永久搬家了 |
| 302 | Found | 资源临时搬家了 |
| 304 | Not Modified | 资源没变,用缓存就行 |
加载图表中...
4xx — 客户端错误(你的问题)
| 状态码 | 名称 | 含义 | 常见场景 |
|---|---|---|---|
| 400 | Bad Request | 请求格式有误 | 参数缺失或格式错误 |
| 401 | Unauthorized | 未登录 | 没提供身份凭证 |
| 403 | Forbidden | 无权限 | 登录了但没权限访问 |
| 404 | Not Found | 资源不存在 | URL写错了 |
| 405 | Method Not Allowed | 方法不对 | 用GET请求了只支持POST的接口 |
| 429 | Too Many Requests | 请求太频繁 | 触发了限流 |
加载图表中...
5xx — 服务器错误(服务器的问题)
| 状态码 | 名称 | 含义 | 常见场景 |
|---|---|---|---|
| 500 | Internal Server Error | 服务器内部错误 | 代码bug、数据库连不上 |
| 502 | Bad Gateway | 网关错误 | 上游服务挂了 |
| 503 | Service Unavailable | 服务不可用 | 服务器过载或维护中 |
| 504 | Gateway Timeout | 网关超时 | 请求处理时间太长 |
实际开发中的状态码处理
const response = await fetch("/api/articles");
switch (response.status) {
case 200:
const data = await response.json();
console.log("成功:", data);
break;
case 401:
console.log("请先登录");
window.location.href = "/login";
break;
case 404:
console.log("资源不存在");
break;
case 500:
console.log("服务器出错了,稍后再试");
break;
}
状态码速查表
加载图表中...
🎯 AI编程小贴士:遇到非200的状态码时,把完整的状态码和响应体发给AI,它通常能快速告诉你问题出在哪里。
小结
- 状态码是服务器告诉你请求结果的三位数代码
- 2xx 成功、3xx 重定向、4xx 你的错、5xx 服务器的错
- 200 成功、404 找不到、500 服务器崩了——记住这三个就够入门
- 4xx 错误先检查自己的请求,5xx 错误找后端