HTTP Code

1xx - 信息性状态码(临时响应)

表示请求已收到,正在继续处理。平时在浏览器中很少见到。

  • 100 Continue:客户端应继续发送请求的剩余部分。通常用于 POST 或 PUT 大量数据前,先询问服务器是否愿意接收。
  • 101 Switching Protocols:客户端要求切换协议(如切换到 WebSocket),服务器已同意。

2xx - 成功状态码(请求成功)

表示请求已被服务器成功接收、理解并处理。

  • 200 OK:最常用的成功状态码。表示请求成功,返回的响应体包含了所请求的数据(如 HTML 页面、JSON 数据等)。
  • 201 Created:创建成功。通常在 POST 或 PUT 请求后,表示成功在服务器上创建了一个新资源。响应头 Location 字段通常会包含新资源的 URL。
  • 202 Accepted:请求已接受,但尚未处理完成。适用于异步任务,比如“请求已进入队列,正在处理中”。
  • 204 No Content:请求成功,但响应报文中没有实体的主体部分。常用于 DELETE 请求成功,或前端只需知道操作成功而无需返回数据的 AJAX 请求。

3xx - 重定向状态码(需要进一步操作)

表示客户端需要执行额外的操作来完成请求,通常是重定向。

  • 301 Moved Permanently:永久重定向。请求的资源已被永久移动到新的 URL。搜索引擎会更新其链接到新的地址。浏览器会缓存这个重定向。
  • 302 Found:临时重定向。请求的资源临时从另一个 URL 响应。搜索引擎不会更新链接。这是最常见的重定向类型,但规范要求方法不变(实际上浏览器常会改为 GET)。
  • 304 Not Modified:资源未修改。用于缓存控制。当客户端拥有缓存的版本,并通过请求头(如 If-Modified-Since)询问资源是否更新时,如果资源未变,服务器会返回此状态码,告诉客户端直接使用缓存。这节省了带宽。
  • 307 Temporary Redirect:临时重定向(严格)。与 302 类似,但严格要求客户端不能改变原始的请求方法(例如,POST 必须仍是 POST)。比 302 更规范。

4xx - 客户端错误状态码(请求有误)

表示客户端可能出错,服务器无法处理请求。

  • 400 Bad Request:错误的请求。服务器因为请求的语法无效而无法理解。就像一个语法错误的句子,服务器看不懂。
  • 401 Unauthorized:未认证。表示请求需要用户认证。通常需要登录或提供 Token。注意,这个名字容易误解,它实际是“未认证”,而不是“未授权”。
  • 403 Forbidden:禁止访问。服务器理解请求,但拒绝执行。与 401 不同,身份验证也无济于事(比如普通用户尝试访问管理员页面)。
  • 404 Not Found:最著名的错误码。服务器找不到请求的资源。可能是 URL 错误,或资源已被删除。
  • 405 Method Not Allowed:方法不被允许。请求行中指定的方法(GET, POST 等)不能用于请求此资源。例如,对只接受 GET 的 URL 发送了 POST 请求。
  • 408 Request Timeout:请求超时。服务器等待客户端发送请求的时间过长。
  • 409 Conflict:冲突。请求与服务器的当前状态冲突。常见于 PUT 请求(例如,修改文件时版本冲突)。
  • 429 Too Many Requests:请求过多。客户端在给定的时间内发送了太多请求(限流)。

5xx - 服务器错误状态码(服务器处理请求出错)

表示服务器在处理请求时发生错误或内部故障。

  • 500 Internal Server Error:最通用的服务器错误码。服务器遇到了一个未曾预料的状况,导致它无法完成对请求的处理。通常是后端代码抛出了未捕获的异常。
  • 502 Bad Gateway:错误的网关。服务器作为网关或代理,从上游服务器收到了一个无效的响应。常见于 Nginx 后面的应用服务器(如 PHP-FPM)挂掉或未启动。
  • 503 Service Unavailable:服务不可用。服务器当前无法处理请求(由于超载或进行停机维护)。通常,这是一个临时状态。响应头中可能包含 Retry-After 字段,告知客户端何时可以重试。
  • 504 Gateway Timeout:网关超时。服务器作为网关或代理,未能及时从上游服务器收到响应。常见于网络延迟或上游服务器处理过慢。

快速记忆表格

状态码 类别 含义 常见场景
200 成功 请求成功 正常获取网页或数据
201 成功 创建成功 创建新用户、新文章成功
204 成功 无内容 删除成功,或前端AJAX请求无需返回数据
301 重定向 永久移动 网站改版,旧链接永久跳转到新链接
302 重定向 临时移动 登录后跳回首页
304 重定向 未修改 使用浏览器缓存,节省流量
400 客户端错误 错误请求 请求参数格式错误
401 客户端错误 未认证 需要登录
403 客户端错误 禁止访问 权限不足
404 客户端错误 未找到 请求的URL不存在
429 客户端错误 请求过多 API调用频率超限
500 服务器错误 内部服务器错误 后端代码Bug,数据库连接失败
502 服务器错误 错误网关 Nginx 无法连接到后端服务
503 服务器错误 服务不可用 服务器维护或过载
504 服务器错误 网关超时 后端服务响应太慢

希望这个列表对您有帮助!