问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

一文搞懂 HTTP 状态码:200、301、401、403、500、503 详解

创作时间:
作者:
@小白创作中心

一文搞懂 HTTP 状态码:200、301、401、403、500、503 详解

引用
1
来源
1.
https://kucw.io/blog/http-status-code/

什么是 HTTP 状态码?

所谓的“HTTP 状态码”,中文翻译为“HTTP 状态码”,其目的是“用一个简短的值,快速表示当前 API 的请求结果是什么”。例如,常见的“200”响应,表示这次 API 请求成功了,就这么简单。

当我们在下图中请求:

GET http://localhost:8080/hello

这个 API 时,它会返回 200 的结果(绿色区域),让我们快速知道这次请求是成功的。

值得一提的是,推荐下载 Chrome 扩展功能 - Talend API Tester,它会用大块的颜色来显示 HTTP 状态码,非常直观。相比之下,Postman 的状态码显示在右上角,不够显眼。

在 HTTP 状态码的世界里,除了“200”之外,还有很多其他返回值。这些状态码可以根据它们的首位数字分为五大类:

  • 1xx:信息
  • 2xx:成功
  • 3xx:重定向
  • 4xx:前端请求错误
  • 5xx:后端处理问题

例如,所有以 2 开头的状态码(如 200、201、202 等)都属于“2xx”类别,表示“成功”。而 400、401、403 等以 4 开头的,都属于“4xx”类别,表示“前端请求错误”。

通过这个状态码,我们可以快速了解 API 请求的结果。

常见的 HTTP 状态码

1xx:信息

这个分类在实际应用中很少使用,因此没有常见的状态码。

2xx:成功

在 2xx 类别中,所有状态码都表示“请求成功”。常见的有 200、201 和 202。

200 OK

“200 OK”是最常见的,表示这次 API 请求成功。在 200 后面的“OK”是每个状态码的专用短语,简单描述其用途。例如,“200 OK”中的“OK”表示请求成功。

201 Created

“201 Created”表示请求成功,并且创建了一个新的资源。在 REST 风格中,POST 方法通常对应数据库的 Create 操作,因此“201 Created”常用于 POST 方法的 API 返回值。

202 Accepted

“202 Accepted”表示请求已被接受,但尚未处理完成。前端收到 202 后,可以继续处理其他事情,不必等待 API 完成。

3xx:重定向

301 Moved Permanently

“301 Moved Permanently”表示 URL 永久搬家。例如,作者将个人网站从 https://kucw.github.io 迁移到 https://kucw.io,现在请求旧地址会返回 301,并在 Response header 的 Location 中提供新地址。

302 Found

“302 Found”表示 URL 暂时搬家。例如,API 正在调整功能时,可以返回 302,并在 Location 中提供临时地址。对于 SEO 来说,301 可以转移网页权重,而 302 则不能。

4xx:前端请求错误

400 Bad Request

“400 Bad Request”表示请求参数错误,可能是参数名称错误或格式错误。需要检查请求参数是否正确。

401 Unauthorized

“401 Unauthorized”表示未通过身份验证,例如没有携带账号密码或 Token。后端无法识别请求者身份时会返回 401。

403 Forbidden

“403 Forbidden”表示权限不足。例如,普通会员试图访问 VIP 内容时会返回 403。

404 Not Found

“404 Not Found”表示网页不存在,可能是 URL 错误或已失效。

5xx:后端处理问题

500 Internal Server Error

“500 Internal Server Error”表示后端处理出错,可能是代码 bug 或其他后端问题。大多数未处理的错误都会返回 500。

503 Service Unavailable

“503 Service Unavailable”表示服务器暂时无法处理请求,可能是维护或流量过大。如果在非维护期间收到 503,需要检查服务器状态。

504 Gateway Timeout

“504 Gateway Timeout”表示请求超时,中间代理层(如 Cloudflare)会强制终止请求并返回 504。

总结

HTTP 状态码通过简短的数值快速表示 API 请求结果。根据首位数字,可以分为五大类:

  • 1xx:信息
  • 2xx:成功
  • 3xx:重定向
  • 4xx:前端请求错误
  • 5xx:后端处理问题

希望这篇文章能帮助你更好地理解 HTTP 状态码。如果你对后端技术感兴趣,欢迎订阅《古古的后端笔记》电子报,每周二都会分享一篇后端技术文章。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号