说一说http常见的状态码有哪些?适用场景?

2024-07-25 08:40:57 136
HTTP 状态码是服务器在响应 HTTP 请求时返回的数字代码,用于表示请求的处理结果。常见的 HTTP 状态码分为五类,每一类的第一个数字表示状态码的类别:
  1. 1xx - 信息响应: 表示临时响应,并需要请求者继续操作。
  2. 2xx - 成功响应: 表示请求已成功被服务器接收、理解并接受。
  3. 3xx - 重定向: 表示请求需要进一步操作以完成。
  4. 4xx - 客户端错误: 表示请求错误,无法被服务器处理。
  5. 5xx - 服务器错误: 表示服务器在处理请求时发生了错误。

常见的 HTTP 状态码及其适用场景

2xx 成功

  • 200 OK

    • 适用场景:请求成功。通常用于 GET 或 POST 请求,表示请求已被正确处理。
  • 201 Created

    • 适用场景:请求成功,并且服务器创建了新的资源。常用于 POST 请求。
  • 202 Accepted

    • 适用场景:请求已接受,但处理尚未完成。通常用于异步处理请求。
  • 204 No Content

    • 适用场景:服务器成功处理了请求,但没有返回任何内容。常用于 DELETE 请求。

3xx 重定向

  • 301 Moved Permanently

    • 适用场景:请求的资源已永久移动到新的 URL。浏览器应使用新的 URL 访问资源。
  • 302 Found

    • 适用场景:请求的资源临时从不同的 URL 响应。应继续使用原始 URL 进行后续请求。
  • 303 See Other

    • 适用场景:重定向到另一个 URL,通常用于 POST 请求后返回的 GET 请求。
  • 304 Not Modified

    • 适用场景:资源未被修改。通常用于缓存控制,表示客户端缓存的资源仍然是最新的。

4xx 客户端错误

  • 400 Bad Request

    • 适用场景:服务器无法理解请求,由于客户端的错误,如语法错误。
  • 401 Unauthorized

    • 适用场景:请求需要身份验证。用户未进行认证或认证失败。
  • 403 Forbidden

    • 适用场景:服务器理解请求但拒绝执行。用户权限不足以访问资源。
  • 404 Not Found

    • 适用场景:服务器找不到请求的资源。通常用于 URL 错误或资源已删除。
  • 405 Method Not Allowed

    • 适用场景:请求的方法被禁用,服务器不允许使用该方法。
  • 408 Request Timeout

    • 适用场景:服务器等待请求时超时。常用于客户端发送请求过慢的情况。

5xx 服务器错误

  • 500 Internal Server Error

    • 适用场景:服务器遇到未知错误,无法完成请求。通常是服务器端代码或配置的问题。
  • 501 Not Implemented

    • 适用场景:服务器不支持请求的方法。通常用于服务器端未实现功能。
  • 502 Bad Gateway

    • 适用场景:服务器作为网关或代理,从上游服务器收到无效响应。
  • 503 Service Unavailable

    • 适用场景:服务器暂时不可用,可能是由于超载或维护。通常用于短期的服务器不可用。
  • 504 Gateway Timeout

    • 适用场景:服务器作为网关或代理,无法在规定时间内从上游服务器获得响应。

这些状态码帮助客户端理解请求的结果,以及如何进行后续操作。正确使用和解释这些状态码有助于提高应用程序的用户体验和可维护性。