返回稳定的 500 与 request id,正文是统一 error 契约;保留输入,写入用幂等键可查询;监控按版本聚合,值班能看到峰值。
客户端按 5xx 退避重试或人工确认,不会重复下单;故障被定位、被恢复,而不是被掩盖。
数据与服务 · 网络与接口
5xx 表示服务端或上游依赖自己出了问题,客户端请求没错;它通常瞬时,按码退避重试或等待 Retry-After,写入要先确认幂等,每一条都该进监控告警。
每条 5xx 都是一次服务端事件。读症状与服务端证据,先判码(500/502/503/504),再决定客户端该怎么做;提交后工单盖上对应章并展开成因与下一步。
/api/orders提交创建订单,返回 500;页面保留表单与 request id,没有跳转。
服务端证据服务端日志:NullPointerException at OrderService.create():142(未捕获异常)。
第 1/4 单:读症状与日志,先判码(500/502/503/504),再选客户端动作。
分诊台里反复出现同一条主线——首位 5 表示服务端自己出了问题,客户端请求没错,且大多数 5xx 是瞬时的,退避后重试可能成功。
从用户信号到工程动作:收到 5xx 响应,就进入「止损—恢复—验证」节奏,而不是把异常塞回用户脸上。
同样收到创建订单失败,服务端怎么响应,决定了监控、重试和对账能不能各司其职。
返回稳定的 500 与 request id,正文是统一 error 契约;保留输入,写入用幂等键可查询;监控按版本聚合,值班能看到峰值。
客户端按 5xx 退避重试或人工确认,不会重复下单;故障被定位、被恢复,而不是被掩盖。
客户端参数校验没过也返 500、业务流程异常也返 500;响应体直接抛堆栈和 SQL,前端只能白屏或盲目重试。
所有问题混成一团,监控无法区分根因,重试还可能重复扣款——5xx 不再是信号,而成了甩锅的垃圾桶。
GET /api/feed 持续返回 502,上游服务健康但正在预热,客户端最稳妥的处理是?
术语的技术定义和行为以这些一手或权威资料为准。
和本知识点经常一起出现的概念。