关于常见状态码,你了解多少?
作者:坚果
华为云享专家,InfoQ 签约作者,阿里云专家博主,51CTO 博客首席体验官,开源项目 GVA 成员之一,专注于大前端技术的分享,包括 Flutter,小程序,安卓,VUE,JavaScript。
大家好,我是坚果,今天在逛 github 的时候发现一个文档HTTP 接口设计指北,顺便了解了一下,觉得不错,就把关于状态码的知识整理了一下,大家喜欢的话,可以去阅读原文,获取更多细节。
请求成功 2xx
200 OK : 请求执行成功并返回相应数据,如
GET
成功201 Created : 对象创建成功并返回相应资源数据,如
POST
成功;202 Accepted : 接受请求,但无法立即完成创建行为。
204 No Content : 请求执行成功,不返回相应资源数据,如
PATCH
,DELETE
成功
重定向 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 : 由服务器当前不可用(过载或者当机)。
501
与 405
的区别是:405
是表示服务端不允许客户端这么做,501
是表示客户端或许可以这么做,但服务端还没有实现这个功能
相关资料:
如果您想获得更多关于 Flutter 的知识并探索更多新奇有趣的东西以更好地使用该框架,可以关注我的公众号,我的公众号里面有更多细节。
大家的点赞,收藏是对坚果的最大支持
版权声明: 本文为 InfoQ 作者【坚果】的原创文章。
原文链接:【http://xie.infoq.cn/article/1262e44ee6be440bb8f429059】。文章转载请联系作者。
评论