HTTP 状态码别只背“200成功、500炸了”。第一位分大类,后两位才说明具体发生了什么。 五类先摆清楚: • 1xx:流程还在继续。100让客户端继续请… · @BaiBtw · TwKit
@BaiBtw
HTTP 状态码别只背“200成功、500炸了”。第一位分大类,后两位才说明具体发生了什么。 五类先摆清楚: • 1xx:流程还在继续。100让客户端继续请求;103能让浏览器在正式响应准备好前,先预加载资源或预连接。 • 2xx:成功类,但不都代表“活已经干完”。201是创建了新资源;202只是收下请求,尚未处理,常见于批处理;204则没有响应正文,响应头仍然有用。 • 3xx:重定向类。301是永久换地址,302是临时换地址;304是缓存场景,内容没改,可以继续用缓存,不是叫你换个网址。 • 4xx:客户端错误类。具体卡在哪儿,还得往下分。 • 5xx:服务端错误类,也别一律当成同一种故障。 几组特别容易混: 401 / 403:前者要先完成身份认证;后者是服务器知道你是谁,但不让你访问。404通常是找不到资源,不过服务器也可能用它代替403,隐藏资源是否存在。 405 / 501:405是服务器认识这个方法,但目标资源不支持,比如某个接口不允许 DELETE;501是服务器本身不支持这个请求方法。 307 / 308:分别是临时、永久重定向,关键是不能改原请求的方法。原来用 POST,跳转后也得用 POST。 502 / 504:同样发生在服务器充当网关时,502是上游给了无效响应,504是没能及时等到响应。503则是服务暂时无法处理请求,常见于维护或过载;有条件时可用 Retry-After 告知预计恢复时间。 还有429:一段时间里请求太多,触发限流。 边界也得留着:这些是状态码的语义,不是只凭三个数字就能锁死根因。像202,收下了不等于完成了;像404,也不总能证明资源根本不存在。把它们混着读,排查方向就先歪一截。
曝光 147 · 评论 4 · 点赞 3 · 书签 0
查看原帖