2012-07-08 31 views
2

我已經使用OpenLaszlo在DHTML中編寫了一個應用程序。該應用程序在Chrome中運行得非常好,但它在Firefox中遇到問題。 javascript客戶端向Struts2中間層發出HTTP POST請求,該層通過Hibernate查詢數據庫,然後返回XML響應。該應用程序正在生產中,因此客戶端代碼,中間層和數據庫都託管在我的臺式機上。試圖找出爲什麼Firefox發送未經請求的FIN ACK數據包

我可以從字面上並排運行Chrome和Firefox中的應用程序,並且儘管Chrome中的所有功能都可以完美運行,但Firefox中的一些HTTP請求(每次都是相同的)都會失敗。在POST請求啓動後立即失敗,沒有HTTP響應或錯誤代碼(我正在使用Firebug觀看POST請求和響應)。

在使用Wireshark觀察流量之後,我確定出於某種原因,Firefox在發出POST請求並從服務器收到標準ACK後立即發送FIN ACK數據包(少於一秒)。

網絡流量是這樣的:

在鉻:客戶端發送POST - >服務器發送ACK - >服務器發送的XML數據 - >客戶端發送ACK - >服務器發送HTTP/XML 200響應 - >客戶端發送ACK

在Firefox中:客戶端發送POST - >服務器發送確認 - >客戶端發送FIN,ACK - >服務器發送確認 - >服務器發送XML數據 - >客戶端發送一個復位

我想知道如果任何人有目睹過這種行爲,並可能知道我能做些什麼來解決它。

回答

0

我也遇到過這個問題。 Firefox發送FIN,ACK相關的新網絡更改功能。請參閱:https://hg.mozilla.org/mozilla-central/rev/0a066b7ffa46

我們花費大量時間來檢查此問題。 我也有在計算器的帖子:when firefox 38 sent FIN,ACK after server ack an http get from firefox?

任何人有興趣在此,請追蹤:bugzilla.mozilla.org/show_bug.cgi?id=1245059變通的解決辦法是設置「network.http.network改變的。超時「設置更大。請查看我們報告的Firefox更多詳細信息。

相關問題