Http 状态码详解
这意味着请求者要求服务器切换协议并且服务器也确认将会那么做。
=====================================================================
作为一个 WebDAV 的请求可能包含多个子请求包括文件操作等,这将可能花费很长时间去完成操作。这个状态码意味着服务器已经收到了请求,并且正在处理中,所以当前暂无响应。这样将避免客户端因为超时而认为当前请求丢失。
====================================================================
这一类状态码意味着请求的行为已经被客户端收到、理解接受而且被成功地处理。
====================================================================
成功 HTTP 请求的标准响应状态码。不过实际的响应取决于请求者所使用的方法。如果在一个 GET 的请求中,响应将会包含对应资源的实体。而在一个 POST 请求中,响应将会包含一个实体的描述或者是请求行为的结果。
=====================================================================
请求已经被满足,并且一个新的资源将会被创建。
====================================================================
请求已经被接受并被处理,但是处理还没有完成。请求可能最终不会采取行动,因为在执行过程中可能会被打断。
========================================================================
服务器成功处理请求,但是返回信息可能来自其它源。
=====================================================================
服务器成功处理请求,但是没有返回任何内容。通常被用来被作为成功删除的请求的响应。
======================================================================
服务器成功处理请求,但是没有返回任何内容。和 204 不同的是,响应需要请求者重置文档视图。
======================================================================
服务器只返回了一部分资源因为客户端发送了一系列的请求头。这些请求头被像 wget 的工具去恢复已经被中断的下载,或者将下载分成多个同步的流。
=====================================================================
紧跟消息体后面的是 xml 消息并且包含了多个单独的响应状态码,响应的数量取决于子请求的个数。
======================================================================
一个 DAV 的绑定成员被前一个请求枚举,并且没有被再一次包括。
=========================================================================
服务器已经满足了请求所要的资源,并且响应是一个或者多个实例操作应用于当前实例的结果。
===================================================================
这一类状态码意味着客户端必须执行额外的动作去完成请求。大部分这些状态码被用于 url 重定向。只有当第二请求方法是 GET 或者是 HEAD 的情况下,用户代理可能会执行额外的动作在没有用户交互的情况下。一个用户代理不能自动地重定向请求超过 5 次,因为这样的重定向经常意味着一个死循环。
======================================================================
意味着对于这个资源有多个选项需要客户端注意。例如,可以用来展示不同格式的视频,使用不同的扩展名列出文件,或者消除文字的歧义。
===========
===========================================================
当前以及未来的所有请求应该被定位到指定的 url 上去。
====================================================================
这是工业实践和标准相矛盾的例子。HTTP/1.0 规范需要客户端执行一个临时的跳转(原始的描述短语是”临时移动”),但是流行的浏览器使用 303 查看其它的功能去实现 302.因此,HTTP/1.1 添加了状态码 303 和 307 去分辨这两个操作。然而,一些 web 程序和框架使用 302 状态码就好像它是 303 一样。
======================================================================
当前请求的响应能够在其它的 URI 地址上使用 GET 方法发现。当接收到一个 POST 响应的请求,则应该假设服务器已经收到数据而且跳转应该发出一个单独的 GET 消息。
=====================================================================
意味着资源没有被修改因为请求头指定的版本跟本地保存的版本并未修改或没有匹配。这说明没有必要重新传输资源,因为客户端仍然有一个以前下载的副本。
==================================================================================
请求的资源只能通过代理才能访问,并且访问的地址由响应提供。很多 HTTP 客户端(像火狐和 IE)因为安全问题,不能正确地处理该响应。
======================================================================
不再使用。原意是随后的请求应该使用指定的代理。
==================================================================================
在这种情况下,当前请求应该被另一个 URI 地址重新发送,然而未来的请求仍然应该使用原始的 URI 地址。和 302 不同的是历史实现,请求方法不允许改变当重新发送原始请求。例如,一个 POST 请求应该被另一个 POST 请求重新发送。
======================================================================
这个请求和以后的请求都应该被另一个 URI 地址重新发送。307、308 和 302、301 有相同的表现,但是不允许 HTTP 方法改变。例如,请求表单到一个永久转移的资源将会继续顺利地执行。
=======================================================================
4XX 类别的状态码是为了预防客户端出现错误的情况。除了响应请求头的情况,服务器应该包括错误情形解释的实体无论是临时的还是永久的条件。这些状态码可以和任何请求方法匹配。用户代理应该展示可以被包括的实体给用户。
======================================================================
服务器因为一些事情感知到客户端的错误而不继续处理请求(例如不正确的请求语法,无效的请求消息框架,以及虚假的请求路由)。
=====================================================================
和 403 禁止相似,但是明确用于需要授权的、失败的或者是不支持的。响应必须包括适用于请求资源的 WWW-认证头字段。查看基本访问认证和数字访问认证。
======================================================================
为以后保留使用。原意是该状态码可被用于一些数字货币或者是微支付,但是目前还没有普及,所以这些代码不经常被使用。YouYube 使用这个状态如果某个 IP 地址发出了过多的请求,并要求用户输入验证码。
======================================================================
这个请求是一个有效的请求,但是服务器拒绝响应它。和 401 未授权的响应不同,是否授权并没有区别。
=====================================================================
请求资源无法被找到但是可能以后会再次有效。客户端以后发出的请求也是被允许的。
=======================================================================
请求由不支持该方法的资源发出。例如,使用 GET 方法在一个需要数据通过 POST 展现的表单或者是使用 PUT 在一个只读的资源中。
=======================================================================
被请求的资源只能用于生成内容而不会接收发送请求中的头。
========================================================================
客户端必须首先使用代理认证自己。
======================================================================
服务器超时等待请求。根据 HTTP 规范:”客户端在服务器等待期间没有发出任何请求”。客户端可能会在未来的某个时候重复请求而不做任何修改。
====================================================================
意味着请求不能被处理因为存在冲突,例如多个更新的情况下存在修改冲突。
=====================================================================
当前状态意味着被请求的资源不再有效并且以后也不会再次生效。一般用于一个资源被有意地删除或者资源需要被清除。一旦接收 410 状态码,客户端将不应该再次请求该资源。例如搜素引擎应该从它们的下表中移除资源。大部分用例并不需要客户端和搜索引擎清空资源,而是使用 404 找不到来代替。
======================================================================
请求没有指定内容的长度,但是请求的资源需要指定。
========================================================================
服务器不满足请求者所请求的预置条件。
========================================================================
请求超过服务器所能处理和允许的最大值。
==========================================================================
被提供的 URI 对服务器的处理来说太长。经常出现在太多被编码的数据被作为查询字符串的 GET 请求的结果,因此需要被转换为 POST 请求。
===========================================================================
请求实体的媒体类型不被服务器或者资源支持。例如,客户端上传一个 image/svg+xml 的图片,但是服务器需要图片使用不同的格式。
==========================================================================
客户端要求文件的部分(字节服务),但是服务器不能提供那部分的内容。例如,如果客户端要求的部分超过文件的底端。
======================================================================
服务器期望请求头字段的要求。
========================================================================
这个代码是在 1998 年作为传统的 IETF April Fools‘ jokes 被定义的在 RFC2324,超文本咖啡罐控制协议,但是并没有被实际的 HTTP 服务器实现。RFC 指定了这个代码应该是由茶罐返回给速溶咖啡。
======================================================================
并不是 HTTP 标注的一部分,419 认证超时表示以前的有效证明已经失效了。同时也被用于 401 未认证的替代选择为了从其它被拒绝访问的已认证客户端中指定服务器的资源。
======================================================================
不是 HTTP 的标准,但是被 Spring 定义在 HTTP 状态类中当方法失时使用。这个状态码已经不推荐在 Spring 中使用。
========================================================================
也不是 HTTP 标准的一部分,但是被版本 1 的 Twitter 搜索和趋势 APi 返回当客户端的速率被限制的时候。其它的服务提供商可能会使用 429 太多的请求响应码来代替。
======================================================================
请求被直接定向到不能产生响应的服务器上(例如因为一个连接的复用)。
=================================================================================
请求符合要求但是不能接受错误由于语法错误。
=====================================================================
资源访问被锁定。
=======================================================================
请求由于上一个请求的失败而失败。
======================================================================
客户端应该切换不同的协议例如 TLS/1.0 在指定的升级的头字段里。
========================================================================
原始服务器需要有条件的请求。当客户端 GET 一个资源的状态的时候,同时又 PUT 回给服务器,与此同时第三方修改状态到服务器上的时候,为了避免丢失更新的问题发生将会导致冲突。
======================================================================
用户已经发送了太多的请求在指定的时间里。用于限制速率。
==========================================================================
服务器由于一个单独的请求头部字段或者是全部的字段太大而不愿意处理请求。
==========================================================================
一个微软的扩展,意味着你的会话已经超时。
=====================================================================
被使用在 Nginx 的日志中表明服务器没有返回信息给客户端并且关闭了连接(在威慑恶意软件的时候比较有用)。
========================================================================
一个微软的扩展。请求应该在执行适当的动作之后被重试。
====================================================================================
一个微软的扩展。这个错误是当 Windows 家长控制打开并且阻塞指定网页的访问的时候被指定。
==================================================================================
被定义在因特网草稿“一个新的 HTTP 状态码用于法律限制的资源”。被用于当资源的访问由于法律原因被禁止的时候。例如检查制度或者是政府强制要求禁止访问。一个例子是 1953 年 dystopian 的小说 Fahrenheit 451 就是一个非法的资源。
=========================================================================
评论