Http 状态码详解,Android开发者跳槽必备

本文详细解析了HTTP的各种状态码,包括成功、重定向、客户端错误和服务器错误等类别,对Android开发者理解和解决网络请求问题具有重要参考价值,是跳槽面试的知识点之一。
摘要由CSDN通过智能技术生成

这意味着服务器已经收到请求的头部信息了,客户端应该继续发送请求的主体部分。如果请求的主体部分很大,可能会出现服务器因为不匹配的头部信息的原则拒绝了请求。因此,为了让服务器只通过请求的头部信息就检查请求能否被接受,客户端必须将 Extpect: 100-continue作为初始化请求并且监测100-continue状态码是否被服务器收到在继续发送请求体之前(或者收到417 Expectation Failed状态码并且不再继续)

101 切换协议

======================================================================

这意味着请求者要求服务器切换协议并且服务器也确认将会那么做。

102 处理中

=====================================================================

作为一个WebDAV的请求可能包含多个子请求包括文件操作等,这将可能花费很长时间去完成操作。这个状态码意味着服务器已经收到了请求,并且正在处理中,所以当前暂无响应。这样将避免客户端因为超时而认为当前请求丢失。

2XX 成功

====================================================================

这一类状态码意味着请求的行为已经被客户端收到、理解接受而且被成功地处理。

200 成功

====================================================================

成功HTTP请求的标准响应状态码。不过实际的响应取决于请求者所使用的方法。如果在一个GET的请求中,响应将会包含对应资源的实体。而在一个POST请求中,响应将会包含一个实体的描述或者是请求行为的结果。

201 已创建

=====================================================================

请求已经被满足,并且一个新的资源将会被创建。

202 接受

====================================================================

请求已经被接受并被处理,但是处理还没有完成。请求可能最终不会采取行动,因为在执行过程中可能会被打断。

203 非权威的信息

========================================================================

服务器成功处理请求,但是返回信息可能来自其它源。

204 无内容

=====================================================================

服务器成功处理请求,但是没有返回任何内容。通常被用来被作为成功删除的请求的响应。

205 重置内容

======================================================================

服务器成功处理请求,但是没有返回任何内容。和204不同的是,响应需要请求者重置文档视图。

206 部分内容

======================================================================

服务器只返回了一部分资源因为客户端发送了一系列的请求头。这些请求头被像wget的工具去恢复已经被中断的下载,或者将下载分成多个同步的流。

207 多状态

=====================================================================

紧跟消息体后面的是xml消息并且包含了多个单独的响应状态码,响应的数量取决于子请求的个数。

208 已经报告

======================================================================

一个DAV的绑定成员被前一个请求枚举,并且没有被再一次包括。

226 IM Used

=========================================================================

服务器已经满足了请求所要的资源,并且响应是一个或者多个实例操作应用于当前实例的结果。

3XX跳转

===================================================================

这一类状态码意味着客户端必须执行额外的动作去完成请求。大部分这些状态码被用于url重定向。只有当第二请求方法是GET或者是HEAD的情况下,用户代理可能会执行额外的动作在没有用户交互的情况下。一个用户代理不能自动地重定向请求超过5次,因为这样的重定向经常意味着一个死循环。

300 多重选择

======================================================================

意味着对于这个资源有多个选项需要客户端注意。例如,可以用来展示不同格式的视频,使用不同的扩展名列出文件,或者消除文字的歧义。

301 永久移动

======================================================================

当前以及未来的所有请求应该被定位到指定的url上去。

302 发现

====================================================================

这是工业实践和标准相矛盾的例子。HTTP/1.0规范需要客户端执行一个临时的跳转(原始的描述短语是”临时移动”),但是流行的浏览器使用303查看其它的功能去实现302.因此,HTTP/1.1添加了状态码303和307去分辨这两个操作。然而,一些web程序和框架使用302状态码就好像它是303一样。

303 查看其它

======================================================================

当前请求的响应能够在其它的URI地址上使用GET方法发现。当接收到一个POST响应的请求,则应该假设服务器已经收到数据而且跳转应该发出一个单独的GET消息。

304 未修改

=====================================================================

意味着资源没有被修改因为请求头指定的版本跟本地保存的版本并未修改或没有匹配。这说明没有必要重新传输资源,因为客户端仍然有一个以前下载的副本。

305 使用代理(自从HTTP/1.1)

==================================================================================

请求的资源只能通过代理才能访问,并且访问的地址由响应提供。很多HTTP客户端(像火狐和IE)因为安全问题,不能正确地处理该响应。

306 切换代理

======================================================================

不再使用。原意是随后的请求应该使用指定的代理。

307 临时跳转(自从HTTP/1.1)

==================================================================================

在这种情况下,当前请求应该被另一个URI地址重新发送,然而未来的请求仍然应该使用原始的URI地址。和302不同的是历史实现,请求方法不允许改变当重新发送原始请求。例如,一个POST请求应该被另一个POST请求重新发送。

308 永久转移

======================================================================

这个请求和以后的请求都应该被另一个URI地址重新发送。307、308和302、301有相同的表现,但是不允许HTTP方法改变。例如,请求表单到一个永久转移的资源将会继续顺利地执行。

4XX 客户端错误

=======================================================================

4XX类别的状态码是为了预防客户端出现错误的情况。除了响应请求头的情况,服务器应该包括错误情形解释的实体无论是临时的还是永久的条件。这些状态码可以和任何请求方法匹配。用户代理应该展示可以被包括的实体给用户。

400 错误请求

======================================================================

服务器因为一些事情感知到客户端的错误而不继续处理请求(例如不正确的请求语法,无效的请求消息框架,以及虚假的请求路由)。

401 未授权

=====================================================================

和403禁止相似,但是明确用于需要授权的、失败的或者是不支持的。响应必须包括适用于请求资源的WWW-认证头字段。查看基本访问认证和数字访问认证。

402 需要付款

======================================================================

为以后保留使用。原意是该状态码可被用于一些数字货币或者是微支付,但是目前还没有普及,所以这些代码不经常被使用。YouYube使用这个状态如果某个IP地址发出了过多的请求,并要求用户输入验证码。

403 禁止访问

======================================================================

这个请求是一个有效的请求,但是服务器拒绝响应它。和401未授权的响应不同,是否授权并没有区别。

404 找不到

=====================================================================

请求资源无法被找到但是可能以后会再次有效。客户端以后发出的请求也是被允许的。

405 方法不允许

=======================================================================

请求由不支持该方法的资源发出。例如,使用GET方法在一个需要数据通过POST展现的表单或者是使用PUT在一个只读的资源中。

406 不可接受的

=======================================================================

被请求的资源只能用于生成内容而不会接收发送请求中的头。

407 需要代理认证

========================================================================

客户端必须首先使用代理认证自己。

408 请求超时

======================================================================

服务器超时等待请求。根据HTTP规范:”客户端在服务器等待期间没有发出任何请求”。客户端可能会在未来的某个时候重复请求而不做任何修改。

409 冲突

====================================================================

意味着请求不能被处理因为存在冲突,例如多个更新的情况下存在修改冲突。

410 遗失的

=====================================================================

当前状态意味着被请求的资源不再有效并且以后也不会再次生效。一般用于一个资源被有意地删除或者资源需要被清除。一旦接收410状态码,客户端将不应该再次请求该资源。例

《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》

【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享

如搜素引擎应该从它们的下表中移除资源。大部分用例并不需要客户端和搜索引擎清空资源,而是使用404找不到来代替。

411 长度要求

======================================================================

请求没有指定内容的长度,但是请求的资源需要指定。

412 前置条件失败

========================================================================

服务器不满足请求者所请求的预置条件。

413 响应实体太大

========================================================================

请求超过服务器所能处理和允许的最大值。

414 请求-URI太长

==========================================================================

被提供的URI对服务器的处理来说太长。经常出现在太多被编码的数据被作为查询字符串的GET请求的结果,因此需要被转换为POST请求。

415 不被支持的媒体类型

===========================================================================

请求实体的媒体类型不被服务器或者资源支持。例如,客户端上传一个image/svg+xml的图片,但是服务器需要图片使用不同的格式。

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 误导请求

======================================================================

请求被直接定向到不能产生响应的服务器上(例如因为一个连接的复用)。

422 不可处理的实体(WebDAV)

=================================================================================

请求符合要求但是不能接受错误由于语法错误。

423 锁定的

=====================================================================

资源访问被锁定。

424 失败的依赖

=======================================================================

请求由于上一个请求的失败而失败。

426 需要升级

======================================================================

客户端应该切换不同的协议例如TLS/1.0在指定的升级的头字段里。

428 需要前置条件

========================================================================

原始服务器需要有条件的请求。当客户端GET一个资源的状态的时候,同时又PUT回给服务器,与此同时第三方修改状态到服务器上的时候,为了避免丢失更新的问题发生将会导致冲突。

429 过多请求

======================================================================

用户已经发送了太多的请求在指定的时间里。用于限制速率。

431 请求头部字段太大

==========================================================================

服务器由于一个单独的请求头部字段或者是全部的字段太大而不愿意处理请求。

440 登陆超时(微软)

==========================================================================

一个微软的扩展,意味着你的会话已经超时。

444 无响应

=====================================================================

被使用在Nginx的日志中表明服务器没有返回信息给客户端并且关闭了连接(在威慑恶意软件的时候比较有用)。

449 重试(微软)

========================================================================

一个微软的扩展。请求应该在执行适当的动作之后被重试。

450 被Windows家长控制阻塞(微软)

====================================================================================

一个微软的扩展。这个错误是当Windows家长控制打开并且阻塞指定网页的访问的时候被指定。

451 由于法律原因而无效(因特网草稿)

==================================================================================

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值