HTTP 状态码全解
1xx - 信息性状态码
表示请求已被接收,需要继续处理。
状态码 | 英文名称 | 中文描述 |
---|---|---|
100 | Continue | 继续。客户端应继续其请求,服务器已收到请求头。 |
101 | Switching Protocols | 切换协议。服务器根据客户端请求切换协议(如升级到WebSocket)。 |
102 | Processing (WebDAV) | 处理中。服务器已接收并正在处理请求,但无响应可用。 |
2xx - 成功状态码
表示请求已成功被服务器接收、理解并处理。
状态码 | 英文名称 | 中文描述 |
---|---|---|
200 | OK | 成功。请求已成功,返回了所请求的资源。 |
201 | Created | 已创建。请求成功且服务器创建了新的资源(常见于POST请求)。 |
202 | Accepted | 已接受。请求已接收,但尚未处理。 |
204 | No Content | 无内容。服务器成功处理,但未返回任何内容(常见于DELETE请求)。 |
206 | Partial Content | 部分内容。服务器成功处理了部分GET请求(用于断点续传或分块下载)。 |
203 | Non-Authoritative Info | 非授权信息。请求成功,但返回的元信息来自副本而非原始服务器。 |
205 | Reset Content | 重置内容。服务器处理成功,客户端应重置文档视图(如表单)。 |
3xx - 重定向状态码
表示需要客户端采取进一步的操作才能完成请求。
状态码 | 英文名称 | 中文描述 |
---|---|---|
301 | Moved Permanently | 永久移动。请求的资源已永久移动到新URI,浏览器会缓存新地址。 |
302 | Found | 临时移动。请求的资源临时被移动,客户端应继续使用原有URI。 |
303 | See Other | 查看其它地址。请求的响应可以在另一个URI上找到(通常用于POST后的重定向)。 |
304 | Not Modified | 未修改。所请求的资源自上次访问后未修改,客户端可直接使用缓存版本。 |
307 | Temporary Redirect | 临时重定向。与302类似,但确保请求方法和消息主体不会发生变化。 |
308 | Permanent Redirect | 永久重定向。与301类似,但确保请求方法和消息主体不会发生变化。 |
300 | Multiple Choices | 多种选择。请求的资源有多个可选表示,客户端需自行选择。 |
4xx - 客户端错误状态码
表示客户端发送的请求有错误,影响了服务器的处理。
状态码 | 英文名称 | 中文描述 |
---|---|---|
400 | Bad Request | 错误请求。请求存在语法错误,服务器无法理解。 |
401 | Unauthorized | 未授权。请求要求用户的身份认证(需提供有效凭证)。 |
403 | Forbidden | 禁止。服务器理解请求,但拒绝执行(通常因权限不足)。 |
404 | Not Found | 未找到。服务器无法根据客户端的请求找到资源。 |
405 | Method Not Allowed | 方法禁用。客户端请求中的方法(如GET, POST)被禁止在该资源上使用。 |
408 | Request Timeout | 请求超时。服务器等待客户端发送的请求时间过长。 |
409 | Conflict | 冲突。请求与服务器目标资源的当前状态相冲突(常见于资源更新)。 |
413 | Payload Too Large | 请求实体过大。请求的实体数据超过服务器能够处理的范围。 |
414 | URI Too Long | URI过长。请求的URI(网址)长度超过了服务器能够解释的限制。 |
429 | Too Many Requests | 请求过多。客户端在给定时间内发送了过多请求,被服务器限流。 |
5xx - 服务器错误状态码
表示服务器在处理请求的过程中发生了错误。
状态码 | 英文名称 | 中文描述 |
---|---|---|
500 | Internal Server Error | 服务器内部错误。服务器遇到意外情况,无法完成请求(通用错误)。 |
501 | Not Implemented | 尚未实施。服务器不支持请求的功能(如不支持PUT方法)。 |
502 | Bad Gateway | 错误网关。服务器作为网关或代理时,从上游服务器收到了无效响应。 |
503 | Service Unavailable | 服务不可用。服务器当前无法处理请求(由于超载、维护或临时停机)。 |
504 | Gateway Timeout | 网关超时。服务器作为网关或代理,未能及时从上游服务器获得响应。 |
505 | HTTP Version Not Supported | HTTP版本不受支持。服务器不支持请求所使用的HTTP协议版本。 |
💡 总结与应用场景
理解HTTP状态码有助于快速定位和解决问题。
- 调试前端问题:遇到 4xx 错误,首先检查请求的URL、参数、方法和身份认证信息是否正确。
- 排查后端问题:遇到 5xx 错误,表明问题出在服务器端,需要检查服务器日志、数据库连接、依赖服务或代码逻辑。
- 优化用户体验:合理利用 3xx 重定向(如301利于SEO)和 304 缓存可以减少服务器压力并加快页面加载。
- 系统设计:使用 429 状态码进行限流,保护系统免遭过量请求冲击。