HTTP状态码和视角
在 RFC2616 - HTTP/1.1: Status Code Definitions 标准里,最常用的HTTP 状态码一共有3类
- Successful - 2xx
- Bad Request - 4xx
- Server Error - 5xx
所有来自于外界的 request 和 反馈的response 就是和外界的连(guan)接(xi)
- 2xx 是正常
- 4xx 和 5xx 是异常。异常在英文里叫exception ,也就是例外
也就是说,这个”人”经常会说
- 2xx - 好的,我可以 --> 结果,大家皆大欢喜
- 4xx - 这不是我的问题,怪别人 —> 结果,让别人修bug,也得等别人修bug
- 5xx - 是我错了,怪自己 —> 结果,老老实实修自己的bug去
一般人,对于强(wan)大(neng)的系统的预期:
- 大部分时候都在「理所当然」回应2xx
- 很少回应4xx
- 主动修复5xx
一切总有例外
什么叫承受委屈?
- 把别人的4xx,当做自己的5xx,默默修成2xx了
什么叫甩锅?
- (本来就是三个和尚)
- 把自己的5xx,说成别人的4xx,不是我的责任。
什么叫很难理解
- 对request和response的定义,涉及到的概念解释不同
- 每个人背后切分4xx和5xx的理念和逻辑不一样
- 探寻root cause的动机不同
「始于君子,终于小人」
什么叫事前逞强?
- 盲目乐观
- 在对后市一无所知的时候,无畏答应了一堆2xx
- 在对后市一无所知的时候,无知假设了一堆2xx
什么叫事后扯皮?
- 甲:为什么定义成我的5xx,不是你的4xx?
- 乙:为什么定义成我的4xx,不是你的5xx?
- 丙:(边吃瓜,边浇油)
什么叫「你应该」?
- 因为不是说好的 2xx吗
- 因为别人家的HTTP Server都返回2xx
怎么办?”重构(知识结构)”
- 底线 - 丑话说前面,自己的代码记得写上 try - catch - finally 兜底
- 接纳 - 把处理异常(例外)的逻辑方法,从 catch - finally,改写成到处理已知的逻辑 switch (case), default
- 放下成见 - 去接纳一些世界上更多不能用简单逻辑解释的事情,比如中医,比如一些神经网络。
这个过程叫——学习做最好的自己。