请教关于 http 状态码的问题

2017-06-10 23:46:09 +08:00
 hamalz

访问一个 api 来验证数据,比如说 email 是否已注册过或者是验证码之类的,验证失败了返回 400 bad request 还是 403 forbidden ?不太理解两个的区别

1799 次点击
所在节点    问与答
9 条回复
crab
2017-06-10 23:47:22 +08:00
返回 200 更好吧,然后响应内容标志是否注册这样。
qiayue
2017-06-10 23:49:12 +08:00
400 说的是请求错误,在 api 这个场景中一般是缺少参数
403 一般表示权限不对,比如未登录,或者已登录但你请求的是别人的信息
noe132
2017-06-10 23:50:51 +08:00
2xx 是请求成功
3xx 是资源已被转移
4xx 是请求失败
5xx 是服务器错误

要返回查询结果,肯定是请求成功啊。
hamalz
2017-06-10 23:59:43 +08:00
@crab
@noe132
意思是用 200 表示请求本身是成功的,然后通过响应内容来判断验证结果?我想的是直接通过状态码来判断验证结果。
flynaj
2017-06-11 00:03:22 +08:00
API 肯定是 200,看看其他人写的
wly19960911
2017-06-11 00:10:57 +08:00
不要根据状态码好,你是用 400 作为错误,假如测试真的出现 400 错误不要调试半天?

还是返回数据判断最好,以后也好改
hamalz
2017-06-11 00:15:27 +08:00
@crab
@flynaj
@wly19960911
我明白了,感谢回答
imn1
2017-06-11 00:15:48 +08:00
首先,这个状态码完全可以在后台程序设定,并不能完全确认
400 一般是判断来自客户端的请求不合理
401 一般是客户端身份判断不正确,例如登录没通过
403 多是服务器端主动拒绝
oh
2017-06-11 10:35:06 +08:00
如果想用 http 状态码做判断,记得上 https,不然有些地区运营商会把非 200 劫持,返回一个 200 状态的 html 页面

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/367535

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX