2

我有一个应用程序,它包含一个 Windows Phone 客户端,它将 HTTP 请求发送到托管在 Google App Engine 中的 Python 服务器。在 GAE 日志中,我看到我经常在几毫秒内收到来自同一个客户端的多个相同请求(见下文)。在我的开发环境中测试客户端时,我从未见过这种行为。尽管如此,我意识到这可能是我的代码中的错误,但我的问题是:

基础设施的任何部分(移动网络、互联网、谷歌应用引擎本身)是否会导致请求重复?

如果是这样,接下来的问题是:是否有最佳实践来最小化这种情况?

gae日志截图

4

2 回答 2

5

不,底层基础设施不会复制 HTTP 请求。至少他们不应该是。

可能发生的情况是,您看到移动应用程序请求是用本机 cod 发出的,它们不使用 cookie 并且具有相同的用户代理字符串。相同的 IP 是因为移动网络内部使用 NAT,将多个(可能数千个)客户端隐藏在单个 IP 地址后面。

于 2013-01-23T20:43:06.350 回答
3

网络确实不可能复制 HTTP 请求。它可以使用错误配置的路由复制 IP 数据报,但 TCP 层过滤重复的 IP 数据报,以便端到端连接只看到一个 TCP 流。应用引擎可能会在没有标准时间的情况下重用 TCP 端口来等待先前的 TCP 连接出于性能目的而终止,但我仍然认为重复的数据包不会从用于初始化连接的三向 TCP 握手中幸存下来。

于 2013-01-24T10:29:36.790 回答