我使用OpenLaszlo在DHTML中编写了一个应用程序。该应用程序在Chrome中运行得非常好,但它在Firefox中存在问题。 javascript客户端向Struts2中间层发出HTTP POST请求,该中间层通过Hibernate查询数据库,然后返回XML响应。该应用程序正在生产中,因此客户端代码,中间层和数据库都托管在我的桌面计算机上。
我可以直接在Chrome和Firefox中运行该应用程序,虽然Chrome中的所有内容都能正常运行,但一些HTTP请求(每次都是相同的)都会在Firefox上失败。启动POST请求后立即失败的那些启动,没有给出HTTP响应或错误代码(我使用Firebug来监视POST请求和响应)。
在使用Wireshark观察流量后,我确定,由于某种原因,Firefox在发出POST请求并从服务器接收标准ACK后立即(不到一秒钟)发送FIN ACK数据包。
网络流量如下:
在Chrome中:客户端发送POST - >服务器发送ACK - >服务器发送XML数据 - >客户端发送ACK - >服务器发送HTTP / XML 200响应 - >客户端发送ACK
在Firefox中:客户端发送POST - >服务器发送ACK - >客户端发送FIN,ACK - >服务器发送ACK - >服务器发送XML数据 - >客户端发送重置
我想知道以前是否有人目睹了这种行为,并且可能知道我能做些什么来解决它。
答案 0 :(得分:0)
我也遇到过这个问题。 Firefox发送与其新的网络更改功能相关的FIN,ACK。见:https://hg.mozilla.org/mozilla-central/rev/0a066b7ffa46
我们花了很多时间来检查这个。 我还在stackoverflow上发帖: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-changed.timeout”设置为更大。检查我们报告的firefox错误更多细节。