现在很多项目都是web项目,前后端分离,唯一的交互就是通过restful接口,而当我们请求返回的时候,status code如何返回呢?
首先介绍下常用的http status code有哪些。
2XX(Success 成功状态码)
200 - OK
请求成功
201 - Created
文档创建成功,比如新增一个user成功
202 - Accepted
请求已被接受,但相应的操作可能尚未完成。这用于后台操作,例如数据库压缩等异步操作
4XX(Client Error 客户端错误状态码)
400 - Bad Request
请求参数有误(比如应该传一个Number类型的参数,你却传了一个字符串),请求无法被服务器理解,修改后可以重新提交这个请求
401 - Unauthorized
当前请求用户未被授权,比如未登陆
403 - Forbidden
当前请求被拒绝。比如文件系统访问权限有问题,或者进行了越权操作(比如普通用户试图获取admin用户列表)
404 - Not Found
无法找到请求资源,一般是url错误
405 - Method Not Allowed
使用无效的HTTP请求类型对请求的URL进行了请求。比如某个api只支持post,而client却使用了get
406 - Not Acceptable
服务器不支持请求的content type
413 - Request Entity Too Large
请求体太大不支持,一般是上传的文件超出了限定导致的。
5XX(Server Error 服务器错误状态码)
500 - Internal Server Error
表示服务端在执行请求时发生了错误。 可能是服务器或者应用存在bug
503 - Service Unavailable
服务不可用,现在无法处理请求。
返回什么样的错误码
一般在restful API里,我们对于状态码的认定是这样的:
1. 2xx: server 收到 client 端请求,可以执行
2. 4xx: client 送來资料有错,server 端无法执行 (client 修正错误后,可再送一次请求)
3. 5xx: client 送來的资料没错,但 server 端出错无法执行(client