写在前面
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状态码猫看图记忆
