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