前言

在网络上发送请求后,经常会根据请求的状态码去判断请求的成功失败与否,常见的状态码有200,404,500。

不过你以为HTTP请求的状态码就只有这么几个么?其实是远远比这个多的。

今天这篇文章我们就一起来看看HTTP请求中常用的状态码吧。

HTTP状态码

2XX-请求成功

以2开头的2XX类的状态码,都表示请求成功,服务器正确执行了请求的操作。例如POST请求,在请求体中发送的数据会被服务器端正确的处理,例如写数据库操作。

在2XX类的状态码中,最常见的就是200了,至少在我目前是没有见过请求成功后,状态码不是200的。因此我们只需要知道200的状态码表示的含义即可。

状态码200

3XX-重定向

以3开头的3XX类的状态码,都表示请求重定向,服务器端会返回信息告知浏览器如何做后续操作才能成功处理请求。

接下来我们看看有哪些需要掌握的3XX状态码。

  • 301-永久重定向

301状态码表示的是资源永久重定向,比如请求资源A的URI-A1,但是服务器端返回301,并指定了一个新的URI-A2,这就表示以后请求资源A,就只能用URI-A2了。

状态码301

  • 302-临时重定向

302状态码表示的是资源的临时重定向,比如请求资源A的URI-A1,但是服务器端返回301,并指定了一个新的URI-A2,这时资源的位置临时用URI-A2表示,以后有可能还会进行更改,因此这个URI-A2并不是永久的。

状态码302

  • 303-请求其他资源

303状态码表示在服务端找到你需要的资源,但是这个资源存在另一个URI,而且希望客户端在后续的请求中使用GET方法去请求返回的新URI。

状态码303

4XX-客户端错误

以4开头的4XX类的状态码,都表示是客户端的错误。

  • 401-未认证

401表示服务端需要客户端提供一些认证信息,如果认证不通过,将无法向服务器端发送请求。这种情况尤其会出现在浏览器首次发送请求时,服务器端需要客户端的认证信息,最直观的信息是会在浏览器上弹出一个输入框,需要用户填写认证信息。

状态码401

  • 403-被拒绝

403表示服务器端拒绝接受客户端发送过来的请求,而且一般不会给出提示原因,为何给予拒绝。

不过一般会是因为用户无权限访问造成的。在我工作过程中,经常会遇到403的问题,因为我们对接口的权限管理很严格,如果新增的接口没有正确配置权限,就会造成403的问题。

状态码403

  • 404-资源不存在

404可能是所有程序员最熟悉的状态码了吧,无需过多描述,就是请求的资源在服务器端不存在,一般为请求的URL不对。

状态码404

  • 405-不允许使用该方法

405表示的是请求的URL虽然能被服务器识别,但是不允许使用该方法。

需要注意的是:GET和HEAD方法,服务器端总是会允许执行的。

出现405状态码的常见原因是,当服务端定义的请求类型与客户端发送的类型不一致,比如服务器端定义的方法为POST,而客户端发送请求类型是GET。

5XX服务器端错误

以5开头的5XX型状态码都表示服务器端错误。

  • 500-服务器内部错误

500状态码表示的是服务器内部执行异常,一般都表现为程序上的bug,例如代码在执行过程中抛出异常,例如常见的空指针。

状态码500

  • 502-错误网关

502状态码一般会展现bad gateway错误网关类型的信息。

主要是由于客户端向服务器端请求超时,比如在服务器端网络状况不好的情况下,同时又有多个客户端向服务器端发送请求,会造成服务器端资源不够,无法正常响应,便会返回这个结果。

一般最简单的解决方就是刷新的方式,有很多由于有缓存的情况,直接从本地拿数据,就不会再报502错误。

  • 503-服务不可用

503状态码表示服务器无法处理请求,一般表现为服务器宕机或者处于超负荷状态。不过这一般都是暂时性的情况,在服务重启或者负载均衡处理后,服务会继续处于可用状态。

状态码503

  • 504-网关超时

504状态码一般网关在转发过程中,超过设定的时间仍未收到上游服务器的响应。

结束语

今天这篇文章主要介绍了一些常用的HTTP状态码,这些状态码会经常用于判断服务的可用性上,也很方便的适用于前后端联调时出错的判断,大家要好好掌握~

转自

https://www.toutiao.com/i6496464659028115981/

那些代表性的HTTP状态码,你还只知道404吗?快来看看吧【转】的更多相关文章

  1. (网页)Http状态码大全(200、404、500等)(转CSDN)

    当我们从客户端向服务器发送请求时 服务器向我们返回状态码 状态码就是告诉我们服务器响应的状态 通过它,我们就可以知道当前请求是成功了还是出现了什么问题 状态码是由3位数字和原因短语组成的(比如最常见的 ...

  2. 转载 HTTP常见状态码分析 200 301 302 404 500

    转载原地址:  http://www.cnblogs.com/starof/p/5035119.html HTTP状态码(HTTP Status Code) 一些常见的状态码为: 一.1开头1xx(临 ...

  3. Http状态码大全(200、404、500等)

    基本涵盖了所有问题 HTTP 400 – 请求无效HTTP 401.1 – 未授权:登录失败HTTP 401.2 – 未授权:服务器配置问题导致登录失败HTTP 401.3 – ACL 禁止访问资源H ...

  4. HTTP/1.0中,状态码200 301 304 403 404 500的含义?

    200 OK 服务器成功处理了请求 301 重定向,请求的URL已移走 304未修改,客户的缓存资源是最新的,要客户端使用缓存 403禁止,请求被服务器拒绝了 404未找到资源 500内部服务器错误, ...

  5. http 状态码含义

    HTTP状态码被分为五大类, 目前我们使用的HTTP协议版本是1.1, 支持以下的状态码.随着协议的发展,HTTP规范中会定义更多的状态码. 小技巧: 假如你看到一个状态码518, 你并不知道具体51 ...

  6. HTTP状态码302、303和307的故事

        今日读书,无法理解HTTP302.303.307状态码的来龙去脉,决定对其做深究并总结于本文.       <HTTP权威指南>第3章在讲解30X状态码时,完全没有讲清楚为什么要有 ...

  7. HTTP状态码分类说明

    状态码分类 HTTP状态码被分为五大类, 目前我们使用的HTTP协议版本是1.1, 支持以下的状态码.随着协议的发展,HTTP规范中会定义更多的状态码. 小技巧:  假如你看到一个状态码518, 你并 ...

  8. HTTP协议 (六) 状态码详解

    HTTP协议 (六) 状态码详解 HTTP状态码,我都是现查现用. 我以前记得几个常用的状态码,比如200,302,304,404, 503. 一般来说我也只需要了解这些常用的状态码就可以了.  如果 ...

  9. HTTP协议状态码详解

    HTTP状态码,我都是现查现用. 我以前记得几个常用的状态码,比如200,302,304,404, 503. 一般来说我也只需要了解这些常用的状态码就可以了.  如果是做AJAX,REST,网络爬虫, ...

随机推荐

  1. VS开发环境美化

    1.字体,推荐Deja Vu Sans Mono 2.背景色为护眼绿色, 工具-->选项-->环境,字体和颜色,字体改为Deja Vu Sans Mono,项背景 改为

  2. 【刷题】BZOJ 1458 士兵占领

    Description 有一个M * N的棋盘,有的格子是障碍.现在你要选择一些格子来放置一些士兵,一个格子里最多可以放置一个士兵,障碍格里不能放置士兵.我们称这些士兵占领了整个棋盘当满足第i行至少放 ...

  3. Statement和PreparedStatement之间的区别

    Statement和PreparedStatement之间的区别: 1.PreparedStatement是预编译的,对于批量处理可以大大提高效率. 也叫JDBC存储过程2.使用 Statement ...

  4. 【Cf #299 C】Tavas and Pashmaks(单调栈,凸性)

    一个经典的二维数点模型,如果某个人 $ x $ 两个速度都比另一个人 $ y $ 大,显然 $y$ 是不可能成为winner的. 但这里只考虑两个人$x$,$y$在两个属性各有千秋的时候,一定存在正整 ...

  5. docker attach 和 docker exec

    docker attach docker attach -- Attach to a running container. 常用选项: --sig-proxy=true:Proxy all recei ...

  6. 解题:USACO18FEB Taming the Herd

    题面 从零开始的DP学习系列之贰(我的DP真的就这么烂TAT) 设DP状态的另一个技巧,考虑题目中有关答案的各种信息 然后这种和结尾有关系的$dp$可以考虑向前找结尾来转移 设$dp[i][j]$表示 ...

  7. java CPU 100% 排查(转载)

    一个应用占用CPU很高,除了确实是计算密集型应用之外,通常原因都是出现了死循环. (友情提示:本博文章欢迎转载,但请注明出处:hankchen,http://www.blogjava.net/hank ...

  8. UESTC--1468

    题目:A Coin Problem 原题链接:http://acm.uestc.edu.cn/problem.php?pid=1468 分析:满足裴波纳契数列,打表找周期. #include<i ...

  9. JavaScript中的arguments详解

    1. arguments arguments不是真正的数组,它是一个实参对象,每个实参对象都包含以数字为索引的一组元素以及length属性. (function () { console.log(ar ...

  10. jdk与jdt

    jdk是java的开发环境 ,程序的编译.运行都需要jdk.一个java开发平台,jdk少不了,而编辑器 可以多种多样,除了 eclipse中的JDT,还有独立的jcreate ,或者用记事本以其他加 ...