面试中常见的HTTP状态码

230 阅读2分钟

状态码是什么呢?

状态码的职责是当客户端向服务器端发送请求时,描述返回的请求结果。借助状态码,用户可以知道服务器端是正常处理了请求,还是出现了错误

状态码一般放在响应的响应行中,响应行一般由请求方法,url,状态码构成,

image.png

状态码由三位阿拉伯数字构成,根据首位数字的不同,可以大致分为5类。

1xx 消息性状态码,一般是告诉客户端,请求已经收到了,正在处理。
2xx 处理成功状态码,一般表示:请求收悉、我明白你要的、请求已受理、已经处理完成等信息.
3xx 重定向到其它地方。它让客户端再发起一个请求以完成整个处理。
4xx 处理发生错误,责任在客户端,如客户端的请求一个不存在的资源,客户端未被授权,禁止访问等。
5xx 处理发生错误,责任在服务端,如服务端抛出异常,路由出错,HTTP版本不支持等。

二开头的状态码

  • 200说明请求成功,没有任何异常

image.png

  • 204说明服务器接收的请求已成功处理,但在返回的响应报文中不含实体的主体部分。也就是没有响应体。一般在只需要从客户端往服务器发送信息,而对客户端不需要发送新信息内容的情况下使用

三开头的状态码

以三开头的状态码,是指资源存储的位置发生了变化,更换了地址,需要重新访问,这时候一般会去访问新的资源地址。重定向一般ssr应用较为常用可以用于判断是否登录,如果没有登录进行重定向返回首页,当然SPA应用也可以进行路由拦截从而达到重定向的目的。

  • 301永久重定向。
  • 302临时重定向。
  • 304一般是指,在浏览器中存放的缓存还没过期是,请求服务器,服务器返回304 告知浏览器要采用缓存。

四开头的状态码

  • 400 该状态码表示请求报文中存在语法错误。当错误发生时,需修改请求的内容后再次发送请求。
  • 403 状态码表明对请求资源的访问被服务器拒绝,可能是IP被禁止访问了。
  • 404 是找不到页面资源,一般是,改路径下没有相应的资源,可能是路由错误。

五开头的状态码

  • 500该状态码表明服务器端在执行请求时发生了错误。也有可能是Web应用存在的bug或某些临时的故障
  • 502服务器网关错误