由于技术栈开始迁移到go,go框架的设计组希望通过在http协议的header中传输result-msg(一般是错误描述) 、result-code的信息,方便框架统一处理错误。 反正我是第一次看到在http协议的header中传错误信息的,放到response中就不行吗?看下各位大佬的意见是什么?
技术上貌似也未尝不可,放在 header 里面的好处就是可以先于 body 被处理,如果 headers 中发现请求已经是失败的,那么可以跳过 body 的解析,通常情况下,body 部分的 encoding scheme 都会比 headers 中复杂度高一些,所以对于客户端(调用方)的处理会有一些性能的提升,但我觉得提升程度不是很好量化
反过来从通用性的角度来说,可能这里引入的额外理解和维护成本,或许会略大于它的在性能上取得的收益
最后要是下结论的话,团队大家都认可就没问题
同意楼上。未尝不可。
要说缺点的话,就是会造成header变大,通用性变差(浏览器和第三方的httpclient之类的 不认这些扩展标头)
“反正我是第一次看到在http协议的header中传错误信息的” ---- 这就有失偏颇了,http 中本来就有错误信息,常见的 404 Not Found 不就是么?
rest api的错误码标准做法都是用header做的。
感谢各位的解惑,涨知识了 但是header中一般还是错误码吧,这边是想在header中传递错误描述信息(支持多语言)
@myy 嗯,这里是描述的不太对,主要是这要要在header中传递错误描述信息,带有业务逻辑,需要业务处理,总感觉很奇怪