2025-11-20 06:16:30
状态码分两部分,第一部分是1-5的数字,代表大类,比如1xx是信息,2xx是成功,3xx重定向,4xx客户端错误,5xx服务器错误。第二部分是0-9的数字,具体说明问题,比如200表示成功,404表示没找到。这样设计就像给每个问题贴标签,大类先分清楚,再细化具体原因。比如4xx里401没权限,403禁止访问,408请求超时,409冲突,410已删除,415不支持媒体类型,429请求过多,431请求头过大。数据来源是HTTP/1.1规范文档,里面明确说明状态码由两个7位二进制数组成,第一个字节的最高位固定为0,实际可用范围是1-5,第二个字节可表示0-9。
为什么这样设计呢?早期互联网协议需要简单分类,用两个数字更直观。比如3xx里301重定向,302临时重定向,303已找到,304未修改,305使用代理,306已废弃,307临时重定向,308永久重定向。这些细分让开发者更精准处理问题。根据维基百科统计,常用状态码有200、404、500三种,占实际请求的70%以上。数据来源是W3Techs 前年网站性能报告,显示404错误占所有状态码的38%,500错误占17%。这种分层设计就像给快递分拣,先按大类分堆,再按具体原因找件,既高效又避免混淆。
本题链接: