1. HTTP 状态码的五大分类
HTTP 状态码按首位数字分为五类:1xx(信息性响应,表示请求仍在处理中)、2xx(成功,表示请求已被正常接收、理解并接受)、3xx(重定向,表示需要进一步操作才能完成请求)、4xx(客户端错误,表示请求本身存在问题)、5xx(服务器错误,表示服务器未能完成一个显然有效的请求)。这样的设计让客户端或代理即使不认识某个具体状态码,也能仅凭首位数字做出合理的兜底处理。
按分类整理了从 1xx(信息性响应)到 5xx(服务器错误)的全部标准 HTTP 状态码。每一项都提供官方原因短语(reason phrase)、一行说明和所依据的 RFC 条款,并支持按代码、短语或说明实时搜索。
HTTP 状态码按首位数字分为五类:1xx(信息性响应,表示请求仍在处理中)、2xx(成功,表示请求已被正常接收、理解并接受)、3xx(重定向,表示需要进一步操作才能完成请求)、4xx(客户端错误,表示请求本身存在问题)、5xx(服务器错误,表示服务器未能完成一个显然有效的请求)。这样的设计让客户端或代理即使不认识某个具体状态码,也能仅凭首位数字做出合理的兜底处理。
401 Unauthorized 实际上表示"未通过身份验证"(尽管名字容易误导,这其实是认证问题而非授权问题),而 403 Forbidden 则表示无论是否通过认证,服务器都因权限不足而拒绝请求。301/308(永久)与 302/307(临时)的区别对缓存和 SEO 都很重要,其中 307/308 在重定向时会保留原始的请求方法和正文,这一点与 302/301 不同。404 Not Found 与 410 Gone 也常被混淆——410 是更强烈的信号,明确表示资源此前存在但已被有意永久删除,提示客户端不要再重试。
2022 年发布的 RFC 9110(HTTP Semantics)整合并规范了此前分散在 RFC 7231 等文档中的 HTTP 状态码定义,是目前最新的标准。本表优先引用 RFC 9110 的条款编号(§15.x),而由其他独立规范定义的状态码——例如 WebDAV(RFC 4918)或 RFC 6585 中的限流类状态码(429/431)——则引用对应的 RFC。准确使用状态码可以让 API 客户端、监控工具和缓存服务器的行为更加可预测。