Chrome开发者工具连接ID

时间:2015-12-09 17:17:52

标签: google-chrome-devtools

我使用的是Chrome开发者工具(第49版)。在“网络”选项卡下,有一系列列,例如“名称”,“状态”,“类型”等。有谁知道连接ID列的用途每一行都有一个ID,例如13461,14410,8738,8741,13516 ......这些数字是什么意思?

2 个答案:

答案 0 :(得分:7)

HTTP在后台使用称为TCP的网络协议。浏览器维护TCP套接字和连接池。 DevTools中的连接ID 编号指的是特定的TCP连接。它们为什么有用?嗯,来自Umar Hamsa(谷歌开发者专家)的this post

  

Canary中新的连接ID网络面板列可以帮助您指示TCP连接重用,而不是握手并建立新连接。

让我解释一下这意味着什么:

  • 第一次时间您看到一个特定的连接ID,新的连接(可能)需要通过所谓的 TCP建立握手。这对于性能原因很重要,因为TCP握手会导致相对较大的网络开销。我们正在创建新连接,因此需要更长时间才能获得HTTP响应。

  • 但是,对于 后续,您会看到相同的ID,不会产生此开销。也就是说,浏览器不需要执行TCP握手,并且重用相同的连接。这里我们说TCP连接仍然是"打开"。已建立的连接可以更快地获取HTTP响应数据。

因此,这些数字基本上有助于检查/调试是否存在由TCP握手引起的网络开销。

例如:

Name      Connection ID    (TCP Handshake / Reused Connection)
foo.jpg   72218            Handshake
bar.jpg   72218            Reused
cat.jpg   79146            Handshake
baz.jpg   72218            Reused
dog.jpg   79146            Reused

此处,下载foo.jpgcat.jpg涉及开销,因为分别设置连接7221879146需要TCP握手。但是bar.jpgbaz.jpgdog.jpg没有开销,因为他们正在重复使用各自的TCP连接。

注1:重用TCP连接以避免重复TCP握手的这种想法是HTTP 1.1的一个名为Persistent Connections的功能。默认情况下,所有HTTP 1.1连接都使用持久连接,所有现代浏览器都使用HTTP 1.1。有关详细信息,建议您阅读High Performance Browser Networking本书的第11章和第14章。

注意2:如果HTTP请求需要TCP握手,您将在DevTools瀑布中看到橙色条,如果将鼠标悬停在它上面,您将看到&#34 ;初始连接" - 这告诉你握手花了多长时间。 TCP连接可以在选项卡和窗口之间重复使用,因此请注意 - 您可能第一次看到ID,但可能没有TCP握手!这可能是因为您之前访问过该页面并打开了与该主机的连接。这也可能是因为Chrome从主机预取了资源 - 例如,当您在栏中输入地址时,Chrome会预取一个图标。

注意3:在较新版本的Chrome中,您可以在chrome:// net-internals /#http2中查看HTTP连接列表,其中显示了连接ID和主机。

答案 1 :(得分:2)

connectionId是用于该查询/ TCP连接等的连接的唯一标识符。它是一种评估哪些资源正在使用哪种连接的方法。

如果按顺序对此列进行排序,您将看到许多重复ID,表明在同一TCP连接上获得了许多资源。