开发常见错误状态码

embedded/2024/10/23 13:48:57/

一些常见的 HTTP 状态码及其描述,这些状态码在后端开发中经常遇到。这些状态码分为几类:信息性状态码、成功状态码、重定向状态码、客户端错误状态码和服务器错误状态码。

信息性状态码 (1xx)

  • 100 Continue:客户端应继续其请求。
  • 101 Switching Protocols:服务器已理解客户端的请求,并将通过升级协议来进行处理。

成功状态码 (2xx)

  • 200 OK:请求成功,响应体通常包含所请求的资源。
  • 201 Created:请求成功并且服务器创建了一个新的资源。
  • 202 Accepted:请求已被接受,但尚未处理完成。
  • 204 No Content:请求成功,但响应体为空。

重定向状态码 (3xx)

  • 301 Moved Permanently:请求的资源已被永久移动到新的 URI。
  • 302 Found:请求的资源临时从不同的 URI 响应请求。
  • 303 See Other:请求的资源可以通过 GET 方法从另一个 URI 获取。
  • 304 Not Modified:资源未被修改,客户端可以使用缓存的版本。
  • 307 Temporary Redirect:请求的资源临时从不同的 URI 响应请求,但请求方法不应改变。
  • 308 Permanent Redirect:请求的资源已被永久移动到新的 URI,但请求方法不应改变。

客户端错误状态码 (4xx)

  • 400 Bad Request:服务器无法理解请求的格式,通常是由于客户端错误。
  • 401 Unauthorized:请求要求用户的身份认证。
  • 403 Forbidden:服务器理解请求,但拒绝执行,通常是由于权限问题。
  • 404 Not Found:请求的资源不存在。
  • 405 Method Not Allowed:请求方法对请求的资源不适用。
  • 406 Not Acceptable:服务器无法根据客户端请求的内容特性生成响应。
  • 408 Request Timeout:服务器等待请求超时。
  • 409 Conflict:请求冲突,通常是因为并发编辑。
  • 410 Gone:请求的资源已不再可用,且服务器不知道应该返回哪个资源。
  • 411 Length Required:服务器拒绝处理请求,因为请求缺少 Content-Length 头。
  • 412 Precondition Failed:服务器拒绝处理请求,因为请求中的条件未能满足。
  • 413 Payload Too Large:请求实体太大,服务器拒绝处理。
  • 414 URI Too Long:请求的 URI 太长,服务器拒绝处理。
  • 415 Unsupported Media Type:请求的媒体类型不受支持。
  • 416 Range Not Satisfiable:请求的范围无法满足。
  • 417 Expectation Failed:服务器无法满足 Expect 请求头的要求。
  • 422 Unprocessable Entity:请求格式正确,但由于语义错误无法处理。
  • 429 Too Many Requests:客户端发送的请求过多,被限流。
  • 431 Request Header Fields Too Large:请求头字段过大。
  • 451 Unavailable For Legal Reasons:请求的资源因法律原因不可用。

服务器错误状态码 (5xx)

  • 500 Internal Server Error:服务器遇到意外情况,无法完成请求。
  • 501 Not Implemented:服务器不支持请求的方法。
  • 502 Bad Gateway:服务器作为网关或代理,从上游服务器收到了无效的响应。
  • 503 Service Unavailable:服务器暂时无法处理请求,通常是由于过载或维护。
  • 504 Gateway Timeout:服务器作为网关或代理,未能及时从上游服务器收到响应。
  • 505 HTTP Version Not Supported:服务器不支持请求中使用的 HTTP 版本。
  • 507 Insufficient Storage:服务器无法存储完成请求所必需的内容。
  • 508 Loop Detected:服务器检测到无限循环。
  • 511 Network Authentication Required:客户端需要进行网络认证。

自定义错误码

除了标准的 HTTP 状态码,一些应用还会使用自定义的错误码来提供更多细节。这些自定义错误码通常在响应体中以 JSON 格式返回,例如:

{"code": 1001,"message": "Invalid user credentials"
}

示例

假设你有一个 RESTful API,以下是一些常见的错误响应示例:

  1. 400 Bad Request

    {"code": 400,"message": "Invalid request format"
    }
  2. 401 Unauthorized

    {"code": 401,"message": "Authentication required"
    }
  3. 403 Forbidden

    {"code": 403,"message": "Access denied"
    }
  4. 404 Not Found

    {"code": 404,"message": "Resource not found"
    }
  5. 422 Unprocessable Entity

    {"code": 422,"message": "Validation failed","errors": {"email": ["Email is required"],"password": ["Password must be at least 6 characters"]}
    }
  6. 500 Internal Server Error

    {"code": 500,"message": "Internal server error"
    }

http://www.ppmy.cn/embedded/129826.html

相关文章

《软件报价全攻略:深入剖析与精准决策》

《软件报价全攻略:深入剖析与精准决策》 一、软件报价基础认知二、软件开发价格估算方法(一)公式构成与解析(二)工作量计算要素(三)开发费用构成 三、不同软件报价案例分析(一&#…

YoloV9改进策略:主干网络改进|DeBiFormer,可变形双级路由注意力|全网首发

摘要 在目标检测领域,YoloV9以其高效和准确的性能而闻名。然而,为了进一步提升其检测能力,我们引入了DeBiFormer作为YoloV9的主干网络。这个主干网络的计算量比较大,不过,上篇双级路由注意力的论文受到很大的关注,所以我也将这篇论文中的主干网络用来改进YoloV9,卡多的…

【java】数组(超详细总结)

目录 一.一维数组的定义 1.创建数组 2.初始化数组 二.数组的使用 1.访问数组 2.遍历数组 3.修改数据内容 三.有关数组方法的使用 1.toString 2. copyOf 四.查找数组中的元素 1.顺序查找 2.二分查找binarySearch 五.数组排序 1.冒泡排序 2.排序方法sort 六.数组逆置…

双11预售爆单,个性化消费趋势下3C数码品牌如何脱颖而出?

在双11预售爆单的背景下,3C数码品牌面临着前所未有的机遇与挑战。随着消费者需求的日益个性化和多样化,3C品牌需要采取一系列策略来脱颖而出,满足市场需求,提升品牌影响力。 一、双11大促3C数码产品热卖 对于双11这样的大促而言…

uniapp开发钉钉小程序踩坑记录...

自定义组件样式丢失 原因:钉钉不支持styleIsolation为apply-shared 解决方案: 1)构建出来的包全局替换为shared --此方法本人验证可行 2)将hbuildx降低版本(未验证) 接口返回的非json数据,…

C++——NetWork

1.network.h #include <iostream> #include <winsock2.h> #include <cstring>class NetWork {int type; // 通信协议类型int sock_fd; // socket 描述符sockaddr_in addr; // 通信地址int addrlen; // 通信地址字节数bool issvr; …

读书电子书资源个人常用汇总

“问渠哪得清如许&#xff0c;为有源头活水来&#xff01;”喜欢读书的朋友&#xff0c;一定想阅读更多的书籍充实自己的人生&#xff0c;以下提供一些网络上免费的资源。 大学资源网 https://www.dxzy163.com/list/index157.html书栈网https://www.bookstack.cn/电子书-天涯客…

齿轮参数及强度计算【机械设计工具集】

齿轮参数及强度计算软件绿色版是一个十分精准的齿轮精度计算工具&#xff0c;齿轮参数及强度计算软件绿色版是一款齿轮强度参数计算软件&#xff0c;操作简单、自动化程度高、灵活性强&#xff0c;输入电机功率&#xff0c;或扭矩等参数就能直接计算出齿轮所需模数、齿宽等参数…