2013-01-23 17 views
2

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

基础结构(移动网络,互联网,谷歌应用程序引擎本身)的任何部分可以导致请求被复制?

如果是这样,接下来的问题是:是否有最佳做法,以尽量减少这种情况?

screenshot of gae log

回答

3

网络真的不可能复制HTTP请求。它可以复制具有错误配置的路由的IP数据报,但TCP层过滤重复的IP数据报,以便端到端连接只能看到一个TCP流。为了提高性能,应用引擎可能会重新使用TCP端口而无需标准时间来等待先前的TCP连接,但我仍然认为重复数据包不会从用于初始化连接的三方TCP握手中存活。

5

号,HTTP请求不会被底层基础架构复制。至少他们应该不是是。

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

+0

我们遇到了安装了网络跟踪软件的员工的问题。事实证明,出于某种原因,该软件再次触及每个页面/请求以进行跟踪。它最终成为我们的错,因为允许在没有身份验证的情况下引发API:/ – Nathaniel

+0

@Peter,关于NAT的观点很好,但我非常确定这不是我情况中发生的事情(我不相信我有足够的应用程序使用情况,让多个客户端在蓝月亮中不止一次地发出相同的请求:-)因此,进入调试器,我去... –

相关问题