HTTP状态码及其适用场景

HTTP 状态码是服务器响应客户端请求时返回的三位数字代码,用于表示请求的处理结果。状态码分为五类,每类以不同的数字开头:
1xx(信息性状态码)
表示请求已被接收,继续处理。
- 100 Continue:客户端应继续发送请求的剩余部分。通常在发送大文件前使用。
- 101 Switching Protocols:服务器根据客户端的请求切换协议,如从 HTTP 切换到 WebSocket。
2xx(成功状态码)
表示请求已成功被服务器接收、理解并处理。
- 200 OK:请求成功,返回的数据在响应体中。适用于 GET、POST 等请求。
- 201 Created:请求成功且服务器创建了新资源,通常在 POST 或 PUT 请求后返回。
- 204 No Content:请求成功,但响应体中没有内容。适用于 DELETE 请求或不需要返回数据的操作。
3xx(重定向状态码)
表示需要客户端采取进一步的操作来完成请求。
- 301 Moved Permanently:请求的资源已永久移动到新位置,客户端应使用新的 URI。
- 302 Found:请求的资源临时从不同的 URI 响应请求,客户端应继续使用原 URI。
- 304 Not Modified:资源未修改,客户端可以使用缓存的版本。适用于条件 GET 请求。
4xx(客户端错误状态码)
表示客户端可能出错,妨碍了服务器的处理。
- 400 Bad Request:请求无效,服务器无法理解。通常是由于请求参数错误。
- 401 Unauthorized:请求需要用户认证。适用于需要登录的 API。
- 403 Forbidden:服务器理解请求但拒绝执行。适用于权限不足的情况。
- 404 Not Found:请求的资源不存在。适用于请求的 URI 无效。
5xx(服务器错误状态码)
表示服务器在处理请求时发生错误。
- 500 Internal Server Error:服务器遇到意外情况,无法完成请求。适用于服务器内部错误。
- 502 Bad Gateway:服务器作为网关或代理时,从上游服务器收到无效响应。
- 503 Service Unavailable:服务器暂时无法处理请求,通常是由于过载或维护。
适用场景
- 200 OK:适用于大多数成功的请求。
- 201 Created:适用于创建新资源的 POST 请求。
- 301/302:适用于 URL 重定向。
- 400/401/403/404:适用于客户端错误处理。
- 500/503:适用于服务器错误处理。
理解这些状态码及其适用场景,有助于更好地调试和优化 Web 应用。