HTTP状态码释义速查手册

HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用。每个状态码的第一个数字都代表了响应的五种状态之一。

分类分类描述
100~199消息,服务器收到请求,需要请求者继续执行操作
200~299成功,操作被成功接收并处理
300~399重定向,需要进一步的操作以完成请求
400~499请求错误,请求包含语法错误或无法完成请求
500~599服务器错误,服务器在处理请求的过程中发生错误

消息类

这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束。由于 HTTP/1.0 协议中没有定义任何 1xx 状态码,所以除非在某些试验条件下,服务器禁止向此类客户端发送 1xx 响应。

状态码名称描述
100Continue(继续)表示告知客户端继续发送连接请求。
101Switching Protocols(切换协议)通知客户端切换其它的协议来完成这个请求。

100:这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝。

  • 客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应。
  • 服务器必须在请求完成后向客户端发送一个最终响应。

101:服务器已经理解了客户端的请求,并将通过Upgrade 消息头通知客户端采用不同的协议来完成这个请求。在发送完这个响应最后的空行后,服务器将会切换到在Upgrade消息头中定义的那些协议。

成功类

状态码名称描述
200OK(成功)请求已成功。服务器成功返回网页。
201Created(已创建)请求已成功并且服务器创建了新的资源。
202Accepted(已接受)服务器已接受请求,但尚未处理。
203Non-Authoritative Information(非授权信息)服务器已成功处理了请求,但返回的数据可能来自本地,也可能来自第三方。
204No Content(无内容)服务器成功处理了请求,但没有返回任何内容。
205Reset Content(重置内容)服务器成功处理了请求,但没有返回任何内容。
206Partial Content(部分内容)服务器成功处理了部分 GET 请求。

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

  • GET响应中发送对应于所请求资源的实体。
  • HEAD与所请求的资源相对应的实体头部字段在没有任何消息体的响应中发送。
  • POST一个描述或包含动作结果的实体。
  • TRACE包含终端服务器接收到的请求消息的实体。

201 :新的资源已经依据请求的需要而建立,新创建的资源可以由响应实体中返回的URI引用,由位置头字段给出的资源最具体的URI。

  • 响应应该包括一个包含资源特征和位置的实体,用户或用户代理可以从该列表中选择最适合的一个。实体格式由Content-Type头字段中指定的媒体类型指定。
  • 原始服务器必须在返回201状态代码之前创建资源。如果该操作无法立即执行,服务器应该返回202(Accepted)来响应。
  • 另外201响应可以包含ETag响应头字段,指示刚创建的请求变体的实体标签的当前值。

202:正如它可能被拒绝一样,最终该请求可能会也可能不会被执行。在异步操作的场合下,没有比发送这个状态码更方便的做法了。

203:请求被成功处理,但返回的实体头部元信息(meta信息)不是在原始服务器上有效的确定集合,而是一个来自本地或者第三方的拷贝副本。

  • 所呈现的集合可以是原始版本的子集或超集。例如,包括有关资源的本地注释信息可能会导致源服务器已知的元信息的超集。
  • 不需要使用此响应代码,仅当响应为200(OK)时才适用。

204:服务器成功处理了请求,但不需要返回任何实体内容,并且希望返回更新了的元信息。

  • 响应可能通过实体头部的形式,返回新的或更新后的元信息。
  • 如果存在这些头部信息,则应当与所请求的变量相呼应。
  • 在未更新网页的情况下,可确保浏览器继续显示当前文档。
  • 204响应不能包括消息体,因此总是在头字段之后的第一个空行终止。

205:服务器成功处理了请求,且没有返回任何内容。

  • 与204响应不同,返回此状态码的响应要求用户代理应该重置导致发送请求的文档视图。
  • 该响应主要是被用于接受用户输入后,立即重置表单,以便用户能够轻松地开始另一次输入。
  • 答复不能包括实体。

重定向类

通常,这些状态码用来重定向,后续的请求地址(重定向目标)在本次响应的 Location 域中指明。当且仅当第二个请求中使用的方法是GET或HEAD时,所需的操作可以由用户代理执行,而不与用户交互。客户端应该检测无限重定向循环,因为这样的循环为每个重定向生成网络流量。

状态码名称描述
300Multiple Choices(多种选择)服务器提供一系列可供选择的回馈信息,每个都有自己特定的地址和浏览器驱动的商议信息。
301Moved Permanently(永久移动)请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个URI之一。
302Found(临时移动) 服务器目前从不同位置的资源响应请求,但以后的请求者可以继续引用原有位置的资源。
303See Other(查看其他位置)与301类似,当前请求的响应可以在另一个URI(位置)上被找到,而且客户端应当采用 GET 的方式访问那个资源。
304Not Modified(未修改) 请求(Get)资源未修改过。服务器返回此响应时,不会返回网页内容。
305Use Proxy(重置内容)服务器成功处理了请求,但没有返回任何内容。
307Temporary Redirect(临时重定向) 与302类似,服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。

请求错误类

代表客户端看起来可能发生了错误,妨碍了服务器的处理。如果客户端正在发送数据,则在服务器关闭输入连接之前,使用TCP的服务器实现应该小心,以确保客户端确认收到包含响应的数据包。如果客户端在关闭后继续向服务器发送数据,则服务器的TCP堆栈将向客户端发送一个重置数据包,这可能会擦除客户端未确认的输入缓冲区,然后才能被HTTP应用程序读取和解释。

状态码名称描述
400Bad Request(错误请求)语法错误、参数错误。
401Unauthorized(未授权) 请求用户需要身份验证。
403Forbidden(禁止) 服务器拒绝执行请求。
404Not Found(未找到) 服务器找不到请求的资源。
405Method Not Allowed(方法禁用)请求中指定的方法不能被用于请求相应的资源。
406Not Acceptable(不接受)请求的内容特性无法满足请求的条件,无法得到资源。
407Proxy Authentication Required(需要代理授权) 此状态代码与 401(未授权)类似,但指定请求者应当授权使用代理。
408Request Time-out(请求超时)请求发生超时。客户可以随时重复请求而不进行修改。
409Conflict(冲突)请求和被请求的资源的当前状态之间存在冲突,请求无法完成。
410Gone(已删除)请求的资源已永久删除。
411Length Required(需要有效长度) 服务器不接受不含有效内容长度标头字段的请求。
412Precondition Failed(未满足前提条件) 服务器未满足请求者在请求中设置的其中一个前提条件。
413Request Entity Too Large(请求实体过大) 服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。

403:如果请求方法不是HEAD,并且服务器希望公开为什么请求尚未实现,则应该描述拒绝实体的原因。

404:服务器没有找到与Request-URI匹配的任何内容。

  • 没有指示条件是暂时的还是永久的。
  • 如果服务器通过一些内部可配置的机制知道旧的资源永久不可用,并且没有转发地址,则应该使用410(Gone)状态码。
  • 当服务器不希望明确地显示请求被拒绝的原因,或者没有其他响应适用时,通常使用此状态代码。

405:由Request-URI标识的资源不允许在Request-Line中指定的方法。响应必须包括一个包含所请求资源的有效方法列表的Allow标头。

406:由请求标识的资源仅能够根据请求中发送的接受头来生成内容特征不可接受的响应实体。如果响应不可接受,则用户代理应该暂时停止接收更多的数据,并询问用户对进一步的操作做出决定。

409:只有在预期用户可能能够解决冲突并重新提交请求的情况下,才允许使用此代码。响应机构应该包括足够的信息供用户识别冲突的根源。理想情况下,响应实体将包括足够的信息供用户或用户代理解决问题; 然而,这可能是不可能的,不是必需的。

410:所请求的资源在服务器上不再可用,并且没有转发地址是已知的。这种情况有望被认为是永久性的。

412:该响应代码允许客户端在当前资源元信息(头字段数据)上放置前提条件,从而防止所请求的方法被应用于除预期的资源之外的资源。

服务器错误类

代表服务器在处理请求时发生内部错误或异常。另外也有可能是服务器意识到以当前的软硬件资源无法完成对请求的处理。同请求错误类一样,除非这是一个HEAD 请求,否则服务器应该返回一个包含错误情况说明的实体,以及它是一个临时的还是永久的。用户代理(浏览器)应该向用户显示任何包含的实体。这些响应代码适用于任何请求方法。

状态码名称描述
500Internal Server Error(服务器内部错误) 服务器遇到错误,无法完成请求。
501Not Implemented(尚未实施) 服务器不具备完成请求的功能。例如,服务器无法识别请求方法时可能会返回此代码。
502Bad Gateway(错误网关) 服务器作为网关或代理尝试执行请求时,从上游服务器收到无效响应。
503Service Unavailable(服务不可用) 服务器目前无法使用(由于超载或停机维护)。通常,这只是暂时状态。
504Gateway Time-out(网关超时) 服务器作为网关或代理尝试执行请求时,未能及时从上游服务器(URI标识出的服务器,例如HTTP、FTP、LDAP)或者辅助服务器(例如DNS)收到响应。
505HTTP Version not supported(HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 协议版本。

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

501:服务器不支持当前请求所需要的某个功能。当服务器无法识别请求的方法,并且无法支持其对任何资源的请求。

503:由于临时的服务器维护或者过载,服务器当前无法处理请求。这个状况是临时的,并且将在一段时间以后恢复。如果能够预计延迟时间,那么响应中可以包含一个 Retry-After 头用以标明这个延迟时间。如果没有给出这个 Retry-After 信息,那么客户端应当以处理500响应的方式处理它。

注意:503状态码的存在并不意味着服务器在过载的时候必须使用它。某些服务器只不过是希望拒绝客户端的连接。

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

注意:某些代理服务器在DNS查询超时时会返回400或者500错误。

505:服务器表示它不能或不愿意使用与客户端相同的主要版本来完成请求,而不是此错误消息。响应应该包含一个描述为什么不支持该版本以及该服务器支持哪些其他协议的实体。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GaoJamie

您的鼓励将是我更新的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值