小编Dan*_*n R的帖子

Windows 上不同浏览器之间的保持活动和超时行为

精简版

为什么 chrome 会发出 keep-alive,而 IE 和 FF 不会?

长版

最初,我认为这是服务器端问题。

我有一个 apache 服务器,它是 tomcat webapp 的前端代理。此应用程序上的其中一个页面需要 15-20 分钟才能返回结果。我观察到在通过 IE 或 FF 访问时,使用此页面会超时。它转到标准的“无法访问”页面,就像您在尝试访问网络时查看网络电缆是否断开一样。然而,在 Chrome 上,它工作得很好。

这让我很好奇,所以我在服务器上用 tcpdump 监视了流量,我注意到了很大的不同。虽然 IE 和 FF 在超时之前一直保持沉默,但 chrome 会定期向服务器发送 ACK 数据包(并且正在收到响应 ACK)。另外值得注意的是,IE/FF 似乎都发送了 TCP 断开连接,而不是从服务器接收任何超时。

是的,为什么 IE/FF 断开连接,而 Chrome 没有断开连接?为什么 Chrome 会发送 keep-alives 而 IE/FF 不会?

我已尝试更改此知识库文章中MS 推荐的注册表设置。它似乎没有改变任何行为。

来自 IE 的流量示例(FF 几乎相同)

23:25:56.814732 IP InternetExplorer.27378 > Server.https: . 83070:84430(1360) ack 154 win 65382
23:25:56.814976 IP InternetExplorer.27378 > Server.https: . 84430:85790(1360) ack 154 win …
Run Code Online (Sandbox Code Playgroud)

internet-explorer timeout firefox google-chrome keepalive

4
推荐指数
1
解决办法
9958
查看次数