偶尔随机超时

偶尔随机超时

也许这是一个过于笼统的问题,但既然这个问题我们已经存在了很长一段时间,我还是试一试。我们有一些应用程序使用 HTTP 来连接客户端(网站或胖客户端)和服务器。运行这些应用程序的计算机位于防火墙和代理后面的网络中,服务器不在同一网络中。

问题是,https 请求时不时会超时,并且根据客户端的不同,应用程序会“挂起”或执行其他一些奇怪的操作。问题肯定出在我们的网络内部,因为如果我尝试使用网络外部的应用程序,它会正常运行。

您能提示一下我最有可能在哪里找到问题吗?

答案1

这取决于为什么代理正在造成干扰。如果这是一个长期连接,并且它在某个超时时关闭,您可以:

  • 在您的 Web 服务器上禁用保持活动功能(这会对所有客户端产生不利影响,因此它可能是最不理想的“解决方案”)。
  • 假设您使用的是 JavaScipt,则可以关闭每个请求之间的连接。如果您使用的是 HttpURLConnection,则只需在对象上调用setRequestProperty("Connection", "close")后跟即可。对于 XMLHTTPRequest,请求通过关闭连接。大多数其他方法/技巧都有类似的属性或方法。检测代理(从标题中)、要求用户设置长/短连接的首选项并将其保存为 HTML5 样式(例如或类似的东西)可获得加分;disconnect()setRequestHeader("Connection", "close")VialocalStorage.prefConnection="close"

您的代理仍然可能对 Web 请求做了一些“疯狂”的事情,并且与上述情况无关。超时只是一种预感(正如我之前所见,尤其是在使用旧代理和新式 Ajaxy 应用程序时)。

相关内容