【问题标题】:When a browser says that an http request is aborted what has actually happened?当浏览器说一个 http 请求被中止时,到底发生了什么?
【发布时间】:2014-04-01 07:41:05
【问题描述】:

在某些情况下,浏览器似乎中止了 http 请求。在状态栏中使用 Firebug 或通常可能会显示的内容,例如 200 OK,它会显示“已中止”(红色)。在 Internet Explorer 中发生这种情况时,用户可能会看到 IE 生成的消息“Internet Explorer 无法显示此页面”。

这里发生了什么?

我认为这不是超时问题,因为这会在很短的时间内发生,并且我相信当响应时间更长时我可以获得成功的响应(例如 200)。

这与服务器无关;请求被浏览器中止。这并不是说我们收到了服务器错误。 (例如 500)。

还有;相同的请求(使用相同的方法对相同的 URL)通常有效。因此,SSL 配置错误与此无关。

我假设这与互联网连接有关。但我对网络/互联网的了解还不够,无法知道它的真正含义。

所以。具体问题是;哪些情况会导致此错误?

【问题讨论】:

    标签: http browser


    【解决方案1】:

    当浏览器使用过时的 SSL/TLS 版本并请求需要安全连接的资源时,可能会发生这种情况

    【讨论】:

      【解决方案2】:

      服务器、您的浏览器或介于两者之间的任何机器(或操作系统)都可能因任何原因(超时、挖掘机器、入侵检测)断开底层 TCP 连接。

      在这些情况下,您不会收到服务器错误,因为服务器要么没有收到您的请求,它收到了但处理时间太长,要么服务器发送了它的(正确)响应但它没有完全传输。

      【讨论】:

      • 没错。在浏览器收到服务器的响应之前,连接已关闭。当您离开仍然加载图像的页面时,这很常见。我也有这种情况发生在Prototype sends 的“preflighting requests”上。 IE 中的更多案例列出here
      【解决方案3】:

      在获取过程中触发帖子(例如在下载图像期间)或某些图像标签没有 src 时,可能会发生这种情况

      【讨论】:

        猜你喜欢
        • 2017-03-24
        • 2022-01-21
        • 1970-01-01
        • 1970-01-01
        • 2023-03-25
        • 2023-03-25
        • 1970-01-01
        • 2012-06-24
        • 2011-09-12
        相关资源
        最近更新 更多