gpt4 book ai didi

http - HTTP Keep Alive 超时后,新的 HTTP 请求到达

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:28:45 31 4
gpt4 key购买 nike

我们的应用程序是基于 ExtJS 3.4 的应用程序,我们经常在 UI 上收到“通信失败”错误,我们将应用程序部署在不同的域上,但在某些域上我们经常遇到这种情况。

如果没有 HTTP Keep Alive,我们不会收到该错误。:

但是在 1 秒和 5 秒的不同场景中,我们经常得到它。

我们在 Wireshark 上观察到,由于高 RTT(往返时间),请求花费的时间比预期的要长。数据包流不一致情况是:

如果 keep alive 是 5 秒:

  1. 当请求成功服务时,它将返回 200 OK(成功响应)和 5 秒的超时参数(服务器试图告诉客户端服务器将在关闭此连接之前等待 5 秒)。

  2. 现在,一旦 5 秒过去,服务器就会发送一个 FIN 数据包(用于关闭连接的完成数据包从服务器发送到客户端,在我们的例子中是浏览器)。

  3. 现在这里是捕获从客户端到关闭连接的 ACK(确认数据包)所花费的时间(高 RTT)。

  4. 现在服务器已启动关闭,但由于连接关闭前的高 RTT,客户端会在服务器从客户端接收到 FINISH 的 ACK 之前发送新的 HTTP 请求(例如 ExampleABC.do 请求)。

  5. 由于哪个服务器无法处理该请求,因为它已启动连接关闭。

将 1 秒设置为保持事件状态意味着我们正在减少服务器等待关闭连接的时间,因为我们希望在 1 秒后关闭一个连接并为新请求设置新连接以避免 5 秒后出现不需要的请求.

提前致谢这是我的第一篇文章,如有需要请指正。抱歉英语不好:)

通讯失败图片:

http://www.bryntum.com/forum/download/file.php?id=3493&sid=5f0c6b2ac3fa0fe9361a23df99644e54

最佳答案

我们通过同步浏览器超时和服务器超时解决了这个问题。

修复是为了确保 TCP keepalive 时间和浏览器一致或同时到来,导致 TCP 连接完全断开。

关于http - HTTP Keep Alive 超时后,新的 HTTP 请求到达,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31220832/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com