HTTP请求可以在互联网中重复吗?

时间:2013-01-23 20:15:49

标签: google-app-engine windows-phone mobile-website

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

基础架构的任何部分(移动网络,互联网,Google应用引擎本身)是否会导致请求重复?

如果是这样,后续问题是:是否有最佳措施来减少这种情况?

screenshot of gae log

2 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:3)

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