网络与接口
HTTP 状态码
HTTP 状态码(HTTP status code)是服务器在每一个网络响应最前面放的那个三位数字,一眼就告诉你这次请求的结果如何。那几个出名的你早就见过了:200 意思是「好的,给你」,404 意思是「我找不到那个东西」,500 意思是「我这边出错了」。你打开的每一个页面、发出的每一次 API 调用,回来时都盖着这样一个数字。
第一位数字把它们分成五大家族,这也是唯一值得记住的部分。2xx = 成功(成了)。3xx = 重定向(你要的东西在别处)。4xx = 你出错了(请求有问题、找不到、不允许)。5xx = 服务器出错了(不怪你)。所以哪怕一个你从没见过的码——比如 429——你也能一眼读懂:4 字头,说明问题出在「提问的一方」(它的意思是「请求太多了,慢一点」)。
排查问题时,状态码是第一个该看的东西。401 告诉你这是登录问题;404 告诉你地址写错了;500 则告诉你别再盯着自己的代码改了,去看看服务器的日志吧。它就是服务器对「刚才那次怎么样?」给出的一字回答。
$ curl -I https://example.com/missing HTTP/2 404 # 2xx ok · 3xx go elsewhere · 4xx your fault · 5xx server's fault
第一位数字几乎说明了一切:4xx 表示问题出在你这边。
口诀:4xx 怪「你」,5xx 怪「它」。看到 500 别急着改自己的代码,先去看服务器日志。
又称
另见