请求在 chrome 中偶尔会停滞很长时间

2024-02-19

Ajax 请求有时会在 Chrome 中长时间停滞。

我终于成功地复制了它并保存了所有必要的相关数据,如果有人可以帮助我的话,可以在这里发布。

The timeline from Chrome Dev Tool shows the request stalled for 42.62s as the following screen capture shows: enter image description here

并在chrome://net-internals/#events(有关事件日志,请转到末尾)页面我发现最多的时间是由两个事件花费的:

  • +HTTP_TRANSACTION_READ_HEADERS [dt=21301]
  • +HTTP_TRANSACTION_READ_HEADERS [dt=21304]

两者都得到ERR_CONNECTION_RESET.

我认为该错误是请求停滞这么长时间的原因。

任何人都可以解释这些错误吗?

以下是请求的事件日志,我还将完整事件导出为 json,您可以从中获取here https://gist.githubusercontent.com/wayou/39772215d075c80d643a/raw/9c91463f22016d20c90de19e77ae3e4f302e0769/gistfile1.txt然后在Chrome中恢复chrome://net-internals/#events页。请注意,请求 url 是内部的,因此可能无法从公共网络访问:

193486: URL_REQUEST
http://qa.tieba.baidu.com/release/getReleaseHistory?projectId=fum1.0.593
Start Time: 2015-01-02 17:51:05.323

t=    1 [st=    0] +REQUEST_ALIVE  [dt=42741]
t=    1 [st=    0]    URL_REQUEST_DELEGATE  [dt=0]
t=    1 [st=    0]   +URL_REQUEST_START_JOB  [dt=42740]
                      --> load_flags = 339804160 (BYPASS_DATA_REDUCTION_PROXY | MAYBE_USER_GESTURE | REPORT_RAW_HEADERS | VERIFY_EV_CERT)
                      --> method = "GET"
                      --> priority = "LOW"
                      --> url = "http://qa.tieba.baidu.com/release/getReleaseHistory?projectId=fum1.0.593"
t=    2 [st=    1]      URL_REQUEST_DELEGATE  [dt=0]
t=    2 [st=    1]      HTTP_CACHE_GET_BACKEND  [dt=0]
t=    2 [st=    1]      HTTP_CACHE_OPEN_ENTRY  [dt=0]
t=    2 [st=    1]      HTTP_CACHE_ADD_TO_ENTRY  [dt=0]
t=    2 [st=    1]      HTTP_CACHE_READ_INFO  [dt=0]
t=    2 [st=    1]      URL_REQUEST_DELEGATE  [dt=0]
t=    2 [st=    1]     +HTTP_STREAM_REQUEST  [dt=2]
t=    4 [st=    3]        HTTP_STREAM_REQUEST_BOUND_TO_JOB
                          --> source_dependency = 193488 (HTTP_STREAM_JOB)
t=    4 [st=    3]     -HTTP_STREAM_REQUEST
t=    4 [st=    3]     +HTTP_TRANSACTION_SEND_REQUEST  [dt=0]
t=    4 [st=    3]        HTTP_TRANSACTION_SEND_REQUEST_HEADERS
                          --> GET /release/getReleaseHistory?projectId=fum1.0.593 HTTP/1.1
                              Host: qa.tieba.baidu.com
                              Connection: keep-alive
                              Accept: application/json, text/plain, */*
                              User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36
                              Referer: http://qa.tieba.baidu.com/project/
                              Accept-Encoding: gzip, deflate, sdch
                              Accept-Language: en-US,en;q=0.8
                              Cookie: [268 bytes were stripped]
t=    4 [st=    3]     -HTTP_TRANSACTION_SEND_REQUEST
t=    4 [st=    3]     +HTTP_TRANSACTION_READ_HEADERS  [dt=21301]
t=    4 [st=    3]        HTTP_STREAM_PARSER_READ_HEADERS  [dt=21301]
                          --> net_error = -101 (ERR_CONNECTION_RESET)
t=21305 [st=21304]        HTTP_TRANSACTION_RESTART_AFTER_ERROR
                          --> net_error = -101 (ERR_CONNECTION_RESET)
t=21305 [st=21304]     -HTTP_TRANSACTION_READ_HEADERS
t=21305 [st=21304]     +HTTP_STREAM_REQUEST  [dt=3]
t=21307 [st=21306]        HTTP_STREAM_REQUEST_BOUND_TO_JOB
                          --> source_dependency = 193494 (HTTP_STREAM_JOB)
t=21308 [st=21307]     -HTTP_STREAM_REQUEST
t=21308 [st=21307]     +HTTP_TRANSACTION_SEND_REQUEST  [dt=3]
t=21308 [st=21307]        HTTP_TRANSACTION_SEND_REQUEST_HEADERS
                          --> GET /release/getReleaseHistory?projectId=fum1.0.593 HTTP/1.1
                              Host: qa.tieba.baidu.com
                              Connection: keep-alive
                              Accept: application/json, text/plain, */*
                              User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36
                              Referer: http://qa.tieba.baidu.com/project/
                              Accept-Encoding: gzip, deflate, sdch
                              Accept-Language: en-US,en;q=0.8
                              Cookie: [268 bytes were stripped]
t=21311 [st=21310]     -HTTP_TRANSACTION_SEND_REQUEST
t=21311 [st=21310]     +HTTP_TRANSACTION_READ_HEADERS  [dt=21304]
t=21311 [st=21310]        HTTP_STREAM_PARSER_READ_HEADERS  [dt=21304]
                          --> net_error = -101 (ERR_CONNECTION_RESET)
t=42615 [st=42614]        HTTP_TRANSACTION_RESTART_AFTER_ERROR
                          --> net_error = -101 (ERR_CONNECTION_RESET)
t=42615 [st=42614]     -HTTP_TRANSACTION_READ_HEADERS
t=42615 [st=42614]     +HTTP_STREAM_REQUEST  [dt=12]
t=42627 [st=42626]        HTTP_STREAM_REQUEST_BOUND_TO_JOB
                          --> source_dependency = 193498 (HTTP_STREAM_JOB)
t=42627 [st=42626]     -HTTP_STREAM_REQUEST
t=42627 [st=42626]     +HTTP_TRANSACTION_SEND_REQUEST  [dt=2]
t=42627 [st=42626]        HTTP_TRANSACTION_SEND_REQUEST_HEADERS
                          --> GET /release/getReleaseHistory?projectId=fum1.0.593 HTTP/1.1
                              Host: qa.tieba.baidu.com
                              Connection: keep-alive
                              Accept: application/json, text/plain, */*
                              User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36
                              Referer: http://qa.tieba.baidu.com/project/
                              Accept-Encoding: gzip, deflate, sdch
                              Accept-Language: en-US,en;q=0.8
                              Cookie: [268 bytes were stripped]
t=42629 [st=42628]     -HTTP_TRANSACTION_SEND_REQUEST
t=42629 [st=42628]     +HTTP_TRANSACTION_READ_HEADERS  [dt=112]
t=42629 [st=42628]        HTTP_STREAM_PARSER_READ_HEADERS  [dt=112]
t=42741 [st=42740]        HTTP_TRANSACTION_READ_RESPONSE_HEADERS
                          --> HTTP/1.1 200 OK
                              Date: Fri, 02 Jan 2015 09:51:48 GMT
                              Content-Type: application/json; charset=UTF-8
                              Transfer-Encoding: chunked
                              Connection: keep-alive
                              Cache-Control: no-cache
                              tracecode: 31079600320335034634010217
                              tracecode: 31079600320537995786010217
                              Server: Apache
t=42741 [st=42740]     -HTTP_TRANSACTION_READ_HEADERS
t=42741 [st=42740]      HTTP_CACHE_WRITE_INFO  [dt=0]
t=42741 [st=42740]      HTTP_CACHE_WRITE_DATA  [dt=0]
t=42741 [st=42740]      HTTP_CACHE_WRITE_INFO  [dt=0]
t=42741 [st=42740]      URL_REQUEST_DELEGATE  [dt=0]
t=42741 [st=42740]   -URL_REQUEST_START_JOB
t=42741 [st=42740]    URL_REQUEST_DELEGATE  [dt=0]
t=42741 [st=42740]    HTTP_TRANSACTION_READ_BODY  [dt=0]
t=42741 [st=42740]    HTTP_CACHE_WRITE_DATA  [dt=0]
t=42741 [st=42740]    HTTP_TRANSACTION_READ_BODY  [dt=0]
t=42741 [st=42740]    HTTP_CACHE_WRITE_DATA  [dt=0]
t=42742 [st=42741] -REQUEST_ALIVE

编辑:相关问题 问题 447463:Chrome 网络:过时套接字上的 RST 消息之前的长时间延迟会导致页面加载缓慢。 https://code.google.com/p/chromium/issues/detail?id=447463


我曾经遇到过类似的问题。问题的原因是每个浏览器对服务器的最大 TCP 连接数都有限制。对于 Chrome,限制为 6。当您使用代理服务器时,这个问题更加突出,因为所有请求都经过同一台服务器(代理服务器)。

Chrome 不允许您更改此限制。事实上不应该。如果您想了解更多有关此限制存在的原因以及其他浏览器的限制是什么,您可以阅读本文 http://www.stevesouders.com/blog/2008/03/20/roundup-on-parallel-connections/.

此限制很少成为问题的原因是,对同一主机的多个 HTTP 请求大多是连续发送的,而不是并行发送的,最好是通过同一个 TCP 连接发送。

如果您经常出现此问题,那么原因可能是:

  1. 服务器不支持持久 TCP 连接:如果问题仅在访问特定服务器时出现,原因可能是 Chrome 在并行连接上获取多个资源(如图像、CSS 文件等)。由于在您的情况下,服务器位于您的本地网络上,因此您可能需要要求服务器管理员添加对持久 TCP 连接的支持。

  2. 打开多个持久连接:如果您在代理服务器后面工作,那么同时下载多个文件或打开保持 TCP 连接打开的站点可能是问题的原因。要摆脱它,您所能做的就是不要同时下载许多文件(或如果需要,请在不同的浏览器中下载)。

PS:错误网络错误 = -101 (ERR_CONNECTION_RESET)不是由于无效标头,而是由于超时,等待之前与服务器的某些连接关闭。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

请求在 chrome 中偶尔会停滞很长时间 的相关文章

随机推荐

  • 返回指向字符串的指针的函数不起作用[重复]

    这个问题在这里已经有答案了 我想知道为什么以下不能正常工作 虽然我尝试了其他有效的方法 但为了更清楚起见 我想知道这里发生的问题 char fuc char s char t 10 int r 0 while s r 0 t r s r r
  • 如何在android 10中获取图像的方向信息?

    自 Android 10 起 访问媒体文件发生了一些变化 查看文档后https developer android com training data storage shared media https developer android
  • pod 安装失败并出现错误:在 iOS 中安装 pod 时,`Podfile` 需要库(来自 `../`)`

    我正在制作可可足类 我在用pod lib create MyLibrary创建一个新的cocoapods 完成后 我将两个文件添加到 MyLibrary Pod Classes 中 我提交并添加一个标签 然后推送到原始主机 并且 MyLib
  • 是否有适用于 Python 3.x 的 Google 数据 API (gdata)?

    我想用谷歌数据API http code google com p gdata python client 但我使用的是Python 3 我没有看到他们提到任何有关Python 3的内容 是否可以为Python 3安装gdata 还没有 但
  • 如何在Azure DevOps Pipeline中编写if else条件

    我有一个天蓝色的管道并使用参数运行 其中有多个选项 如下所示 选择测试执行 Product 产品与成本 带附件的产品 如果我选择Product然后我执行product js文件 如果我选择Product with Cost然后执行 prod
  • C++ const char* 和 const char[] 之间的区别

    我读到一个关于以下之间区别的问题 const char and const char 有一段时间 我认为数组只是指针的语法糖 但有些事情困扰着我 我有一段类似于以下内容的代码 namespace SomeNamespace const ch
  • 当用户单击 Qt 应用程序中的任务栏/停靠栏图标时获取事件或通知

    我正在 osx windows linux 上开发应用程序 我想制作像 Skype 这样的功能 当用户单击关闭窗口时 应用程序不会退出而是隐藏 当用户单击扩展坞或任务栏上的应用程序图标时 我的主窗口将再次重新打开 当用户单击应用程序图标时
  • Java BufferedWriter 关闭()

    假设我有以下代码片段 operation1 bw close operation2 当我打电话时BufferedReader close 从我的代码中 我假设我的 JVM 进行了一个系统调用 以确保缓冲区已被刷新并写入磁盘 我想知道是否cl
  • 如果 Python 是解释型的,那么 .pyc 文件是什么?

    Python 是一种解释型语言 但为什么我的源目录包含 pyc文件 Windows 将其识别为 编译的 Python 文件 我已经明白了 Python 是一种解释型语言 这种流行的模因是不正确的 或者更确切地说 是建立在对 自然 语言水平的
  • Prisma - 如何将两个字段指向同一模型?

    我很难概念化如何处理这个问题 我仔细研究了 Prisma 文档和其他 SO 问题 但它们似乎都与这种情况略有不同 我有两个模型 model User id Int id default autoincrement firstName Str
  • 如何对 Jackson JsonSerializer 和 JsonDeserializer 进行单元测试

    我为我的应用程序编写了自定义 JsonSerializer 和 JsonDeserializer 现在我想为它们编写一些单元测试 一个干净的测试用例应该是什么样的 有一些干净的例子吗 干净意味着不依赖其他框架或库 Json序列化器 该示例正
  • AppendTargetFrameworkToOutputPath 在 .targets 文件中失败

    我正在尝试集中许多项目的一些构建配置 而 MSBuild 解决方案是使用 targets files https learn microsoft com en us visualstudio msbuild msbuild dot targ
  • 在 django 中通过拖放对项目进行排序

    在我的 django 项目中 我在模板中显示了书籍列表 Book型号有position我用来对书籍进行排序的字段 我试图通过拖放列表项对该列表进行排序 但我的下一个代码不能很好地工作 我用jQuery 用户界面 它在前端工作 但当用户拖放列
  • 将文本区域保存到文件

    是否可以将文本区域保存到文件中 FileWriter fw new FileWriter file1 getAbsoluteFile true BufferedWriter bw new BufferedWriter fw bw write
  • 来自一组键的 PHP 数组

    发现这篇文章对我有帮助 拆分字符串以形成多维数组键 https stackoverflow com questions 10519108 split a string to form multidimensional array keys
  • 给定一个字符串,找到元音和辅音数量相同的最长子串?

    给定一个字符串 找到元音和辅音数量相同的最长子串 澄清 我不确定我们是否可以生成一个新字符串 或者子字符串必须是原始字符串的一部分 到目前为止我有这个 代码片段 Scanner scanner new Scanner System in S
  • R 的丰富 Ctags

    是否有任何使用记录ctags http ctags sourceforge net 与 R 这有用吗 实施起来会不会很困难 具体来说 我刚刚开始使用 Vim 如果能够在一个文件中编写 R 函数 在另一个文件 例如 Rnw 文件 测试文件或其
  • 为什么 PayPal 的 IPN 模拟器不能使用 https 地址?

    在 PayPal 的 IPN 模拟器中 如果我输入 https URL 则会收到一条错误消息 很抱歉 我们无法发送 IPN 但是 在 http URL 上它工作正常 我该如何解决这个错误 这可能是因为您的 SSL 证书是自签名的或被 Pay
  • Java Calendar.DAY_OF_WEEK 给出了错误的日期

    下面的代码有什么问题 对于一年中的任何日期 它给出的日期都是错误的 import java util Scanner import java util Calendar public class Solution public static
  • 请求在 chrome 中偶尔会停滞很长时间

    Ajax 请求有时会在 Chrome 中长时间停滞 我终于成功地复制了它并保存了所有必要的相关数据 如果有人可以帮助我的话 可以在这里发布 The timeline from Chrome Dev Tool shows the reques