为什么要区分不同的 http 状态码?想说服同事

2022-04-13 10:28:42 +08:00
 dunhanson

我的个人的理解还是,这么做比较规范

但是同事的理解更多是优点好处是什么

比如用户登录错误之前的方式都是返回 http 状态码 200

{
  "code":4001001001,
  "message":"用户登录失败"
}

现在按照规范应该是,返回 http 状态码 401 ,然后 json 还是老样子

17793 次点击
所在节点    程序员
176 条回复
Vitta
2022-04-14 10:09:33 +08:00
@neutrino #144 这就跟代码写抽象和 纯 CV 差不多了,纯 CV 又不是不能跑
e7
2022-04-14 10:30:09 +08:00
telnet 127.0.0.1 8080
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
agsdfadf
HTTP/1.1 400 Bad Request
Connection: close

Connection closed by foreign host.

协议是协议,业务是业务,日志、监控啥的是没 es 还是没 prometheus
eijnix
2022-04-14 10:46:43 +08:00
@daimubai 我们团队也是这种做法
bfdh
2022-04-14 10:58:56 +08:00
200 一把梭,原因很简单,一些前端 /APP 端菜鸟根本不知道什么是 http 状态码。
night98
2022-04-14 11:05:16 +08:00
你是 leader ,直接推
不是 leader ,保持现状就行
菜鸡哪都有,打开各个大厂的页面你会发现各种奇奇怪怪的 http 用法,大厂里面也存在两级分化,这事没办法
l00t
2022-04-14 12:26:03 +08:00
监控不了是监控的问题,不要削足适履。
yamedie
2022-04-14 12:42:04 +08:00
路过围观一下,另外下次别刷前端娱乐圈了好吗?
wy315700
2022-04-14 12:57:13 +08:00
一般 HTTP 状态码用于通信状态

具体业务状态封装在 body 里
lff0305
2022-04-14 13:13:49 +08:00
不知道现在如何了, 十多年前某银行的防火墙 /F5 还是什么会自作主张的修改非 200 的 response, 变成类似

upstream: error 400
messge: .......
adoal
2022-04-14 13:17:26 +08:00
另外,HTTP API 给 web 前端浏览器里用 JS 调用和给第三方应用系统的后端调用也是两种不同的场景,对最佳实践的选择也有影响。
fromzero
2022-04-14 14:28:52 +08:00
http 层的 code 符合标准就行 。json 里面的 code 是业务相关的状态,随便怎么定义都行。
hejw19970413
2022-04-14 16:17:59 +08:00
两个字 就够了 规定!
AoEiuV020CN
2022-04-14 18:03:59 +08:00
不管有什么优点有什么理由,修改这个都是麻烦,没好处,
cozof
2022-04-14 18:44:20 +08:00
应用层永远不应该去修改 http code
hlayk
2022-04-15 09:59:02 +08:00
https://yangjunhui.monster/t/808610#reply44
有一点楼上没提到过的 在 Android 这边若使用网络请求框架 retrofit (业内排第一的网络框架)对于非 200 的 http code 是直接抛异常的 所以若返回非 200 的 http code 我们需要 try 然后再去解析 这非常的不优雅
chanchan
2022-04-15 10:40:00 +08:00
有些人跳脱出技术讨论,直接就认定自己是对的,别人是错的,说什么别人就是懒、摆烂、什么"封闭文化"之类的。真让人恶心

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

https://yangjunhui.monster/t/846679

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

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

© 2021 V2EX