gpt4 book ai didi

java - Firefox 和 IE 对于 302 状态重定向请求速度较慢

转载 作者:行者123 更新时间:2023-12-01 06:22:45 25 4
gpt4 key购买 nike

我有一个 servlet-jsp Web 应用程序。在 Firefox 和 IE 浏览器上,登录操作中的请求之一最多需要 120 秒才能完成。然而,同样的请求在 chrome 中可以正常完成(低于 1 秒)。在调试代码时,我可以得出结论,我的 Web 应用程序过滤器正在快速返回响应,但浏览器显示需要 120 秒才能接收它。如果你看到下面的firefox开发者工具,它显示等待时间为360ms,接收时间为120约 s同样的行为也可以在 IE 上看到。知道可能是什么原因造成的吗?

enter image description here

编辑 1:仅对于返回 302 响应代码的请求才会出现此问题。

编辑2:我尝试使用拦截工具来检查请求,为此我必须通过 127.0.0.1 (localhost) 的代理路由流量。一项观察结果是,执行此操作时,应用程序的速度明显加快。我对此观察到的一个可能的解释是代理应用程序向浏览器返回状态代码为 200 的 302 请求。那么现在的问题是为什么 302 调用在 Firefox 和 IE 浏览器上很慢?

最佳答案

终于能够从我的应用程序本身解决这个问题。在代码中的一处位置,正在对响应的输出流调用刷新操作。

super.getOutputStream().flush();

只有在请求不是 302 类型的情况下才会执行此操作,这是有意义的,因为 302 响应中没有任何数据。 Chrome 足够聪明,可以看到这一点,并且不会等待任何数据。但是,firefox 和 IE 会继续等待数据,因此该特定调用的连接不会关闭。这会导致延迟,可以在我在问题中附加的图像中看到延迟(浏览器尝试下载永远不会到达的内容)。

我现在已经更改了代码以对 302 调用执行刷新操作。这已经解决了整个问题。

关于java - Firefox 和 IE 对于 302 状态重定向请求速度较慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40678688/

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