HTTP 状态码(HTTP Status Code)状态码是服务器用来告诉客户端“请求处理得怎么样了”的一种标准方式。它们是由三位数字组成,配合一段简短的文本描述(Reason Phrase)来表达具体含义。

Http 状态码

一、分类概览

我们可以通过下表快速建立认知框架:

核心原则(错误归属原则):在排查问题时,如果看到 4xx,通常意味着问题出在客户端(请求语法、参数、权限);如果看到 5xx,则铁定是服务端(服务器、数据库、代码逻辑)出了故障。

二、状态码分类详解

以下状态码由 RFC 2616定义。你可以在RFC 7231中找到更新后的规范。

1️⃣ section 10 of RFC 2616链接:

2️⃣ section-6 of RFC 7231链接:

2.1 信息响应 (1xx)2.2 成功响应 (2xx)2.3 重定向消息 (3xx)2.4 客户端错误响应 (4xx)2.5 服务器错误响应 (5xx)三、重点辨析

整理了一个对比表格,区分几个容易混淆的状态码:

状态码对比

区别说明

301 vs 302

301 是永久搬家

,以后都去新地址;302 是临时出门,以后还得回老地址。

401 vs 403

401 是没带钥匙

(未认证),带了钥匙可能就能进;403 是带了钥匙但没权限(认证了但被拒绝)。

404 vs 410

404 是找不到

(可能是拼写错误也可能是没了);410 是明确告诉你已删除(Gone),搜索引擎会更快地将其从索引中移除。

200 vs 204

200 有数据

返回在正文中;204 只有响应头,正文为空。

四、实战排错指南

当你遇到一个网页打不开,或者 App 报错时,如何利用状态码快速定位问题?

Http 状态码

1. 看首位数字定大方向

2. 开发者工具 (DevTools)

在浏览器中按F12,打开 Network(网络)标签页:

3. 常用调试命令

你可以使用curl命令行工具来测试状态码:

五、总结

HTTP 状态码是互联网通信的基石语言。掌握它们,你就拥有了与服务器“对话”的能力。