一、什么是状态码
HTTP状态码(HTTP Status Code)是用以表示网页服务器HTTP响应状态的3位数字代码。它由 RFC2616 规范定义的 ,并得到RFC 2518、RFC 2817、RFC 2295、RFC 2774、RFC 4918等规范扩展。
二、状态码类型
所有状态码的第一个数字代表了响应的五种状态之一,其分类如下:
HTTP状态码分类 | |
1xx | 信息,表示临时响应并需要请求者继续执行操作 |
2xx | 成功,操作被成功接收并处理 |
3xx | 表示要完成请求,需要进一步操作。 通常,这些状态代码用来重定向 |
4xx | 客户端错误,请求包含语法错误或无法完成请求 |
5xx | 这些状态代码表示服务器在尝试处理请求时发生内部错误。 这些错误可能是服务器本身的错误,而不是请求出错 |
三、状态码详解
3.1、1xx
100:(继续) 请求者应当继续提出请求。 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。
101:(切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。
102:由WebDAV(RFC 2518)扩展的状态码,代表处理将被继续执行。
3.2、2XX
200:(成功) 服务器已成功处理了请求。 通常,这表示服务器提供了请求的网页。
201:(已创建) 请求成功并且服务器创建了新的资源。
202:(已接受) 服务器已接受请求,但尚未处理。
203:(非授权信息) 服务器已成功处理了请求,但返回的信息可能来自另一来源。
204:(无内容) 服务器成功处理了请求,但没有返回任何内容。
205:(重置内容) 服务器成功处理了请求,但没有返回任何内容。
206:(部分内容) 服务器成功处理了部分 GET 请求。
208:(已经报告)一个DAV的绑定成员被前一个请求枚举,并且没有被再一次包括。
226:(IM Used)服务器已经满足了请求所要的资源,并且响应是一个或者多个实例操作应用于当前实例的结果。
3.3、3XX
300:(多种选择) 针对请求,服务器可执行多种操作。 服务器可根据请求者 (user agent) 选择一项操作,或提供操作列表供请求者选择。
301:(永久移动) 请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。
302:(临时移动) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。
303:(查看其他位置) 请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码。
304:(未修改) 自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容。
305:(使用代理) 请求者只能使用代理访问请求的网页。 如果服务器返回此响应,还表示请求者应使用代理。
307:(临时重定向) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。
308:(永久转移)这个请求和以后的请求都应该被另一个URI地址重新发送。307、308和302、301有相同的表现,但是不允许HTTP方法改变。例如,请求表单到一个永久转移的资源将会继续顺利地执行。
3.4、4XX
400:(错误请求) 服务器不理解请求的语法。
401:(未授权) 请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。
402:该状态码是为了将来可能的需求而预留的。
403:(禁止) 服务器拒绝请求。
404:(未找到) 服务器找不到请求的网页。
405:(方法禁用) 禁用请求中指定的方法。
406:(不接受) 无法使用请求的内容特性响应请求的网页。
407:(需要代理授权) 此状态代码与 401(未授权)类似,但指定请求者应当授权使用代理。
408:(请求超时) 服务器等候请求时发生超时。
409:(冲突) 服务器在完成请求时发生冲突。 服务器必须在响应中包含有关冲突的信息。
410:(已删除) 如果请求的资源已永久删除,服务器就会返回此响应。
411:(需要有效长度) 服务器不接受不含有效内容长度标头字段的请求。
412:(未满足前提条件) 服务器未满足请求者在请求中设置的其中一个前提条件。
413:(请求实体过大) 服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。
414:(请求的 URI 过长) 请求的 URI(通常为网址)过长,服务器无法处理。
415:(不支持的媒体类型) 请求的格式不受请求页面的支持。
416:(请求范围不符合要求) 如果页面无法提供请求的范围,则服务器会返回此状态代码。
417:(未满足期望值) 服务器未满足"期望"请求标头字段的要求。
418:(我是一个茶壶)这个代码是在1998年作为传统的IETF April Fools‘ jokes被定义的在RFC2324,超文本咖啡罐控制协议,但是并没有被实际的HTTP服务器实现。RFC指定了这个代码应该是由茶罐返回给速溶咖啡。
419:(认证超时)并不是HTTP标注的一部分,419认证超时表示以前的有效证明已经失效了。同时也被用于401未认证的替代选择为了从其它被拒绝访问的已认证客户端中指定服务器的资源。
420:(方法失效)不是HTTP的标准,但是被Spring定义在HTTP状态类中当方法失时使用。这个状态码已经不推荐在Spring中使用。
420:(提高你的耐心)也不是HTTP标准的一部分,但是被版本1的Twitter搜索和趋势APi返回当客户端的速率被限制的时候。其它的服务提供商可能会使用429太多的请求响应码来代替。
421:从当前客户端所在的IP地址到服务器的连接数超过了服务器许可的最大范围。通常,这里的IP地址指的是从服务器上看到的客户端地址(比如用户的网关或者代理服务器地址)。在这种情况下,连接数的计算可能涉及到不止一个终端用户。
422:请求格式正确,但是由于含有语义错误,无法响应。(RFC 4918 WebDAV)423 Locked
当前资源被锁定。(RFC 4918 WebDAV)
424:由于之前的某个请求发生的错误,导致当前请求失败,例如 PROPPATCH。(RFC 4918 WebDAV)
425:在WebDav Advanced Collections 草案中定义,但是未出现在《WebDAV 顺序集协议》(RFC 3658)中。
426:客户端应当切换到TLS/1.0。(RFC 2817)
428:(需要前置条件)原始服务器需要有条件的请求。当客户端GET一个资源的状态的时候,同时又PUT回给服务器,与此同时第三方修改状态到服务器上的时候,为了避免丢失更新的问题发生将会导致冲突。
429:(过多请求)用户已经发送了太多的请求在指定的时间里。用于限制速率。
431:(请求头部字段太大)服务器由于一个单独的请求头部字段或者是全部的字段太大而不愿意处理请求。
440:(登陆超时(微软))一个微软的扩展,意味着你的会话已经超时。
444:(无响应)被使用在Nginx的日志中表明服务器没有返回信息给客户端并且关闭了连接(在威慑恶意软件的时候比较有用)。
449:(重试(微软))一个微软的扩展。请求应该在执行适当的动作之后被重试。
450:(被Windows家长控制阻塞(微软))一个微软的扩展。这个错误是当Windows家长控制打开并且阻塞指定网页的访问的时候被指定。
451:(由于法律原因而无效(因特网草稿))被定义在因特网草稿“一个新的HTTP状态码用于法律限制的资源”。被用于当资源的访问由于法律原因被禁止的时候。例如检查制度或者是政府强制要求禁止访问。一个例子是1953年dystopian的小说Fahrenheit 451就是一个非法的资源。
451:(重定向(微软))被用在Exchange ActiveSync中如果一个更有效的服务器能够被使用或者是服务器不能访问用户的邮箱。客户端会假定重新执行HTTP自动发现协议去寻找更适合的服务器。
494:(请求头太大(Nginx))Nginx内置代码和431类似,但是是被更早地引入在版本0.9.4(在2011年1月21日)。
495:(证书错误(Nginx))Nginx内置的代码,当使用SSL客户端证书的时候错误会出现为了在日志错误中区分它和4XX和一个错误页面的重定向。。
496:(没有证书(Nginx))Nginx内置的代码,当客户端不能提供证书在日志中分辨4XX和一个错误页面的重定向。
497:(HTTP到HTTPS(Nginx))Nginx内置的代码,被用于原始的HTTP的请求发送给HTTPS端口去分辨4XX在日志中和一个错误页面的重定向。
498:(令牌超时或失效(Esri))由ArcGIS for Server返回。这个代码意味着令牌的超时或者是失效。
499:(客户端关闭请求(Nginx))被用在Nginx日志去表明一个连接已经被客户端关闭当服务器仍然正在处理它的请求,是的服务器无法返货状态码。
499:(需要令牌(Esri))由ArcGIS for Server返回。意味着需要一个令牌(如果没有令牌被提交)。
3.5、5XX
500:(服务器内部错误) 服务器遇到错误,无法完成请求。
501:(尚未实施) 服务器不具备完成请求的功能。 例如,服务器无法识别请求方法时可能会返回此代码。
502:(错误网关) 服务器作为网关或代理,从上游服务器收到无效响应。
503:(服务不可用) 服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态。
504:(网关超时) 服务器作为网关或代理,但是没有及时从上游服务器收到请求。
505:(HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 协议版本。
506:由《透明内容协商协议》(RFC 2295)扩展,代表服务器存在内部配置错误:被请求的协商变元资源被配置为在透明内容协商中使用自己,因此在一个协商处理中不是一个合适的重点。
507:服务器无法存储完成请求所必须的内容。这个状况被认为是临时的。WebDAV (RFC 4918)
509:服务器达到带宽限制。这不是一个官方的状态码,但是仍被广泛使用。
510:获取资源所需要的策略并没有没满足。(RFC 2774)。
508:(发现环路)服务器发现了一个无限的循环档处理请求的时候。
511:(需要网络授权)客户端需要授权去火的网络的访问权限。一般用于代理交互中被用来进行网络的访问控制。
520:(未知错误)这个状态码也没有被指定在任何RFC中,并且只会被一些服务器返回,例如微软的Azure和CloudFlare服务器:”520错误。本质上是一个捕获全部的响应当原始服务器返回一些未知的或者一些不能被忍受或者被解释的(协议违反或者空响应)”。
598:(网络读取超时异常(未知))这个状态码也没有在任何RFC中指定,但是被用在微软的HTTP代理中去标注一个网络读取超时在一个客户端之前的代理的后面。
599:(网络连接超时异常(未知))这个状态码也没有在任何RFC中指定,但是被用在微软的HTTP代理中去标注一个网络连接超时在一个客户端之前的代理的后面。
上一篇:已经是第一篇
下一篇:已经是最后一篇
ArcGIS 二次开发系列之Python版示例代码——矢量栅格数据批量投影转化
2023-02-17