前端按 4xx 知道是用户能改的错,保留输入、标红缺名称的输入框,提示「请填写项目名称」。
网关不会重试,监控也不会把它当成服务故障;同类错误能聚合出报表。
数据与服务 · 网络与接口
状态码是状态行里的 3 位数字,首位就是类别:2xx 成功、3xx 重定向、4xx 客户端要改、5xx 服务端要查;按类别决定继续、修正还是重试,失败绝不伪装成 200。
先送出一张订单。完整请求创建资源并返回 201 与 Location;漏填地址则返回 422 和可定位的字段错误。状态行应如实告诉客户端下一步。
订单服务 · 一次请求,一张会改变的回执
/api/ordersbody: sku + addressLocation: /api/orders/842{
"data": { "id": "842", "status": "queued" },
"error": null
}资源已创建。客户端可读取 data,再跳到新订单地址。
判断依据与下一步:201 表示新资源已创建;读取 data,并沿 Location 进入订单。
状态码是状态行里的 3 位数字,首位直接说明结果性质。看百位就能分流,是读、是跟随、是修正、还是重试。
回执台先让你看见 2xx 与 4xx 的分流;1xx 在实际业务里很少亲手处理。读类别之后还要看方法、响应体、Location、Retry-After 和请求是否幂等——状态码是分流信号,不是跳过契约校验的捷径。
同样是「写完了」,建资源、更新资源、删除资源该返不同码;同样是「出错了」,用户能改和服务端要查绝不能混。
同一个「下单失败」接口,返回 422 还是 200,决定了前端、网关和监控能不能各司其职。
前端按 4xx 知道是用户能改的错,保留输入、标红缺名称的输入框,提示「请填写项目名称」。
网关不会重试,监控也不会把它当成服务故障;同类错误能聚合出报表。
HTTP 层看到的全是成功:CDN 照样缓存、重试逻辑不触发、告警不响;前端必须每个接口手写「if success」。
一旦有人忘了判断,用户看到的就是空白或脏数据;失败被静默吞掉,排查只能翻日志。
前端删除一篇文章后,接口返 204 No Content,接下来该怎么处理最合适?
术语的技术定义和行为以这些一手或权威资料为准。
和本知识点经常一起出现的概念。