【发布时间】:2013-01-12 15:13:00
【问题描述】:
是否有一种协议(或框架)可以确保当请求失败时,它在客户端(iOS、Android 等)和服务器端都失败,并且当它成功时,双方都成功?
请求可能在服务器上完成,但由于网络连接断开,客户端没有收到响应并认为请求失败。
【问题讨论】:
是否有一种协议(或框架)可以确保当请求失败时,它在客户端(iOS、Android 等)和服务器端都失败,并且当它成功时,双方都成功?
请求可能在服务器上完成,但由于网络连接断开,客户端没有收到响应并认为请求失败。
【问题讨论】:
Post-Redirect-Get 模式可以适应这种情况。 post 部分用于提交请求,重定向后的 get 将指向“结果”页面,客户端可以在该页面中获取状态(进行中、失败、成功等)。
显然,客户端不应从网络问题中得出请求失败的结论。它应该只是准备等待和/或重试以获得状态。
有趣的情况是初始请求提交不完整,即什么都没有,甚至重定向都没有返回。这就是适应的地方。初始数据提交应该在服务器生成事务标识符之后,客户端可以将其用作状态请求的替代方案。 (例如,具有静态字段“请保存并使用此跟踪 ID 进行状态查询”的表单。)
如果您的问题是这种回退是否可以在协议级别自动执行,那么很遗憾,答案是否定的。
【讨论】: