当前位置: 首页 > Web前端 > vue.js

前端开发:HTTP状态码详解

时间:2023-04-01 01:15:14 vue.js

前言在前端开发过程中,HTTP网络请求的使用也是必不可少的,尤其是前后端交互时,具体需要的功能根据实际业务实现。在实际的前端开发应用场景中,比较有代表性的与网络请求相关的用途包括:跨域问题/设置代理、接口返回码(HTTP状态码)、代理、token、cookie欺诈、GET/POST请求、等等,这些都是常识点。那么这篇博文就是分享一下HTTP状态码相关的知识点,特别是不同开头的代码的含义。总结一下,方便参考和使用。什么是HTTP状态代码?维基百科的解释:HTTP状态码(HTTPStatusCode)是一个3位数的代码,用来表示web服务器超文本传输??协议的响应状态。它由RFC2616规范定义,并被RFC2518、RFC2817、RFC2295、RFC2774和RFC4918扩展。所有状态码分为五类,状态码的第一个数字代表其中的一个响应的五个状态。显示的消息短语是典型的,但可以提供任何可读的替代方法。除非另有说明,否则状态代码是HTTP/1.1标准(RFC7231)的一部分。百度百科的解释:HTTP状态码(HTTPStatusCode)是一个3位数的代码,用来表示web服务器的HTTP响应状态。它由RFC2616规范定义,并通过RFC2518、RFC2817、RFC2295、RFC2774、RFC4918等规范进行了扩展。所有状态码的第一位代表响应的五种状态之一。个人理解: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-继续继续。初始请求已被接受,客户端应继续发送请求的其余部分。101-切换协议切换协议。服务器会根据客户端的请求切换到另一个协议,并且只能切换到更高层的协议。2、以2**开头(请求成功),表示请求的状态码已成功接收并处理。200-请求成功。服务器成功处理了请求,一般表示服务器提供了请求的网页,主要是GET和POST请求。201-创建。请求成功并创建了一个新资源。202-已接受。服务器已接受请求但尚未完成处理。203-未经授权的消息。Therequestwassuccessful,服务器已经成功处理了请求,但是返回的元信息可能来自另一个来源,而是一个副本。204-没有内容。服务器成功处理了请求,但没有返回任何内容。205-重置内容。服务器成功处理了请求,但没有返回任何内容,客户端应重置文档视图。206-部分内容。服务器成功处理了一些GET请求。3、3**开头(请求被重定向),表示完成请求需要进一步动作的状态码(注意:这些状态码一般用于重定向)。300-多个选项。请求的资源可以包括多个位置,并返回相应的资源特征和地址列表,供客户端选择。301-永久移动。请求的资源已永久移动到新位置(URI)。返回的信息包括新的URI。浏览器将自动重定向到新的URI。以后的任何新请求都必须改用新的URI。302-临时移动。与上面的301类似,只是暂时移动了资源,客户端应该继续使用原来的URI。303-查看其他地址位置。与上面的301类似,对于GET和POST请求,当请求应该对不同位置使用单独的GET请求来检索响应时,服务器返回此状态代码。304-未修改。请求的资源没有被修改。服务器返回此状态码时,不会返回任何资源。客户端通常通过提供标头来缓存访问的资源,该标头指示客户端希望仅返回在指定日期之后修改的资源。305-使用代理。所有请求只能使用代理访问请求的网页。如果服务器返回此响应,则表示该请求应使用代理。306-切换代理。在最新版本的规范中,不再使用306状态码,原本的意思是“后续请求应该使用指定的代理”。307-临时重定向。服务器当前正在响应来自不同位置的页面的请求,但是请求者应该继续使用原来的位置来处理未来的请求。4.以4**(请求错误)开头,说明请求可能有误,阻碍了服务器的处理。400-错误请求。客户端请求语法错误,服务器不理解请求的语法。401-未经授权。服务器可能会为需要用户身份验证的请求返回此响应,尤其是对于需要登录的网页。402-保留。保留以供将来使用。403-禁止。服务器已理解来自客户端的请求,但服务器拒绝完成请求。404-未找到。服务器找不到客户端请求的资源。405-方法已禁用。客户端请求中的方法被禁止。406-未接受。服务器无法根据客户端请求的内容特征完成请求。407-需要代理授权。与401(Unauthorized)类似,请求需要代理认证。但请求者应使用代理进行授权。408-请求超时。服务器等待客户端请求的时间过长并超时。409-冲突。服务器在完成客户端请求时发生冲突,并且服务器必须在响应中包含有关冲突的信息。410-已删除。客户端请求的资源已不存在。如果请求的资源已被永久删除,服务器将返回此响应。411-需要有效长度。没有Content-Length,服务器无法处理客户端发送的请求信息,服务器不接受没有有效Content-Length头域的请求。412-不满足先决条件。客户端请求信息的前提条件错误,服务器不满足客户端请求中设置的前提条件之一。413-请求实体太大。服务器无法处理请求,超出了服务器的处理能力,因此请求被拒绝。414-请求的URI太长。请求的URI(通常是网址)太长,服务器无法处理。415-不支持的媒体类型。服务器无法处理附加到请求的媒体格式,请求不支持请求的格式。416-请求的范围不符合要求。客户端请求的范围无效,如果页面无法提供请求的范围,则返回此状态码。417-未达到预期值。服务器无法满足Expect的请求头字段。5.5**开头(servererror),表示服务器在尝试处理请求时发生了内部错误(注意:很可能是服务器本身的错误,而不是请求本身的错误)。500内部服务器错误。服务器遇到内部错误,无法完成请求。501-尚未实施。服务器不具备/不支持完成请求的能力,并且无法完成请求。502错误的网关。服务器在尝试作为网关或代理完成请求时收到来自远程服务器的无效响应。503服务不可用。由于超载或系统维护,服务器暂时无法处理客户端的请求。延迟的长度可以包含在服务器的Retry-After头信息中,这通常只是一个临时状态。504网关超时。服务器充当网关或代理,但不及时从远程服务器获取请求。505-不支持HTTP版本。服务器不支持请求中使用的HTTP协议版本,无法完成处理。6、非官方状态码除了上面介绍的常用HTTP状态码外,还有一些非官方状态码,如下:420-EnhanceYourCalm提高你的耐心。当客户端速率受限时,Twitter搜索和趋势API返回。431-请求标头字段太大。服务器不想处理请求,因为单个请求头字段或所有字段太大。444-无响应无响应。Nginx上的HTTP服务器扩展,服务器不向客户端返回任何信息。450-被Windows家长控制阻止被Windows家长控制(Microsoft)阻止。这是一个Microsoft扩展,当Windows家长控制打开并阻止访问某些网页时指定。494-RequestHeaderTooLarge请求标头太大。与431类似,在引发错误代码431之前在Nginx上使用的扩展HTTP代码。7、状态码与状态不一致在实际开发过程中,有时返回的状态码响应是错误的,但用户可能意识不到这种情况。比如前端应用内部发生了错误,但是状态码还是返回了200,这种情况经常会遇到。8.其他:IIS微软互联网信息服务(MicrosoftInternetInformationServices),有时会使用额外的十进制子代码来获取更具体的信息,但这些子代码只出现在响应负载和文档中,而不会代替实际的HTTP状态代码。最后,通过这篇文章,你可以了解前端开发中HTTP状态码的细节。你需要了解的是五大状态类型的含义,以及常用的几种具体状态码的含义,尤其是从事前端开发的。对于开发者来说非常重要,因为在前端求职面试中,前端HTTP状态码相关的问题都是必考内容,而且还有对HTTP请求特性的考察,重要性不言而喻,这里不再赘述。以上就是本文的全部内容,欢迎三位掌柜关注!本文参加了“SegmentFault思维写作挑战赛”,正在阅读的朋友欢迎加入。