常用http状态码
1、什么是http状态码,有什么作用。
通常浏览器向网页服务器发送请求,经过服务器处理后返回的响应头里面会包含一个该次请求处理结果状态的字段state,标记着服务器端对请求的处理是否正常,或出现了什么样的错误。我们可以根据不同的状态码信息得到发生错误的类型,方便调试和解决。
2、状态码有几个类别,分别对应什么范围
状态码由三位数字和原因短语组成,其中三位数字的第一位标志着响应类别,另外两位没有此功能。
状态码 | 类别 | 描述 |
---|
1xx | 此类状态码说明访问请求已被接受,等待进一步处理。 | 服务器收到请求,需要请求者继续执行操作 |
2xx | 此类状态码代表请求已成功被服务器接收、理解、并接受 | 请求得到成功处理 |
3xx | 此类状态码表示客户端需要采取进一步的操作才能完成请求,通常这些状态码用来重定向,后续的请求地址即重定向后的目标地址,会在本次响应中指明。 | 重定向,需要进一步操作来完成请求 |
4xx | 此类状态码表示客户端处可能存在一定错误,妨碍了服务器的处理,这些状态码往往伴随解释当前错误状况的实体,并标明该状况是临时性还是永久性。 | 客户端错误,输入的内容有误(语法错误)导致请求无法完成 |
5xx | 此类状态码表示服务器处理请求的过程中有错误或异常状态发生,抑或是表示服务器认为无法完成对请求的处理。 | 服务器错误,服务器在处理请求过程中发生错误 |
3、具体常用的状态码
补充说明,由于在http/1.0版本中没有定义任何1xx状态码,所以排除在某些实验条件下,服务器禁止向http/1.0版本的客户端发送1xx响应。1xx状态码是在http/1.1版本中新定义的,用来表示请求被正常接收,期待进一步请求处理。【干活干一半,等待领导进一步指挥才可能返回任务结果】。
(1)、1xx
状态码 | 英文名称 | 中文描述 |
---|
100 | continue | 请求者应当继续提出请求。 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。 |
101 | switching protocols | 切换协议。请求者已要求服务器切换协议,服务器已确认并准备切换。 |
102 | | 由WebDAV(RFC 2518)扩展的状态码,代表处理将被继续执行。 |
(2)、2xx
状态码 | 英文名称 | 中文描述 |
---|
200 | OK | 请求成功。从客户端发送给服务器的请求被正常处理并返回; |
201 | Created | 请求成功并且服务器创建了新的资源。 |
202 | Accepted | 服务器已接受请求,但尚未处理。正如它可能被拒绝一样,最终该请求可能会也可能不会被执行 |
203 | Non-AuthoritativeInformation | 服务器已成功处理了请求,但返回的信息可能来自另一来源。 |
204 | No Content | 服务器成功处理了请求,但没有返回任何内容。在未更新网页视图的情况下,可以继续显示当前渲染内容。 |
205 | Reset Content | 服务器成功处理了请求,且没有返回任何内容。但是与204响应不同,返回此状态码的响应要求请求者重置文档视图。该响应主要是被用于接受用户输入后,立即重置表单,以便用户能够轻松地开始另一次输入。与204响应一样,该响应也被禁止包含任何消息体,且以消息头后的第一个空行结束。 |
206 | Patial Content | 表示客户端进行了范围请求,并且服务器成功执行了这部分的GET请求,响应报文中包含由Content-Range指定范围的实体内容。大文件的断点续传应用。 |
207 | | 由WebDAV(RFC 2518)扩展的状态码,代表之后的消息体将是一个XML消息,并且可能依照之前子请求数量的不同,包含一系列独立的响应代码。 |
(3)、3xx
状态码 | 英文名称 | 中文描述 |
---|
301 | Moved Permanently | 被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个 URI 之一。如果可能,拥有链接编辑功能的客户端应当自动把请求的地址修改为从服务器反馈回来的地址 |
302 | Found | 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。 |
303 | See Other | 请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码。 |
304 | Not Modified | 自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容。 |
305 | User Proxy | 请求者只能使用代理访问请求的网页。 如果服务器返回此响应,还表示请求者应使用代理。 |
307 | Temporary Redirect | 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。 |
(4)、4xx
状态码 | 英文名称 | 中文描述 |
---|
400 | Bad Request | 表示请求报文中存在语法错误 |
401 | Unauthorized | 未经许可,需要通过HTTP认证; |
402 | | 保留将来使用 |
403 | Forbidden | 服务器拒绝该次访问(访问权限出现问题) |
404 | Not Found | 表示服务器上无法找到请求的资源,除此之外,也可以在服务器拒绝请求但不想给拒绝原因时使用; |
405 | | 客户端请求中的方法被禁止 |
406 | | 服务器无法根据客户端请求的内容特性完成请求 |
407 | | 请求要求代理的身份认证,与401类似,但是请求者应当使用代理进行授权 |
408 | Request Timeouut | 请求时间过长,请求超时 |
406 | Conflict | 服务器完成客户端的put请求是可能返回此代码,服务器处理请求时发生冲突 |
410 | Gone | 客户端请求的资源已经不存在,410不同于404,如果资源以前有现在被永久删除了可以使用410代码,网站设计人员可通过301代码指定资源的新位置。 |
411 | Length Required | 服务器无法处理客户端发送的不带Content-Length的请求消息。 |
412 | Precondition Failed | 客户端请求信息的先决条件错误,客户端发起了条件请求,且其中一个条件失败了的时候会收到此状态码。 |
413 | Request Entity Too large | 由于请求的实体过大,服务器无法处理,因此拒绝请求。为防止客户端的连续请求,服务器可能会关闭连接。如果只是服务器暂时无法处理,则会包含一个RetryAfter |
414 | Request URL Too Long | 请求的URI过长(网址),服务器无法处理 |
415 | Unsupported Media Type | 服务器无法理解或无法支持客户端所发实体内容类型时,使用此状态码。 |
416 | Request Range Not Satisfiable | 请求报文所请求的是指定资源的某个范围,而此范围无效或者无法满足时,使用此状态码 |
417 | Expectation Failed | 请求的Expect请求首部包含了一个期望,但是服务器无法满足此期望时,使用此状态码。 |
(5)、5xx
5开头(服务器错误)这些状态代码表示服务器在尝试处理请求时发生内部错误。 这些错误可能是服务器本身的错误,而不是请求出错。
状态码 | 英文名称 | 中文描述 |
---|
500 | Internal Server Error | (服务器内部错误)服务器在执行时发生错误,可能存在bug或其他临时故障 |
501 | Not Implemented | 客户端发起的请求超出服务器的能力范围(比如使用了服务器不支持的请求方法) |
502 | Bad Gateway | (错误网关)服务器作为网关或代理,从上游服务器收到无效响应,中间商收到没用的回复 |
503 | Service Unavailable | (服务不可用) 服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态。 |
504 | Gateway Timeout | (网关超时) 服务器作为网关或代理,但是没有及时从上游服务器收到请求。中间商没有收到回复 |
505 | HTTP Version Not Supported | (HTTP 版本不受支持) 服务器收的请求使用了它无法或者不愿支持的协议版本时或服务器不支持请求中所用的 HTTP 协议版本。 |