为什么那么多公司做前后端分离项目后端响应的 HTTP 状态一律 200?

小天天天天    服务器    999+ 次    2022-03-08 16:19:59


1.用于分离外网错误还是内网错误

2.还可以区别是系统错误还是业务逻辑错误


如果一律返回200,却收到了非200的结果,就说明外网出问题了,可能是运营商缓存服务器的问题,可能是DNS污染等等

而内网错误则在200返回的内容里用code来表示,就可以很好的定位问题


你总不能张三验证码输错几次,运维直接收报警吧。。。


很多人开发的时候因为都在内网测试,没有遭遇过外网错误,所以就会觉得这种做法很多余

但在实际使用中,尤其是服务器和用户跨国甚至跨洲的情况下,整个外网传输过程并不稳定,可能会出现各种异常,这种情况下这种一律返回200来区分外网错误和内网错误的做法就显得非常有价值了


举个例子吧,众所周知vercel免费版不大稳定,有时候会503。如果我把自己内部代码错误也http返回503,那么client侧就无法辨别到底是我的代码出问题了还是vercel炸了。如果我用http返回200,code503的办法,client得到了http503那就可以提示用户是vercel炸了而不是我代码出错了,code503才是vercel没炸而我代码炸了。这种思路在白嫖很多免费而不稳定的云服务时非常有用,尤其是如果同时部署了vercer,glitch,heroku等多个平台,可以通过http code判断平台是否爆炸而自动冗余切换其他平台继续服务,对于吾等没钱买pro套餐的用户来说非常好使


如果你觉得本篇文章对您有帮助,请打赏作者

上一篇: 10个常见的Redis面试"刁难"问题

下一篇: 事务还没提交的时候,redolog 能不能被持久化到磁盘呢?

最新评论

暂无评论

热门文章

最新评论

网站数据

网站文章数:483

今日UV/PV/IP:6/6/6

昨日UV/PV/IP:22/31 /22

TOP