HTTP 状态码
按数字或名称搜索,或按类别筛选。每个状态码都链接到对应规范。
1xx 信息响应
请求已收到,处理继续进行。在应用代码中很少见到。
2xx 成功
请求已被成功接收、理解并接受。
3xx 重定向
需要进一步操作(通常是访问另一个 URL)才能完成请求。
4xx 客户端错误
请求有误:语法错误、未认证、无权限或资源不存在。
5xx 服务器错误
请求看起来有效,但服务器处理失败。
什么是 HTTP 状态码?
每个 HTTP 响应都以一个三位数的状态码开头,告诉客户端请求的结果。第一位数字决定类别:1xx 信息、2xx 成功、3xx 重定向、4xx 客户端错误、5xx 服务器错误。浏览器、搜索引擎、缓存、API 客户端和监控工具都会根据这些状态码行事,因此选对状态码很重要:301 会把 SEO 权重传递给新 URL 而 302 不会,503 告诉爬虫稍后再来,429 告诉 API 客户端放慢速度。这些状态码主要定义在 RFC 9110(HTTP 语义)中,少数在单独的 RFC 里。
功能
- • 收录 IANA 注册的全部 61 个状态码(100 到 511)
- • 通俗解释每个状态码的含义和使用场景
- • 按数字、名称或关键词即时搜索,并可按类别筛选
- • 直接链接到定义该状态码的 RFC 章节
- • 按类别着色,支持 #状态码 锚点分享链接
快速、可离线使用
完整参考资料已内置于页面中,搜索在浏览器内即时完成,不会向服务器发送请求。
HTTP 状态码使用方法
- 1
在搜索框中输入数字(如 404)、名称(如 "gateway")或关键词(如 "redirect"),结果随输入实时更新。
- 2
用类别按钮(1xx 到 5xx)缩小列表,例如一次查看所有客户端错误。
- 3
阅读每个状态码下的说明:它的含义、服务器何时应该返回、客户端会如何处理。
- 4
点击 RFC 链接查看准确规范,或用 #429 这样的锚点直接分享某个状态码。
实际应用示例
设计 REST API
POST 成功后返回 201 Created 并带 Location 头,DELETE 后返回 204 No Content,JSON 格式错误返回 400,校验失败返回 422,与当前状态冲突返回 409。
迁移页面并保留 SEO
永久迁移用 301 或 308,让搜索引擎转移排名;临时跳转(如 A/B 测试)用 302 或 307。308 和 307 还会保持 POST 方法不变。
认证类错误
用户未登录或 token 无效时返回 401;已知用户但无权限时返回 403。很多 API 会用 404 代替 403,以隐藏资源是否存在。
维护与过载
维护期间返回 503 并带 Retry-After 头,让爬虫保留排名;客户端超出频率限制时返回 429 并带 Retry-After。
常见问题
401 和 403 有什么区别?+
401 Unauthorized 表示“你是谁?”:缺少认证或认证失败。403 Forbidden 表示“我知道你是谁,但你不能做这件事”。重新登录可以解决 401,但解决不了 403。
重定向用 301 还是 302?+
旧 URL 永久失效用 301(或 308),之后还会恢复用 302(或 307)。永久迁移却用 302,可能会延迟搜索引擎收录新 URL。
502、503 和 504 有什么区别?+
502 Bad Gateway:代理从上游服务器收到无效响应。503 Service Unavailable:服务器过载或正在维护。504 Gateway Timeout:上游服务器没有及时响应。
出错时可以返回 200 加错误信息吗?+
不应该。客户端、缓存和监控都依赖状态码。失败时返回 200 会让工具发现不了错误,错误页面还可能被当作“软 404”收录。