• 使用ASP.NET Core 3.x 构建 RESTful API P5 HTTP状态码 错误与故障


    使用ASP.NET Core 3.x 构建 RESTful API P5 HTTP状态码 错误与故障

    HTTP状态码

    • 请求是否执行成功了.
    • 如果请求失败了,那么谁为它负责

    HTTP 状态码是一种表述HTTP状态的一个标准,但是RESTful API 或者 Web API不一定非要实现所有的 HTTP 状态码如:

    状态码 1xx 信息性状态码

    1xx 属于信息的状态码,Web API并不使用1xx的状态码.

    状态码 2xx 请求成功
    • 意味着请求执行成功.
      • 200 - Ok,表示请求成功.
      • 201 - Created,请求成功并创建了资源;
      • 204 - No Content,请求成功,但是不应该返回任何东西,例如删除操作.
    HTTP 3xx 用于跳转
    • 用于跳转.例如告诉搜索引擎,某个页面的网址已经永久的改变了,绝大多数的Web API都不需要使用这类状态码.
    HTTP 4xx 客户端错误
    • 客户端错误:
      • 400 - Bad Request,表示API消费者发送到服务器的请求是有错误的;
      • 401 - Unauthorized,表示没有提供授权信息或者提供的授权信息不正确;
      • 403 - Forbidden,表示身份认证已经成功,但是已认证的用户却无法访问请求的资源;
      • 404 - Not Found,表示请求的资源不存在;
      • 405 - Method not allowed,当尝试发送请求到资源的时候,使用了不被支持的HTTP方法时,就会返回405状态码;
      • 406 - Not acceptable,这表示API消费者请求的表述格式并不被Web API所支持,并且API不会通过默认的表述格式.
      • 409 - Conflict,表示请求与服务器当前状态冲突,通常指更新资源时,发生的冲突,例如,当你编辑某个资源的时候,该资源在服务器上又进行了更新,所以你编辑的资源版本和服务器的不一致,当然有时候也用来表示你想要创建的资源在服务器上已经存在了,它就是用来处理并发问题的状态码.
      • 415 - Unsupported media type,与406正好相反,有一些请求必须带着数据发往服务器,这些数据都属于特定的媒体类型,如果API不支持该媒体类型格式,415就会被返回.
      • 422 - Unprocessable entity,它是HTTP扩展协议的一部分.他说明服务器已经懂得了实体的Content Type,也就是说415状态码是不合适的,此外,实体的语法也没有问题,所以400也不合适.但是服务器仍然无法处理这个实体数据,这时就可以返回422,所以它通常是用来表示语义上有错误,通常就是表示实体验证错误.
    HTTP 5xx 服务器错误
    • 500 - Internal server error,表示服务器出现了错误,客户端无能为力,只能以后再试试了!

    错误和故障 (Errors vs Faults)

    错误 (Error)
    • 错误通常是由API的消费者引起的。API消费者请求时传递的数据是不合理的,这时API就会正常的将其拒绝。
    • HTTP 4xx错误。
    • 并不会影响API的可用性.
    故障 (Faults)
    • 故障是指:针对一个合理的请求,API无法返回它的响应,也就是API存在问题.(比如业务逻辑,产生了异常,没有捕获,而直接抛出)
    • HTTP 5xx错误.
    • 会对API整体的可用性造成影响.
  • 相关阅读:
    基于Freescale的主流芯片HCS08
    BizTalk Server 2010 映射器(Mapper) [ 下篇 ]
    BizTalk Server 2010 使用 WCF Service [ 中篇 ]
    Ext JS 4 Beta 1发布了
    Step by Step WebMatrix网站开发之一:Webmatrix安装
    REST WebService与SOAP WebService的比较
    BizTalk Server 2010 使用 WCF Service [ 上篇 ]
    BizTalk Server 2010 映射器(Mapper) [ 中篇 ]
    BizTalk Server 2010 映射器(Mapper) [ 上篇 ]
    ExtJS 4 Beta 2预览:Ext.Brew包
  • 原文地址:https://www.cnblogs.com/HelloZyjS/p/12589780.html
Copyright © 2020-2023  润新知