HTTP 状态码 是 HTTP 协议中用来表示服务器处理请求后的结果的标准响应代码。HTTP 状态码以 三位数字 形式表示,每个状态码的 第一位数字 表示响应的类别。常见的状态码分为五类,其中 4开头 和 5开头 状态码是比较常见的,它们分别表示 客户端错误 和 服务器错误。
4开头的状态码:客户端错误(4xx)
- 以 4 开头的状态码表示客户端请求出错,通常是由于请求中的 错误 或 无效数据 导致的。客户端需要修正请求才能继续。
常见的 4xx 状态码:
-
400 Bad Request:请求无效,服务器无法理解请求的语法。
- 例如,缺少必要的参数,或者请求格式不正确。
-
401 Unauthorized:未经授权,表示客户端需要进行身份验证。
- 例如,访问需要登录权限的资源时没有提供有效的认证信息。
-
403 Forbidden:禁止访问,服务器理解请求但拒绝执行。
- 例如,客户端没有访问该资源的权限。
-
404 Not Found:找不到资源,服务器无法找到请求的资源。
- 例如,请求的页面、文件或资源不存在。
-
405 Method Not Allowed:请求方法不被允许,服务器不允许使用当前请求方法(如
GET
、POST
等)来访问该资源。- 例如,尝试用
POST
方法访问只允许GET
请求的资源。
- 例如,尝试用
-
408 Request Timeout:请求超时,客户端没有在服务器指定的时间内发送完整请求。
- 例如,网络不稳定,导致请求超时。
-
429 Too Many Requests:客户端发送了过多的请求,超出了服务器的限制。
- 例如,API 频繁调用,超出了限额。
5开头的状态码:服务器错误(5xx)
- 以 5 开头的状态码表示服务器发生错误,通常是由于 服务器内部故障 或 无法完成请求 导致的。客户端通常不需要修改请求,而是需要等待服务器恢复。
常见的 5xx 状态码:
-
500 Internal Server Error:服务器内部错误,服务器无法完成请求处理,通常是由于服务器的配置或程序错误。
- 例如,服务器遇到未处理的异常。
-
501 Not Implemented:服务器不支持当前请求所需要的功能。
- 例如,客户端请求的 HTTP 方法未被服务器实现。
-
502 Bad Gateway:网关错误,通常发生在代理服务器或反向代理服务器中,表示从上游服务器接收到无效响应。
- 例如,反向代理无法从后端服务器获取有效响应。
-
503 Service Unavailable:服务不可用,服务器暂时无法处理请求,通常是由于过载或服务器维护。
- 例如,服务器正忙或进行维护,无法提供服务。
-
504 Gateway Timeout:网关超时,代理服务器无法在指定时间内从上游服务器获取响应。
- 例如,反向代理等待后端服务器的响应超时。
-
505 HTTP Version Not Supported:HTTP 版本不受支持,表示服务器不支持客户端请求的 HTTP 协议版本。
- 例如,客户端请求了服务器不支持的 HTTP 协议版本。
4xx 和 5xx 状态码的区别
状态码类型 | 含义 | 常见情况 |
---|---|---|
4xx (客户端错误) | 表示请求错误,通常由客户端的问题引起。 | 客户端传递无效参数、没有提供有效认证、请求的资源不存在等。 |
5xx (服务器错误) | 表示服务器无法处理请求,通常是服务器端的问题。 | 服务器配置问题、代码错误、服务器负载过高、服务中断等。 |
总结:
- 4xx 状态码 通常表示 客户端问题,需要客户端修改请求或提供正确的身份验证。
- 5xx 状态码 通常表示 服务器问题,客户端无法修复,通常需要等待服务器恢复或管理员处理。