zoukankan      html  css  js  c++  java
  • HTTP协议的状态码

    本人记忆力不太好,所以把就所有的状态码整理一下然后有时间就看看

    HTTP的状态码的分类由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的左右。HTTP状态码共分为5种类型

    1**:表示服务器收到请求,需要请求者继续执行操作

    2**:表示成功,操作被成功接收并处理

    3**:表示重定向,需要进一步的操作以完成请求

    4**:表示客户端错误,请求包含语法错误或者无法完成请求

    5**:表示服务器错误,服务器在处理请求的过程中发生了错误

    HTTP状态码表

    1**状态码(表示服务器收到请求,需要请求者继续执行操作)

      100: Continue,表示继续。客户端继续其请求

      101: Switching Protocols,表示切换协议。服务器根据客户端的请求切换协议。只能切换到更高级的协议,例如,切换到HTTP的新版本协议

      102: 代表处理将被继续执行

    2**状态码(表示成功,操作被成功接收并处理)

      200: OK,表示请求成功。一般用于GET和POST请求。请求所希望的响应头或数据体将随此响应返回

      201: Created,表示已创建。请求成功并创建了新的资源。且其 URI 已经随Location 头信息返回。假如需要的资源无法及时建立的话,应当返回 ‘202 Accepted’。

      202: Accepted, 表示已接受。已经接受请求,但未处理完成,可能会被执行也可能不会被执行。

      203:Non-Authoritative Information,表示非授权信息。请求成功,但返回的meta信息不在原始的服务器,而是一个副本,也就是说返回的实体头部元信息不是在原始服务器上有效的确定集合,而是来自本地或者第三方的拷贝。

      当前的信息可能是原始版本的子集或者超集。例如,包含资源的元数据可能导致原始服务器知道元信息的超级。使用此状态码不是必须的,而且只有在响应不使用此状态码便会返回200 OK的情况下才是合适的。

      204:No Content,表示无内容。服务器成功处理,但不需要返回任何实体内容,并且希望返回更新了的元信息。响应可能通过实体头部的形式,返回新的或更新后的元信息。如果存在这些头部信息,则应当与所请求的变量相呼应。

      由于204响应被禁止包含任何消息体,因此它始终以消息头后的第一个空行结尾

      205:Reset Content,表示重置内容。服务器成功处理,用户终端(例如:浏览器)应重置文档视图。可通过此返回码清除浏览器的表单域。与204响应不同,返回此状态码的响应要求请求者重置文档视图。

      该响应主要是被用于接受用户输入后,立即重置表单,以便用户能够轻松地开始另一次输入。与204响应一样,该响应也被禁止包含任何消息体,且以消息头后的第一个空行结束。

      206:Partial Content,表示部分内容。服务器成功处理了部分GET请求。类似于 FlashGet 或者迅雷这类的 HTTP 下载工具都是使用此类响应实现断点续传或者将一个大文档分解为多个下载段同时下载。

      该请求必须包含 Range 头信息来指示客户端希望得到的内容范围,并且可能包含 If-Range 来作为请求条件。

      207:由WebDAV(RFC 2518)扩展的状态码,代表之后的消息体将是一个XML消息,并且可能依照之前子请求数量的不同,包含一系列独立的响应代码。

    3**状态码(表示重定向,需要进一步的操作以完成请求)

      300:Multiple Choices,表示多种选择。请求的资源可包括多个位置,相应可返回一个资源特征与地址的列表用于用户终端(例如:浏览器)选择,用户或浏览器能够自行选择一个首选的地址进行重定向。

      301:Moved Permanently,表示永久移动。请求的资源已被永久的移动到新的URL,返回信息会包括新的URL,浏览器会自动定向到新的URL。今后任何新的请求都应使用新的URL代替

      302:Found,表示临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URL

      303:See Other,表示查看其他地址。与301类似,使用GET和POST请求查看

      304:Not Modified,表示未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源

      305:Use Proxy,表示使用代理,所请求的资源必须通过代理访问。Location 域中将给出指定的代理所在的 URI 信息,接收者需要重复发送一个单独的请求,通过这个代理才能访问相应资源。只有原始服务器才能建立305响应。

      306:Unused,表示已经被废弃的HTTP状态码(在最新版的规范中,306状态码已经不再被使用。)

      307:Temporary Redirect,表示临时重定向。与302类似,使用GET请求重定向

    4**开头状态码(表示客户端错误,请求包含语法错误或者无法完成请求)

      400:Bad Request,表示客户端请求的语法错误,服务器无法理解(4001、语义有误,当前请求无法被服务器理解。除非进行修改,否则客户端不应该重复提交这个请求,4002、请求参数有误。)

      401:Unauthorized,表示请求要求用户的身份认证(权限问题)当前请求需要用户验证。该响应必须包含一个适用于被请求资源的 WWW-Authenticate 信息头用以询问用户信息。客户端可以重复提交一个包含恰当的 Authorization 头信息的请求。

      如果当前请求已经包含了 Authorization 证书,那么401响应代表着服务器验证已经拒绝了那些证书。如果401响应包含了与前一个响应相同的身份验证询问,且浏览器已经至少尝试了一次验证,那么浏览器应当向用户展示响应中包含的实体信息,

      因为这个实体信息中可能包含了相关诊断信息。参见RFC 2617。

      402:Payment Required,表示保留,将来使用。该状态码是为了将来可能的需求而预留的

      403:Forbidden,表示服务器理解请求客户端的请求,但是拒绝执行此请求

      404:Not Found,表示服务器无法根据客户端的请求找到资源(网页)。

      405:Method Not Allowed,表示客户端请求中的方法被禁止,该响应必须返回一个Allow 头信息用以表示出当前资源能够接受的请求方法的列表。

      406:Not Acceptable,表示服务器无法根据客户端请求的内容特性完成请求,也就是说请求的资源的内容特性无法满足请求头中的条件,因而无法生成响应实体。

      407:Proxy Authentication Required,表示请求需要代理的身份认证,与401类似,但请求者应当使用代理进行授权

      408:Request Time-out,表示服务器等待客户端发送的请求时间过长,超时

      409:Conflict,表示服务器完成客户端的PUT请求是可能返回此代码,服务器处理请求时发生了冲突

      410:Gone,表示客户端请求的资源已经不存在。410不同于404,如果资源以前有现在被永久删除了可以使用410代码,可以结合301代码指定资源的新位置

      411:Length Required,表示服务器无法处理客户端发送的不带Content-Length的请求信息,在添加了表明请求消息体长度的有效 Content-Length 头之后,客户端可以再次提交该请求。

      412:Precondition Failed,表示客户端请求信息的先决条件错误,服务器在验证在请求的头字段中给出先决条件时,没能满足其中的一个或多个。这个状态码允许客户端在获取资源时在请求的元信息(请求头字段数据)中设置先决条件,

      以此避免该请求方法被应用到其希望的内容以外的资源上。

      413:Request Entity Too Large,表示由于请求的实体过大,服务器无法处理,因此拒绝请求。为防止客户端的连续请求,服务器可能会关闭连接。如果只是服务器暂时无法处理,则会包含一个Retry-After的响应信息

      414:Request-URL Too Large,表示请求的URI过长(URI通常为网址),服务器无法处理

      415:Unsupported Media Type,表示服务器无法处理请求附带的媒体格式,对于当前请求的方法和所请求的资源,请求中提交的实体并不是服务器中所支持的格式,因此请求被拒绝。

      416:Requested range not satisfiable,表示客户端请求的范围无效如果请求中包含了 Range 请求头,并且 Range 中指定的任何数据范围都与当前资源的可用范围不重合,同时请求中又没有定义 If-Range 请求头,那么服务器就应当返回416状态码。

      417:Expectiation Failed,表示服务器无法满足Expect的请求头信息,或者这个服务器是一个代理服务器,它有明显的证据证明在当前路由的下一个节点上,Expect 的内容无法被满足。

      421:从当前客户端所在的IP地址到服务器的连接数超过了服务器许可的最大范围。通常,这里的IP地址指的是从服务器上看到的客户端地址(比如用户的网关或者代理服务器地址)。在这种情况下,连接数的计算可能涉及到不止一个终端用户。

      422:从当前客户端所在的IP地址到服务器的连接数超过了服务器许可的最大范围。通常,这里的IP地址指的是从服务器上看到的客户端地址(比如用户的网关或者代理服务器地址)。在这种情况下,连接数的计算可能涉及到不止一个终端用户。

      424:由于之前的某个请求发生的错误,导致当前请求失败,例如 PROPPATCH。(RFC 4918 WebDAV)

      425:在WebDav Advanced Collections 草案中定义,但是未出现在《WebDAV 顺序集协议》(RFC 3658)中

      426:客户端应当切换到TLS/1.0。(RFC 2817)

      449:由微软扩展,代表请求应当在执行完适当的操作后进行重试。

    5**开头的状态码(表示服务器错误,服务器在处理请求的过程中发生了错误)

      500:Internal Server Error,表示服务器内部错误,无法完成请求,服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。一般来说,这个问题都会在服务器的程序码出错时出现。

      501:Not Implemented,表示服务器不支持请求的功能,无法完成请求 ,当服务器无法识别请求的方法,并且无法支持其对任何资源的请求。

      502:Bad Gateway,表示充当网关或者代理的服务器,从远端服务器接收到了一个无效的请求,作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应。

      503:Service Unavailable,表示由于超载或系统维护,服务器暂时无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中

      504:Gateway Time-out,表示充当网关或者代理的服务,,未及时从远端服务器获取请求,作为网关或者代理工作的服务器尝试执行请求时,未能及时从上游服务器(URI标识出的服务器,例如HTTP、FTP、LDAP)或者辅助服务器(例如DNS)收到响应。

      505:HTTP Version not supported,表示服务器不支持请求的HTTP协议的版本,无法完成处理,这暗示着服务器不能或不愿使用与客户端相同的版本。响应中应当包含一个描述了为何版本不被支持以及服务器支持哪些协议的实体。

      506:由《透明内容协商协议》(RFC 2295)扩展,代表服务器存在内部配置错误:被请求的协商变元资源被配置为在透明内容协商中使用自己,因此在一个协商处理中不是一个合适的重点。

      507:服务器无法存储完成请求所必须的内容。这个状况被认为是临时的。WebDAV (RFC 4918)

      509:服务器达到带宽限制。这不是一个官方的状态码,但是仍被广泛使用。

      510:获取资源所需要的策略并没有没满足。(RFC 2774)

    状态码还是很重的,有时候前后端交互出现问题的时候可以通过状态码来看看到底是哪里的问题。可以更快的解决问题。

     参考:https://blog.csdn.net/laishaohe/article/details/79052085

  • 相关阅读:
    可视化工具gephi源码探秘(一)
    在ssh中利用Solr服务建立的界面化站内搜索---solr2
    Nutch源码阅读进程5---updatedb
    利用Solr服务建立的站内搜索雏形---solr1
    Nutch源码阅读进程4---parseSegment
    Nutch源码阅读进程3---fetch
    VS2015编译GEOS3.5.1源码
    VS2015编译GDAL2.2.1源码
    UE4读取脑电波MindWave插件(展示如何使用第三方库制作UE4插件)
    UE4修改自Rama的UDP通信蓝图插件
  • 原文地址:https://www.cnblogs.com/yearshar/p/12073403.html
Copyright © 2011-2022 走看看