2

OpenLaszlo を使用して DHTML でアプリケーションを作成しました。アプリケーションは Chrome では問題なく動作しますが、Firefox では問題が発生します。JavaScript クライアントは、Struts2 中間層に HTTP POST 要求を送信します。Struts2 中間層は、Hibernate を介してデータベースにクエリを実行し、XML 応答を返します。アプリケーションは本番環境にあるため、クライアント コード、中間層、およびデータベースはすべてデスクトップ マシンでホストされています。

文字通り、アプリケーションを Chrome と Firefox で並べて実行できます。Chrome ではすべてが完全に機能しますが、Firefox ではいくつかの HTTP 要求 (毎回同じもの) が失敗します。失敗したものは、POST 要求が開始された直後に失敗し、HTTP 応答もエラー コードも与えられません (私は Firebug を使用して POST 要求と応答を監視しています)。

Wireshark でトラフィックを監視した後、何らかの理由で、Firefox が POST 要求を作成し、サーバーから標準の ACK を受信した直後 (1 秒未満) に FIN ACK パケットを送信していることを確認しました。

ネットワーク トラフィックは次のようになります。

Chrome の場合: クライアントが POST を送信 -> サーバーが ACK を送信 -> サーバーが XML データを送信 -> クライアントが ACK を送信 -> サーバーが HTTP/XML 200 応答を送信 -> クライアントが ACK を送信

Firefox の場合: クライアントが POST を送信 -> サーバーが ACK を送信 -> クライアントが FIN、ACK を送信 -> サーバーが ACK を送信 -> サーバーが XML データを送信 -> クライアントがリセットを送信

誰かが以前にこの種の動作を目撃したことがあるかどうか疑問に思っており、それを修正するために私ができることを知っているかもしれません.

4

1 に答える 1

0

私もこの問題に遭遇しました。Firefox は、新しいネットワーク変更機能に関連する FIN,ACK を送信します。参照: https://hg.mozilla.org/mozilla-central/rev/0a066b7ffa46

私たちはこれをチェックするのに膨大な時間を費やしています。私はstackoverflowにも投稿しています:firefox 38がサーバーのACK後にFIN、ACKを送信したとき、httpはfirefoxから取得しましたか?

これに関心のある方は、追跡してください: bugzilla.mozilla.org/show_bug.cgi?id=1245059 回避策は、「network.http.network-changed.timeout」の設定を大きくすることです。詳細については、報告された Firefox のバグを確認してください。

于 2016-02-04T10:23:45.647 に答える