状态码··
目录
一、状态码分类(按首位数字)
二、常见状态码详解
1xx(信息性状态码)
2xx(成功状态码)
3xx(重定向状态码)
4xx(客户端错误状态码)
5xx(服务器错误状态码)
三、状态码记忆技巧
四、如何处理状态码?
在计算机网络中,状态码(Status Code)是服务器向客户端返回的三位数数字代码,用于表示请求的处理结果。以下是常见的 HTTP 状态码分类及详细说明,帮助你快速理解不同状态码的含义和用途:
一、状态码分类(按首位数字)
分类 | 描述 |
---|---|
1xx(信息性状态码) | 服务器已接收请求,需要客户端继续操作。 |
2xx(成功状态码) | 请求已成功处理。 |
3xx(重定向状态码) | 需要客户端进一步操作以完成请求(如跳转新 URL)。 |
4xx(客户端错误状态码) | 客户端请求存在错误(如参数错误、权限不足)。 |
5xx(服务器错误状态码) | 服务器处理请求时发生内部错误。 |
二、常见状态码详解
1xx(信息性状态码)
-
100 Continue
- 含义:服务器已收到请求的第一部分(如请求头),客户端可以继续发送剩余部分(如请求体)。
- 场景:常用于需要分块发送数据的长请求(如文件上传)。
-
101 Switching Protocols
- 含义:服务器切换协议(如从 HTTP 切换到 WebSocket)。
- 场景:WebSocket 握手时常见。
2xx(成功状态码)
-
200 OK
- 含义:请求成功,返回预期结果(如 HTML 页面、JSON 数据)。
- 场景:正常请求的默认成功响应。
-
201 Created
- 含义:请求已成功执行,并创建了新资源(如新建用户、文件)。
- 场景:RESTful API 中创建资源时返回(如
POST
请求)。
-
204 No Content
- 含义:请求成功,但无需返回内容(如删除操作后的响应)。
- 场景:常用于删除资源或执行无返回值的操作。
3xx(重定向状态码)
-
301 Moved Permanently
- 含义:资源永久迁移至新 URL,后续请求应使用新 URL。
- 场景:网站域名变更(如从
http
迁移至https
)。
-
302 Found(临时重定向)
- 含义:资源临时位于新 URL,客户端应使用原 URL 再次请求。
- 场景:登录成功后跳转至首页(不改变原有请求意图)。
-
307 Temporary Redirect
- 含义:与 302 类似,但要求客户端保留请求方法(如
POST
不转为GET
)。 - 场景:更规范的临时重定向,避免方法改变导致的副作用。
- 含义:与 302 类似,但要求客户端保留请求方法(如
-
308 Permanent Redirect
- 含义:与 301 类似,但要求客户端保留请求方法(如
POST
不转为GET
)。 - 场景:永久重定向时保留请求方法的完整性。
- 含义:与 301 类似,但要求客户端保留请求方法(如
4xx(客户端错误状态码)
-
400 Bad Request
- 含义:客户端请求语法错误(如参数缺失、格式错误)。
- 场景:前端提交无效表单、API 参数不正确。
-
401 Unauthorized
- 含义:请求需要身份验证(如未提供 Token、用户名密码错误)。
- 场景:访问需要登录的接口,未认证时返回。
-
403 Forbidden
- 含义:客户端已认证,但无权限访问资源(如权限不足、IP 被封禁)。
- 场景:普通用户尝试访问管理员接口。
-
404 Not Found
- 含义:请求的资源不存在(如 URL 错误、资源已删除)。
- 场景:访问不存在的页面或 API 路径。
-
405 Method Not Allowed
- 含义:请求方法不被允许(如对仅支持
GET
的接口使用POST
)。 - 场景:调用 API 时使用错误的请求方法(如用
GET
提交表单)。
- 含义:请求方法不被允许(如对仅支持
-
413 Payload Too Large
- 含义:请求体过大,超出服务器限制(如文件上传大小超限)。
- 场景:上传大文件时超出服务器配置的最大容量。
-
429 Too Many Requests
- 含义:客户端请求频率过高,触发限流机制。
- 场景:短时间内多次请求接口(如暴力破解、爬取数据)。
5xx(服务器错误状态码)
-
500 Internal Server Error
- 含义:服务器内部错误(如代码异常、数据库连接失败)。
- 场景:后端代码抛出未处理的异常,需排查服务器日志。
-
502 Bad Gateway
- 含义:服务器作为网关或代理时,从上游服务器收到无效响应(如 Nginx 代理的后端服务崩溃)。
- 场景:微服务架构中,下游服务不可用导致上游代理返回错误。
-
503 Service Unavailable
- 含义:服务器暂时无法处理请求(如过载、正在维护)。
- 场景:高并发下服务器资源耗尽,或系统正在升级维护。
-
504 Gateway Timeout
- 含义:服务器作为网关或代理时,等待上游服务器响应超时。
- 场景:下游服务响应过慢,导致上游代理超时。
三、状态码记忆技巧
- 2xx:成功(想到 “200 OK”)。
- 3xx:重定向(301/302 跳转)。
- 4xx:客户端错(404 找不到,403 没权限)。
- 5xx:服务器错(500 内部错误,503 服务不可用)。
四、如何处理状态码?
-
客户端(浏览器 / 前端):
- 根据状态码调整用户提示(如 “404 页面不存在”、“500 服务器开小差”)。
- 对重定向状态码(3xx)自动跳转新 URL。
- 对 429 限流,提示用户 “请稍后重试”。
-
服务器(后端):
- 合理设计状态码,避免返回模糊的 500 错误(如用 400 提示参数错误)。
- 记录 5xx 错误日志,快速定位代码或环境问题。