开发中常见状态码以及状态码用途
前言
前端与后端进行数据交互时候,可以根据不同的状态码,快速定位问题所做,同时帮助我们能够更好的进行 SEO;
通常分为1xx到5xx。
1xx是信息响应,
2xx是成功,
3xx是重定向,
4xx客户端错误,
5xx服务器错误
比如302和307重定向的区别,301是永久重定向,302是临时,而307是更严格的临时重定向。
比如403 Forbidden表示权限问题,而401需要认证
比如502和504,都是网关错误,但502是上游服务器无效响应,而504是网关超时。这时候需要明确两者的不同,帮助用户理解问题所在。
1xx(信息响应)
表示请求已被接收,需要继续处理。
100 Continue
:客户端应继续发送请求的剩余部分(用于大文件上传前的确认)。
101 Switching Protocols
:服务器同意客户端请求切换协议(如从 HTTP 升级到 WebSocket)。
102 Processing
:服务器已收到请求,但处理尚未完成(用于异步操作)。
2xx(成功响应)
表示请求已成功被服务器接收、理解并处理。
200 OK
:请求成功,响应中包含请求的数据(最常见)。
201 Created
:请求成功且服务器创建了新资源(如 POST 请求后返回)。
202 Accepted
:请求已接受,但处理尚未完成(异步任务)。
204 No Content
:请求成功,但响应中无内容(如 DELETE 请求后返回)。
206 Partial Content
:服务器返回部分内容(用于分段下载或断点续传)。
3xx(重定向)
需要客户端进一步操作以完成请求。
301 Moved Permanently
:资源已永久移动到新 URL(SEO 权重转移)。
302 Found
:资源临时移动到新 URL(浏览器默认会重定向,但保留原 URL)。
304 Not Modified
:资源未修改,客户端可使用缓存(用于缓存验证)。
307 Temporary Redirect
:临时重定向,要求客户端保持原请求方法(更严格的 302)。
308 Permanent Redirect
:永久重定向,要求客户端保持原请求方法(更严格的 301)。
4xx(客户端错误)
客户端请求有误,服务器无法处理。
400 Bad Request
:请求语法错误或参数无效(通用客户端错误)。
401 Unauthorized
:需要身份验证(如未登录访问受限资源)。
403 Forbidden
:服务器拒绝执行请求(权限不足)。
404 Not Found
:请求的资源不存在(URL 错误或资源已删除)。
405 Method Not Allowed
:请求方法不被允许(如用 GET 访问只支持 POST 的接口)。
408 Request Timeout
:服务器等待请求超时。
429 Too Many Requests
:客户端发送过多请求(限流)。
5xx(服务器错误)
服务器处理请求时发生错误。
500 Internal Server Error
:服务器内部错误(通用错误,需查看日志排查)。
501 Not Implemented
:服务器不支持请求的功能(如未实现的 HTTP 方法)。
502 Bad Gateway
:网关或代理服务器收到无效响应(上游服务器故障)。
503 Service Unavailable
:服务器暂时不可用(维护或过载)。
504 Gateway Timeout
:网关或代理服务器等待上游响应超时。
505 HTTP Version Not Supported
:服务器不支持请求的 HTTP 版本。
其他特殊状态码
418 I'm a Teapot
:彩蛋状态码(来自愚人节玩笑,实际不用于生产)。
451 Unavailable For Legal Reasons
:因法律原因不可访问(如政府审查)。
核心应用场景
调试与问题排查:通过状态码快速定位问题(如 404 检查 URL,500 检查服务器日志)。
API 设计
:RESTful API 使用状态码表示操作结果(如 201 表示资源创建成功)。
SEO 优化
:正确使用 301/302 重定向避免权重流失。
缓存控制
:304 状态码帮助减少重复数据传输。