关于javascript:前端开发HTTP状态码详解

5次阅读

共计 3845 个字符,预计需要花费 10 分钟才能阅读完成。

前言

在前端开发过程中,对于 HTTP 网络申请相干的应用也是必备的,尤其是前后端交互的时候,依据理论业务实现具体需要性能。前端理论开发利用场景中,比拟有代表性的对于网络申请相干的应用有:跨域问题 / 设置代理、接口返回 code 码(HTTP 状态码)、代理、token、cookie 欺诈、GET/POST 申请等等,这些都是罕用知识点。那么本篇博文就来分享一下对于 HTTP 状态码相干的知识点,尤其是不同结尾的 code 码代表的含意,总结一下,不便查阅应用。

HTTP 状态码是什么?

维基百科的解释:HTTP 状态码(HTTP Status Code)是用以示意网页服务器超文本传输协定响应状态的 3 位数字代码。它由 RFC 2616 标准定义的,并失去 RFC 2518、RFC 2817、RFC 2295、RFC 2774 与 RFC 4918 等标准扩大。所有状态码被分为五类,状态码的第一个数字代表了响应的五种状态之一。所示的音讯短语是典型的,然而能够提供任何可读取的代替计划。除非另有阐明,状态码是 HTTP/1.1 规范(RFC 7231)的一部分。

百度百科的解释:HTTP 状态码(HTTP Status Code)是用以示意网页服务器 HTTP 响应状态的 3 位数字代码。它由 RFC 2616 标准定义的,并失去 RFC 2518、RFC 2817、RFC 2295、RFC 2774、RFC 4918 等标准扩大。所有状态码的第一个数字代表了响应的五种状态之一。

集体了解:HTTP 状态码,也就是一个 3 位数的 HTTP 申请响应状态码,也就是前端开发中说的 code 码,接口依据状态类型来返回对应的状态码。

常见 HTTP 状态码

作为程序开发者,都晓得且在理论开发中常见的 HTTP 状态码,如下所示:

  • 200 – 申请胜利;
  • 301 – 资源(网页等)被永恒转移到其它 URL;
  • 304 – 客户端通常会缓存拜访过的资源,通过提供一个 Header 头信息指出客户端心愿只返回在指定日期之后批改的资源信息;
  • 404 – 申请的资源(网页等)不存在;
  • 500 – 外部服务器谬误。

HTTP 状态码分类

通过上文能够晓得 HTTP 状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型。HTTP 响应分为五类:信息响应 (100–199)、胜利响应(200–299)、重定向(300–399)、客户端谬误(400–499) 和服务器谬误 (500–599)。具体如下表所示:

HTTP 状态码具体分类汇总

全副的 HTTP 状态码有很多,这里只分享罕用的状态码,具体如下所示:

1、1* 结尾(信息提醒),示意长期的响应的状态码(留神:客户端在收到惯例响应之前,应筹备接管一个或多个 1 * 响应)。

  • 100 – Continue 持续。初始申请已被承受,客户该当持续发送申请的其余部分。
  • 101 – Switching Protocols 切换协定。服务器将听从客户端的申请切换到另外一种协定,且只能切换到更高级的协定。

2、2** 结尾(申请胜利),示意胜利接管解决申请的状态码。

  • 200 – 申请胜利。服务器已胜利解决了申请,个别这示意服务器提供了申请的网页,次要是用于 GET 和 POST 申请。
  • 201 – 已创立。申请胜利并且创立了新的资源。
  • 202 – 已承受。服务器曾经承受申请,但尚未处理完毕。
  • 203 – 非受权信息。申请胜利,服务器已胜利解决了申请,但返回的 meta 信息可能来自另一起源,而是一个正本。
  • 204 – 无内容。服务器胜利解决申请,但没有返回任何内容。
  • 205 – 重置内容。服务器胜利解决申请,但没有返回任何内容,客户端应该重置文档视图。
  • 206 – 局部内容。服务器胜利解决了局部 GET 申请。

3、3** 结尾(申请被重定向),示意要实现申请,须要进一步操作的状态码(留神:个别状况下这些状态代码被用来重定向)。

  • 300 – 多种抉择。申请的资源可包含多个地位,会相应返回一个资源特色与地址的列表,用于客户端抉择。
  • 301 – 永恒挪动。申请的资源已永恒挪动到新的地位(URI),返回信息包含新的 URI,浏览器会主动重定向到新的 URI,往后任何新的申请都要应用心的 URI 代替。
  • 302 – 长期挪动。与下面的 301 类似,然而资源只是长期被挪动,客户端应该持续应用原有的 URI。
  • 303 – 查看其余地址地位。与下面的 301 相似,应用 GET 和 POST 申请查看,申请该当对不同的地位应用独自的 GET 申请来检索响应时,服务器返回此状态码。
  • 304 – 未修改。所申请的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存拜访过的资源,通过提供一个 Header 头信息指出客户端心愿只返回在指定日期之后批改的资源。
  • 305 – 应用代理。所有申请只能应用代理拜访申请网页。若服务器返回该响应,示意申请应应用代理。
  • 306 – Switch Proxy。在最新版的标准中,306 状态码曾经不再被应用,起初是指“后续申请应应用指定的代理”。
  • 307 – 长期重定向。服务器目前从不同地位的网页响应申请,但请求者应持续应用原有地位来进行当前的申请。

4、4** 结尾(申请谬误),示意申请可能会出错,障碍了服务器的解决。

  • 400 – 谬误申请。客户端申请语法错误,服务器不了解申请的语法。
  • 401 – 未受权。申请要求用户进行身份验证,尤其是须要登录的网页,服务器可能返回此响应。
  • 402 – 预留。保留,未来应用。
  • 403 – 禁止。服务器曾经了解申请客户端的申请,然而服务器拒绝执行该申请。
  • 404 – 未找到。服务器找不到客户端申请寻找的资源。
  • 405 – 办法禁用。客户端申请中的办法被禁止。
  • 406 – 不承受。服务器无奈依据客户端申请的内容个性实现申请。
  • 407 – 须要代理受权。和 401(未受权)相似,申请要求代理的身份认证。但请求者该当应用代理进行受权。
  • 408 – 申请超时。服务器等待客户端发送的申请工夫过长,超时。
  • 409 – 抵触。服务器在实现客户端申请时发生冲突,服务器必须在响应中蕴含无关抵触的信息。
  • 410 – 已删除。户端申请的资源曾经不存在,如果申请的资源已永恒删除,服务器就会返回此响应。
  • 411 – 须要无效长度。服务器无奈解决客户端发送的不带 Content-Length 的申请信息,服务器不承受不含无效内容长度标头字段的申请。
  • 412 – 未满足前提条件。客户端申请信息的先决条件谬误,服务器未满足客户端申请中设置的其中一个前提条件。
  • 413 – 申请实体过大。服务器无奈解决申请,超出服务器的解决能力,因而拒绝请求。
  • 414 – 申请的 URI 过长。申请的 URI 过长(通常为网址),服务器无奈解决。
  • 415 – 不反对的媒体类型。服务器无奈解决申请附带的媒体格式,申请的格局不受申请的反对。
  • 416 – 申请范畴不符合要求。客户端申请的范畴有效,如果页面无奈提供申请范畴,则会返回此状态码。
  • 417 – 未满足期望值。服务器无奈满足 Expect 的申请头字段的要求。

5、5** 结尾(服务器谬误),示意服务器在尝试解决申请时产生外部谬误(留神:极有可能是服务器自身的谬误,而不是申请自身出错)。

  • 500 – 服务器外部谬误。服务器遇到外部谬误,无奈实现申请。
  • 501 – 尚未施行。服务器不具备 / 不反对实现申请的性能,无奈实现申请。
  • 502 – 谬误网关。服务器作为网关或代理尝试执行申请时,从近程服务器接管到一个有效响应。
  • 503 – 服务不可用。因为超载或系统维护,服务器临时的无奈解决客户端的申请。延时的长度可蕴含在服务器的 Retry-After 头信息中,通常这只是临时状态。
  • 504 – 网关超时。服务器作为网关或代理,但没有及时从远端服务器获取申请。
  • 505 – HTTP 版本不受反对。服务器不反对申请中所用的 HTTP 协定的版本,无奈实现解决。

6、非官方的状态码
除了下面介绍的罕用的 HTTP 状态码,还有一些非官方的状态码,具体如下所示:

  • 420 – Enhance Your Calm 进步你的急躁。Twitter 搜寻与趋势 API 在客户端被限速的状况下返回。
  • 431 – 申请头部字段太大。服务器因为一个独自的申请头字段或者是全副的字段太大而不想解决该申请。
  • 444 – No Response 无响应。Nginx 上 HTTP 服务器扩大,服务器不向客户端返回任何信息。
  • 450 – Blocked by Windows Parental Controls 被 Windows 家长管制阻塞(微软)。这是微软的一个扩大,当 Windows 家长管制关上并且阻塞指定网页的拜访的时候被指定。
  • 494 – Request Header Too Large 申请头太大。与 431 相似,在错误代码 431 提出之前 Nginx 上应用的扩大 HTTP 代码。

7、状态码与状态不统一的状况
理论开发过程中,有时候会遇到返回的状态码响应都是谬误的,然而用户可能发觉不到这种状况,比方前端应用程序外部产生报错,然而状态码仍然返回 200,这种状况常常遇到。

8、其余:IIS
微软互联网信息服务(Microsoft Internet Information Services),有时候会应用额定的十进制子代码来获取更多的具体信息,但这些子代码仅仅呈现在响应无效内容和文档中,但不会代替理论的 HTTP 状态码。

最初

通过本文能够晓得前端开发中 HTTP 状态码的具体内容,须要理解把握的是五个大的状态类型示意的含意,以及罕用的几个具体的状态码示意的含意,尤其是从事前端开发不就的开发者来说甚为重要,因为在前端求职面试的时候对于前端 HTTP 状态码相干的问题是必考内容,还有对于 HTTP 申请的特点的考查,所以重要性显而易见,这里不再赘述。以上就是本文全部内容,欢送关注三掌柜!

本文参加了「SegmentFault 思否写作挑战赛」,欢送正在浏览的你也退出。

正文完
 0