我使用 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 数据 -> 客户端发送重置
我想知道是否有人以前目睹过这种行为,并且可能知道我能做些什么来解决它。