写在前面

HTTP是基于客户端和服务器端的信息交互,基本运行原理就是客户端向服务器发送请求,服务器给予响应,无论请求成功与否,服务器都会基于客户端响应,并在响应报文中附带HTTP状态码,便于客户端分析此次请求是成功还是失败,若失败,失败原因是什么。由于这种交互在HTTP协议传输过程中有很多种情况存在,因此对应的状态码也有很多种,但总的来说,响应状态码分为五类:

完整参考版 mdn status

1xx 开头:信息状态码

状态码 含义 描述
100 继续 初始的请求已经接受,请客户端继续发送剩余部分
101 切换协议 请求这要求服务器切换协议,服务器已确定切换
102 处理中(WebDAV) 服务器已收到并正在处理该请求,但没有响应可用
103 早期提示 允许用户代理在服务器仍在准备响应时开始预加载资源

2xx 开头:成功状态码

状态码 含义 描述
200 成功 服务器已成功处理了请求
201 已创建 请求成功并且服务器创建了新的资源
202 已接受 服务器已接受请求,但尚未处理
203 非授权信息 服务器已成功处理请求,但返回的信息可能来自另一个来源
204 无内容 服务器成功处理了请求,但没有返回任何内容
205 重置内容 服务器处理成功,但未返回任何内容,
并要求用户终端应重置文档视图
206 部分内容 服务器成功处理了部分GET请求

3xx 开头:重定向状态码

状态码 含义 描述
300 多种选择 针对请求,服务器可执行多种操作,客户端自行选择
首选地址并进行重定向
301 永久移动 请求的页面已永久跳转到新的url
302 临时移动 请求的资源现在临时从不同的 URI 响应请求,但请求
仍继续使用原有位置来进行以后的请求
303 查看其他位置 对应当前请求的响应可以在另一个 URI 上被找到
而且客户端应当采用 GET 的方式访问那个资源
304 未修改 自从上次请求后又再次请求的文档在服务器未修改过
305 使用代理 被请求的资源必须通过指定的代理才能被访问
307 临时重定向 请求的资源现在临时从不同的URI 响应请求
但请求者应继续使用原有位置来进行以后的请求
308 永久重定向 资源现在永久位于由HTTP Response 标头指定的另一个 URI

4xx 开头:客户端错误状态码

状态码 含义 描述
400 错误请求 请求参数有误
401 未授权 当前请求需要用户验证
402 需要付款 保留用于支付系统,尚未实现
403 禁止 服务器已经理解请求,但是拒绝执行它
404 未找到 路径错误,服务器找不到请求的资源
405 方法禁用 请求行中指定的请求方法不能被用于请求相应的资源
406 不接受 请求的资源的内容特性无法满足请求头中的条件,
因而无法生成响应实体
407 需要代理授权 请求需要代理的身份认证
408 请求超时 服务器等候请求时发生超时,可再次发请求
409 冲突 由于和被请求的资源的当前状态之间存在冲突,
请求无法完成
410 已弃用 被请求的资源在服务器上已经不再可用,
而且没有任何已知的转发地址
411 需要有效长度 服务器拒绝在没有定义 Content-Length 头的
情况下接受请求
412 不满足前提条件 服务器不满足请求者在请求中设置的一个或多个前提条件
413 请求实体过大 由于请求实体数据过大,服务器无法处理,因此拒绝请求
414 请求url过长 请求的url过长,服务器无法处理
415 不支持格式 请求实体格式服务器不支持,拒绝请求
416 范围无效 客户端请求的数据范围无效
417 未满足期望 服务器无法满足请求表头字段要求
421 请求方向错误 服务器未配置对该url响应的方案
422 不可处理实体(WebDAV) 请求格式良好,但由于语义错误而无法遵循
423 被锁定(WebDAV) 正在访问的资源被锁定
424 错误依赖 由于先前的请求失败,所以此次请求失败
425 请求过早 服务器不愿意冒着风险去处理可能重播的请求
426 需要升级 客户端需要升级到服务器在Upgrade 头中指示的协议
428 需要前提条件 原始服务器要求该请求是有条件的
429 请求太多 用户在给定的时间内发送了太多请求(“限制请求速率”)
431 请求头太大 服务器不愿意处理请求,因为它的 请求头字段太大
451 非法请求 用户请求非法资源,例如:由政府审查的网页

5xx 开头:服务端错误状态码

状态码 含义 描述
500 服务器错误 服务器遇到了不知道如何处理的情况
501 尚未实施 此请求方法不被服务器支持且无法被处理
502 错误网关 此错误响应表明服务器作为网关需要得到一个处理
这个请求的响应,但是得到一个错误的响应
503 服务不可用 服务器没有准备好处理请求,目前无法使用
504 网关超时 当服务器作为网关,不能及时得到响应时返回此错误代码
505 不支持版本 服务器不支持请求中所使用的HTTP协议版本
506 变体协商 服务器有一个内部配置错误:对请求的透明
内容协商导致循环引用
507 存储空间不足 服务器有内部配置错误
508 检测出循环(WebDAV) 服务器在处理请求时检测到无限循环
510 未扩展 客户端需要对请求进一步扩展,服务器才能实现它
511 需要网络认证 客户端需要进行身份验证才能获得网络访问权限

如何记忆

大致的记法为:
1xx 表示信息类的状态码
2xx 表示成功
3xx 表示需要进一步操作
4xx 表示客户端即浏览器端出错
5xx 表示服务器端出错

谷歌搜索 http status cats 查看http状态码猫看图记忆