HTTP状态码

468 阅读4分钟

引入

首先让我们来大致了解一下HTTP状态码吧,当我们访问一个网页时,浏览器会向网页发出请求,当浏览器接受并显示网页时,此时网页所在的服务器会返回一个包含HTTP状态码的信息头用来响应浏览器的请求。

HTTP状态码分类

HTTP状态码由三位数字组成,第一个十进制数字定义了状态码的类型。HTTP状态码共有5种类型,分别为1-5开头。

HTTP状态码分类表

  • 1**-- 信息,服务器收到请求,需要请求者继续执行操作
  • 2**-- 成功,操作成功接受并处理(2开头的都是成功的状态!)
  • 3**-- 重定向,需要进一步的操作已完成请求
  • 4**-- 客户端错误,请求包含语法错误或无法完成请求(一般来说,4开头的都是前端出现问题错误)
  • 5**-- 服务器错误,服务器在处理请求的过程中发生了错误(一般来说,5开头的都是前端出现问题错误)

HTTP常见状态码

2**--成功

200 --请求成功。一般用于GET与POST请求

201--也表示请求成功,但与200不同的是,201表示请求成功并创建了新的资源,如请求成功并创建了新的用户,但一般不做细分,直接返回200状态码表示请求成功。

204--删除一个资源时返回的状态码,这个表示,服务器成功处理,但没有内容返回,用来表示删除资源最为合适。在未更新网页的情况下,可确保浏览器继续显示当前文档。但后端不做细分的话,直接返回200状态码就可。

2**--成功类状态码有200-206,这里就简单讲了一下三个相对常见滴

3**--重定向

301--永久重定向

举个栗子,当我们有一个自己创建的网站,但我们突然想更换一下网站的网址,当我们把网址更换之后,当有人在平台再次访问网站时,平台使用的依旧是之前的网址话,因为网址的更换,点击之前的网址则是空的呀,这个时候我们就需要重定向,将之前旧的网址重定向到新的网址上,这种重定向是永久的,当有人在次访问老的网址时,服务端应该返回一个301的状态码,提醒浏览器自动跳转到新网址。

302--临时重定向

再举个栗子,当我们的网站出现了一点问题无法打开,但我们又需要使用它,于是临时买了一个域名来配了一个新的网址,但当我们过了一段时间后,将问题解决,我们又再次需要将网址变为原先的网址,所以在问题没有解决时,我们访问网站时,服务器通知应当跳转到临时的新网址,这个时候便返回我们302状态码。

3**--重定向类状态码有300-307,主要要区分的就是301与302,永久重定向与临时重定向

4**--客户端错误

400--当服务器返回400时一般表示,服务器传递参数格式错误,少传或者错传,导致服务器无法理解

401--表示请求要求用户的身份认证,一般表示token错误,或者token没传递或者token错误,对于后端代表token校验失败,对于前端表示直接跳转到登录页

403--服务器理解请求客户端的请求,但是拒绝执行吗,比如说我们有一个系统只能超级管理员能创建一个新的用户,而普通的用户是不能创建新的用户的这个时候,我们如果普通用户去创建新的用户的话就会返回状态码403,因为没有权限。

404--表示请求的资源不存在,从而返回404,但是一般报404的错误并不是资源不存在,但对于前端来说一般是因为我们请求资源的地址(请求方法或者请求路径错误)写错了而导致的,

4**--客户端错误类状态码有400-417,主要了解上面4种即可

5**--服务器错误

500--服务器内部出现错误,一般是后端出现问题,但不一定哈

502--网关或者代理工作的服务器尝试执行请求时,从远程服务器收到了一个无效的响应。一般这个问题出现与后端的配置出现问题

503--503较为常见,由于超载(如访问量过大导致服务器崩了)或者系统维护,服务器暂时的无法处理客户端的请求。

5**--服务器错误类状态码有500-505,主要了解上面三种就好啦。