我将详细介绍向服务器发送请求时,返回的状态有哪些,具体指的是什么,宇宙无敌详细!
HTTP 状态码(HTTP Status Codes)是服务器响应客户端请求时返回的 3位数字代码,用于表示请求的处理结果。它们分为 5类(以首位数字区分),每类有特定的语义。以下是常见的 HTTP 状态码及其详细说明:
1. 1xx(信息性状态码)
表示请求已被接收,需要继续处理。
• 100 Continue:客户端应继续发送请求的剩余部分(如大文件上传时先询问服务器是否接受)。
• 101 Switching Protocols:服务器同意客户端请求,切换协议(如从 HTTP 升级到 WebSocket)。
• 102 Processing(WebDAV):服务器已接收请求但尚未完成处理(用于异步操作)。
2. 2xx(成功状态码)
表示请求已成功被服务器接收、理解并处理。
• 200 OK:请求成功,响应中返回所需数据(如网页、API 数据)。
• 201 Created:请求成功且服务器创建了新资源(如 POST 新建数据后返回)。
• 202 Accepted:请求已接收但尚未处理完成(适用于异步任务)。
• 204 No Content:请求成功,但响应无内容(如 DELETE 请求成功后的响应)。
• 206 Partial Content:服务器返回部分数据(用于分块下载或断点续传)。
3. 3xx(重定向状态码)
表示需要客户端进一步操作以完成请求。
• 301 Moved Permanently:资源已永久重定向到新 URL,客户端应更新书签。
• 302 Found:资源临时重定向到新 URL(浏览器默认会继续用原 URL 请求)。
• 304 Not Modified:资源未修改,客户端可使用缓存(响应中无 Body)。
• 307 Temporary Redirect:与 302 类似,但强制要求客户端保持原请求方法(如 POST 不转为 GET)。
• 308 Permanent Redirect:与 301 类似,但强制保持原请求方法。
4. 4xx(客户端错误状态码)
表示客户端发送的请求有错误,服务器无法处理。
• 400 Bad Request:请求语法错误(如参数格式错误)。
• 401 Unauthorized:需要身份认证(如未登录时访问受限资源)。
• 403 Forbidden:服务器拒绝执行请求(权限不足)。
• 404 Not Found:请求的资源不存在(如 URL 错误或资源已删除)。
• 405 Method Not Allowed:请求方法不被支持(如用 POST 访问只允许 GET 的接口)。
• 408 Request Timeout:服务器等待请求超时。
• 429 Too Many Requests:客户端发送请求过多(触发限流)。
5. 5xx(服务器错误状态码)
表示服务器处理请求时发生错误。
• 500 Internal Server Error:服务器内部错误(如代码异常)。
• 501 Not Implemented:服务器不支持请求的功能(如未实现的 API)。
• 502 Bad Gateway:代理服务器从上游服务器收到无效响应(如反向代理后端服务崩溃)。
• 503 Service Unavailable:服务暂时不可用(如服务器维护或过载)。
• 504 Gateway Timeout:代理服务器等待上游服务器响应超时。
• 505 HTTP Version Not Supported:服务器不支持请求的 HTTP 协议版本。
常见场景示例
状态码 | 场景示例 |
---|---|
200 | 成功访问网页或 API 接口。 |
301 | 网站域名更换,旧域名跳转到新域名。 |
404 | 访问的页面不存在(如输入错误 URL)。 |
500 | 服务器数据库连接失败导致崩溃。 |
503 | 电商网站因流量过大暂时关闭。 |
扩展知识
• 状态码与 RESTful API:
• GET
→ 200(成功)、404(资源不存在)
• POST
→ 201(创建成功)、400(请求体错误)
• PUT
→ 200/204(更新成功)
• DELETE
→ 204(删除成功)
• 自定义状态码:某些 API 会扩展状态码(如 599
表示自定义错误),但需遵循 HTTP 语义。
如果需要更详细的标准,可参考 RFC 9110(HTTP 语义)。