HTTP 状态码
HTTP 状态码(HTTP Status Code)是服务器在响应客户端请求时返回的一个三位数字代码,用于表示请求的处理结果。HTTP 状态码是 HTTP 协议的一部分,帮助客户端(如浏览器或应用程序)了解请求是否成功、失败或需要进一步操作。
HTTP 状态码的分类
HTTP 状态码分为 5 类,每类的第一个数字表示状态码的类型:
1. 1xx(信息性状态码):
- 表示请求已被接收,继续处理。
- 例如:
- 100 Continue:客户端应继续发送请求的剩余部分。
- 101 Switching Protocols:服务器同意切换协议(如从 HTTP 切换到 WebSocket)。
2. 2xx(成功状态码):
- 表示请求已成功被服务器接收、理解并处理。
- 例如:
- 200 OK:请求成功,服务器返回了请求的数据。
- 201 Created:请求成功,服务器创建了新资源。
- 204 No Content:请求成功,但响应中没有内容。
3. 3xx(重定向状态码):
- 表示需要客户端进一步操作以完成请求。
- 例如:
- 301 Moved Permanently:请求的资源已永久移动到新位置。
- 302 Found:请求的资源临时移动到新位置。
- 304 Not Modified:资源未修改,客户端可以使用缓存的版本。
4. 4xx(客户端错误状态码):
- 表示客户端发送的请求有错误,服务器无法处理。
- 例如:
- 400 Bad Request:请求语法错误,服务器无法理解。
- 401 Unauthorized:请求需要身份验证。
- 403 Forbidden:服务器拒绝请求。
- 404 Not Found:请求的资源不存在。
5. 5xx(服务器错误状态码):
- 表示服务器在处理请求时发生错误。
- 例如:
- 500 Internal Server Error:服务器内部错误,无法完成请求。
- 502 Bad Gateway:服务器作为网关或代理时,从上游服务器收到无效响应。
- 503 Service Unavailable:服务器暂时无法处理请求(通常是由于过载或维护)。
常见的 HTTP 状态码
| 状态码 | 状态描述 | 含义
|---------|------------------------|-------------------------------------------------------------------------------------|
| 200 | OK | 请求成功,服务器返回了请求的数据。 |
| 201 | Created | 请求成功,服务器创建了新资源。 |
| 204 | No Content | 请求成功,但响应中没有内容。 |
| 301 | Moved Permanently | 请求的资源已永久移动到新位置。 |
| 302 | Found | 请求的资源临时移动到新位置。 |
| 304 | Not Modified | 资源未修改,客户端可以使用缓存的版本。 |
| 400 | Bad Request | 请求语法错误,服务器无法理解。 |
| 401 | Unauthorized | 请求需要身份验证。 |
| 403 | Forbidden | 服务器拒绝请求。 |
| 404 | Not Found | 请求的资源不存在。 |
| 500 | Internal Server Error | 服务器内部错误,无法完成请求。 |
| 502 | Bad Gateway | 服务器作为网关或代理时,从上游服务器收到无效响应。 |
| 503 | Service Unavailable | 服务器暂时无法处理请求(通常是由于过载或维护)。 |
### **HTTP 状态码的作用**
1. **客户端反馈**:
- 帮助客户端了解请求的处理结果,例如成功、失败或需要进一步操作。
2. **调试和排查问题**:
- 开发人员可以通过状态码快速定位问题,例如客户端请求错误或服务器内部错误。
3. **优化用户体验**:
- 根据状态码,客户端可以采取不同的操作,例如重定向到新页面或显示错误信息。
示例场景
1. 成功请求:
- 客户端请求一个网页,服务器返回 `200 OK` 和网页内容。
2. 资源未找到:
- 客户端请求一个不存在的资源,服务器返回 `404 Not Found`。
3. 服务器错误:
- 客户端请求一个资源,但服务器内部发生错误,返回 `500 Internal Server Error`。
总结
HTTP 状态码是 HTTP 协议的重要组成部分,用于表示请求的处理结果。通过状态码,客户端可以了解请求是否成功、失败或需要进一步操作。常见的状态码包括 `200 OK`、`404 Not Found` 和 `500 Internal Server Error` 等。