2

Google App Engine でホストされている Python サーバーに HTTP 要求を送信する Windows Phone クライアントで構成されるアプリケーションがあります。GAE ログを見ると、同じクライアントから数ミリ秒以内に同じリクエストを複数受信することがよくあります (以下を参照)。私の開発環境でクライアントをテストしたとき、この動作は見られませんでした。それにもかかわらず、これはおそらく私のコードのエラーであることに気づきましたが、私の質問は次のとおりです。

インフラストラクチャのどの部分 (モバイル ネットワーク、インターネット、Google アプリ エンジン自体) によって、リクエストが重複する可能性がありますか?

もしそうなら、次の質問は次のとおりです。これを最小限に抑えるためのベストプラクティスはありますか?

ゲーログのスクリーンショット

4

2 に答える 2

5

いいえ、HTTP リクエストは基盤となるインフラストラクチャによって複製されません。少なくともそうすべきではありません。

おそらく発生したのは、ネイティブ cod で作成され、Cookie を使用せず、同じユーザー エージェント文字列を持つモバイル アプリ リクエストが表示されることです。同じ IP があるのは、モバイル ネットワークが内部で NAT を使用し、単一の IP アドレスの背後に複数 (場合によっては数千) のクライアントを隠しているためです。

于 2013-01-23T20:43:06.350 に答える
3

ネットワークがHTTPリクエストを複製することは実際には不可能です。ルーティングが正しく構成されていないIPデータグラムを複製できますが、TCPレイヤーは、重複するIPデータグラムをフィルタリングして、エンドツーエンド接続で1つのTCPストリームのみが認識されるようにします。App Engineは、パフォーマンスの目的で前のTCP接続が終了するのを待つ標準時間なしでTCPポートを再利用する場合がありますが、接続の初期化に使用される3ウェイTCPハンドシェイクから重複パケットが存続するとは思われません。

于 2013-01-24T10:29:36.790 に答える