HTTP服务器状态代码定义(Status Code Definitions)
1.1 消息1xx(Informational 1xx)
该类状态代码用于表示临时回应。临时回应由状态行(Status-Line)及可选标题组成, 由空行终止。HTTP/1.0中没有定义任何1xx的状态代码,所以它们不是对HTTP/1.0请求的 合法回应。实际上,它们主要用于实验用途,这已经超出本文档的范围。
1.2 成功2xx(Successful 2xx)
表示客户端请求被成功接收、理解、接受。
200 OK
请求成功。回应的信息依赖于请求所使用的方法,如下:
GET 要请求的资源已经放在回应的实体中了。
HEAD 没有实体主体,回应中只包括标题信息。
POST 实体(描述或包含操作的结果)。
201 Created
请求完成,结果是创建了新资源。新创建资源的URI可在回应的实体中得到。原始服务器应在发出该状态代码前创建该资源。如果该操作不能立即完成,服务器必须在该资源可用时在回应主体中给出提示,否则,服务器端应回应202(可被接受)。
在本文定义的方法,只有POST可以创建资源。
202 Accepted
请求被接受,但处理尚未完成。请求可能不一定会最终完成,有可能被处理过程随时中断,在这种情况下,没有办法在异步操作中重新发送状态代码。
202回应是没有义务的,这样做的目的是允许服务器不必等到用户代理和服务器间的连接结束,就可以响应其它过程的请求(象每天运行一次的,基于批处理的过程)。
在某些回应中返回的实体中包括当前请求的状态指示、状态监视器指针或用户对请求能否实现的评估信息。
204 No Content
服务器端已经实现了请求,但是没有返回新的信息。如果客户是用户代理,则勿需为此更新自身的文档视图。该回应主要是为了在不影响用户代理激活文档视图的前提下,进行script语句的输入及其它操作。该回应还可能包括新的、以实体标题形式表示的元信息,它可被当前用户代理激活视图中的文档所使用。
1.3 重定向(Redirection 3xx)
该类状态码表示用户代理要想完成请求,还需要发出进一步的操作。这些操作只有当后跟的请求是GET或HEAD时,才可由用户代理来实现,而不用与用户进行交互。用户代理永远也不要对请求进行5次以上的重定向操作,这样可能导致无限循环。
300 Multiple Choices
该状态码不被HTTP/1.0的应用程序直接使用,只是做为3xx类型回应的缺省解释。存在多个可用的被请求资源。
除非是HEAD请求,否则回应的实体中必须包括这些资源的字符列表及位置信息,由用户或用户代理来决定哪个是最适合的。
如果服务器有首选,它应将对应的URL信息存放在位置域(Location field)处,用户代理会根据此域的值来实现自动的重定向。
301 Moved Permanently
请求到的资源都会分配一个永久的URL,这样就可以在将来通过该URL来访问此资源。有编辑链接功能的客户端会尽可能地根据服务器端传回的新链接而自动更新请求URI。 新的URL必须由回应中的位置域指定。除非是HEAD请求,否则回应的实体主体 (Entity-Body)必须包括对新URL超链接的简要描述。
如果用POST方法发出请求,而接收到301回应状态码。在这种情况下,除非用户确认,否则用户代理不必自动重定向请求,因为这将导致改变已发出请求的环境。
注意:当在接收到301状态码后而自动重定向POST请求时,一些现存的用户代理会错误地将其改为GET请求。
302 Moved Temporarily
请求到的资源在一个不同的URL处临时保存。因为重定向有时会被更改,客户端应继续用请求URI来发出以后的请求。新的URL必须由回应中的位置域指定。除非是HEAD请求,否则回应的实体主体 (Entity-Body)必须包括对新URL超链接的简要描述。
如果用POST方法发出请求,而接收到302回应状态码。在这种情况下,除非用户确认,否则用户代理不必自动重定向请求,因为这将导致改变已发出请求的环境。
注意:当在接收到302状态码后而自动重定向POST请求时,一些现存的用户代理会错误地将其改为GET请求。
304 Not Modified
如果客户端成功执行了条件GET请求,而对应文件自If-Modified-Since域所指定的日期以来就没有更新过,服务器应当回应此状态码,而不是将实体主体发送给客户端。回应标题域中只应包括一些相关信息,比如缓存管理器、与实体最近更新(entity 's Last-Modified)日期无关的修改。相关标题域的例子有:日期、服务器、过期时间。每当304回应中给出的域值发生变化,缓存都应当对缓存的实体进行更新。
1.4 客户端错误(Client Error )4xx
4xx类的状态码表示客户端发生错误。如果客户端在收到4xx代码时请求还没有完成,它应当立即终止向服务器发送数据。除了回应HEAD请求外,不论错误是临时的还是永久的,服务器端都必须在回应的实体中包含错误状态的解释。这些状态码适用于任何请求方法。
注意:如果客户端正在发送数据,服务器端的TCP实现应当小心,以确保客户端在关闭输入连接之前收到回应包。如果客户端在关闭后仍旧向服务器发送数据,服务器会给客户 端发送一个复位包,清空客户端尚未处理的输入缓冲区,以终止HTTP应用程序的读取、解释活动。
400 非法请求(Bad Request)
如果请求的语法不对,服务器将无法理解。客户端在对该请求做出更改之前,不应再次向服务器重复发送该请求。
401 未授权(Unauthorized)
请求需要用户授权。回应中的WWW-Authenticate标题域(10.16节)应提示用户以授权方式请求资源。客户端应使用合适的授权标题域(10.2节)来重复该请求。如果请求中已经包括了授权信任信息,那回应的401表示此授权被拒绝。如果用户代理在多次尝试之后,回应一样还是返回401 状态代码,用户应当察看一下回应的实体,因为在实体中会包括一些相关的动态信息。HTTP访问授权会在11节中解释。
403 禁止(Forbidden)
服务器理解请求,但是拒绝实现该请求。授权对此没有帮助,客户端应当停止重复发送此请求。如果不是用HEAD请求方法,而且服务器端愿意公布请求未被实现原因的前提下,服务器会将拒绝原因写在回应实体中。该状态码一般用于服务器端不想公布请求被拒绝的细节或没有其它的回应可用。
404 没有找到(Not Found)
服务器没有找到与请求URI相符的资源。404状态码并不指明状况是临时性的还是永久性的。如果服务器不希望为客户端提供这方面的信息,还回应403(禁止)状态码。
1.5 服务器错误(Server Error )5xx
回应代码以‘5’开头的状态码表示服务器端发现自己出现错误,不能继续执行请求。如果客户端在收到5xx状态码时,请求尚未完成,它应当立即停止向服务器发送数据。除了回应HEAD请求外,服务器应当在其回应实体中包括对错误情况的解释、并指明是临时性的还永久性的。
这类回应代码没有标题域,可适用于任何请求方法。
500 服务器内部错误(Internal Server Error)
服务器碰到了意外情况,使其无法继续回应请求。
501 未实现(Not Implemented)
服务器无法提供对请求中所要求功能的支持。如果服务器无法识别请求方法就会回应此状态代码,这意味着不能回应请求所要求的任何资源。
502 非法网关(Bad Gateway)
充当网关或代理的服务器从要发送请求的上游(upstream)服务器收到非法的回应。
503 服务不可用(Service Unavailable)
服务器当前无法处理请求。这一般是由于服务器临时性超载或维护引起的。该状态码暗示情况是暂时性的,要产生一些延迟。
注意:503状态码并没有暗示服务器在超载时一定要返回此状态码。一些服务器可能希望在超载时采用简单处理,即断掉连接。
分享到:
相关推荐
在LoadRunner测试过程中,理解HTTP服务器状态代码是非常重要的,因为这些代码反映了客户端请求与服务器之间的交互情况。下面是对HTTP服务器状态代码的详细解释: HTTP服务器状态代码分为五类,分别是以1xx、2xx、3...
下面,我们将深入探讨HTTP状态代码及其定义。 1. 1xx(信息性状态代码):这些临时响应表示接收者的客户端需要采取进一步的行动。例如,100(继续)状态代码表示客户端应继续发送请求的剩余部分。 2. 2xx(成功...
本资料包中的“HTTP服务器源代码”可能包含了一个简单的HTTP服务器实现,可以用来理解HTTP协议的工作原理以及服务器端的编程技术。 一、HTTP服务器的基本结构 1. 请求解析:HTTP服务器首先接收到客户端的请求,然后...
HTTP服务器源代码是一种用于在网络上发布信息的软件,其工作原理基于HTTP(超文本传输协议)。在给定的“HTTP服务器源代码”中,我们可以深入学习和理解网络通信的基础,特别是对于那些想要构建自己的Web服务器或者...
HTTP服务器实现代码是一种将HTTP协议应用于C++编程实践的方式,旨在帮助开发者深入理解和掌握HTTP协议的工作原理以及如何在实际项目中构建服务器端的功能。在这个过程中,我们不仅会探讨HTTP的基本概念,还会涉及到...
了解这些HTTP状态代码对于排查网站访问问题、优化网页性能以及处理客户端和服务器之间的通信问题至关重要。开发人员、系统管理员和网络故障排除专家都应该熟悉这些代码,以便能够迅速定位并解决问题。同时,对于普通...
HTTP服务器源代码的分析有助于理解服务器如何处理请求、响应用户以及管理网络通信。 在构建一个HTTP服务器时,主要涉及以下几个核心概念: 1. **HTTP协议**:HTTP是一种应用层协议,用于在Web上传输数据。它定义了...
HTTP服务器原代码是构建互联网基础设施的关键部分,它允许服务器接收并响应HTTP(超文本传输协议)请求,从而向客户端(通常是浏览器)提供网页内容。理解HTTP服务器的原代码有助于深入学习网络编程、服务器架构以及...
标题中的“多线程HTTP服务器源代码”是指一个实现了HTTP协议服务端的程序,它采用了多线程技术来处理来自多个客户端的并发请求。在计算机网络中,HTTP(超文本传输协议)是用于从万维网服务器传输超媒体文档到本地...
本文将深入探讨采用C++实现的异步HTTP服务器程序代码,旨在帮助开发者理解和掌握HTTP服务器的设计原理与实践技巧。 首先,我们要了解什么是异步HTTP服务器。传统的同步HTTP服务器在接收到客户端请求后会阻塞等待...
下面将详细解析常见的HTTP状态代码及其含义,分为2xx成功、3xx重定向、4xx客户机错误、5xx服务器错误四大类。 #### 2xx 成功 - **200 OK**:请求已成功,这是最常见的响应状态码。 - **201 Created**:请求已成功...
源代码是程序员可以阅读、修改和编译的编程语言形式,对于学习HTTP服务器的内部机制非常有价值。通过阅读这些源码,你可以深入了解以下关键知识点: 1. **HTTP请求与响应**:HTTP服务器主要处理客户端的HTTP请求,...
HTTP状态代码是服务器对客户端请求的反馈,表明请求是否被理解和成功处理。这些代码通常由三位数字组成,分为五类: 1. 信息性状态码(100-199) 这类状态码表示服务器已接收部分请求,但客户端需要继续完成请求。...
它定义了请求和响应的格式,包括请求方法(GET、POST等)、状态码、头部信息和主体内容。在自编的web服务器中,你需要解析HTTP请求,并构造相应的HTTP响应。 其次,多线程处理是web服务器处理并发请求的关键。当多...
### 服务器最新返回代码介绍 #### 一、引言 在网络通信中,HTTP协议作为互联网应用最为广泛的基础协议之一,其重要性不言而喻。HTTP协议规定了一系列的状态码,用以表示服务器处理请求后的状态。本文将详细介绍几...
在给定的压缩包"计算机软件-编程源码-HTTP服务器源代码.zip"中,包含的是一个HTTP服务器的源代码。这个源代码是用于实现HTTP(超文本传输协议)服务的,HTTP是互联网上应用最为广泛的一种网络协议,用于从Web服务器...