0

Is there a protocol (or framework) that ensures that when a request fails, it fails on both the client side (iOS, Android, etc) and server side, and when it succeeds, successes on both sides?

The request might be completed on the server but because of dropped network connection, the client does not receive the response and thinks that the request failed.

4

1 回答 1

0

Post-Redirect-Get模式可以适应这一点。post 部分用于提交请求,重定向后的 get 将指向“结果”页面,客户端可以在该页面中获取状态(进行中、失败、成功等)。

显然,客户端不应从网络问题中得出请求失败的结论。它应该只是准备等待和/或重试以获得状态。

有趣的情况是初始请求提交是不完整的,即什么都没有,甚至重定向都没有返回。这就是适应的地方。初始数据提交应该在服务器生成事务标识符之后,客户端可以将其用作状态请求的替代方案。(例如,带有静态字段“请保存并使用此跟踪 ID 进行状态查询”的表单。)

如果您的问题是这种回退是否可以在协议级别自动化,那么很遗憾,答案是否定的。

于 2013-01-13T21:37:07.930 回答