关于常见状态码,你了解多少?

请求成功2xx

  • 200 OK : 请求执行成功并返回相应数据,如 GET 成功
  • 201 Created : 对象创建成功并返回相应资源数据,如 POST 成功;
  • 202 Accepted : 接受请求,但无法立即完成创建行为。
  • 204 No Content : 请求执行成功,不返回相应资源数据,如 PATCHDELETE 成功

重定向3xx

重定向的新地址都需要在响应头 Location 中返回

  • 301 Moved Permanently : 被请求的资源已永久移动到新位置
  • 302 Found : 请求的资源现在临时从不同的 URI 响应请求
  • 303 See Other : 对应当前请求的响应可以在另一个 URI 上被找到,客户端应该使用 GET 方法进行请求
  • 307 Temporary Redirect : 对应当前请求的响应可以在另一个 URI 上被找到,客户端应该保持原有的请求方法进行请求

条件请求

  • 304 Not Modified : 资源自从上次请求后没有再次发生变化,主要使用场景在于实现数据缓存
  • 409 Conflict : 请求操作和资源的当前状态存在冲突。主要使用场景在于实现并发控制
  • 412 Precondition Failed : 服务器在验证在请求的头字段中给出先决条件时,没能满足其中的一个或多个。主要使用场景在于实现并发控制

客户端错误4xx

  • 400 Bad Request : 因为语法错误,服务器未能理解请求。
  • 401 Unauthorized : 合法请求,但对被请求页面的访问被禁止。因为被请求的页面需要身份验证,客户端没有提供或者身份验证失败。
  • 403 Forbidden : 合法请求,但对被请求页面的访问被禁止。
  • 404 Not Found : 服务器无法找到被请求的页面
  • 405 Method Not Allowed : 不请求中指定的方法不被允许。
  • 406 Not Acceptable : 服务器生成的响应无法被客户端所接受。
  • 410 Gone : 被请求的资源已被删除,只有在确定了这种情况是永久性的时候才可以使用,否则建议使用 404 Not Found
  • 413 Payload Too Large : 由于POST 或者 PUT所请求的实体太大,服务器不会接受请求。
  • 415 Unsupported Media Type : 由于媒介类型不被支持,服务器不会接受请求。
  • 422 Unprocessable Entity : 请求格式正确,但是由于含有语义错误,无法响应
  • 428 Precondition Required : 要求先决条件,如果想要请求能成功必须满足一些预设的条件

服务端错误5xx

  • 500 Internal Server Error : 服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。
  • 501 Not Implemented : 服务器不支持当前请求所需要的某个功能,或者服务器无法完成请求。
  • 502 Bad Gateway : 请求未完成,作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应。
  • 503 Service Unavailable : 由服务器当前不可用(过载或者当机)。

501405 的区别是:405 是表示服务端不允许客户端这么做,501 是表示客户端或许可以这么做,但服务端还没有实现这个功能

相关资料:

HTTP 接口设计指北

如果您想获得更多关于 Flutter 的知识并探索更多新奇有趣的东西以更好地使用该框架,可以关注我的公众号,我的公众号里面有更多细节。

大家的点赞,收藏是对坚果的最大支持



上一篇:双11专刊|云原生数据仓库AnalyticDB支撑双11,大幅提升分析实时性和用户体验


下一篇:鸿蒙-webview的使用和JS交互(附源码)【鸿蒙开发04】