我使用的是Chrome开发人员工具(版本49)。在网络选项卡下,有一系列列,如名称、状态、Type..etc。有人知道连接ID列的用途吗?每行都有一个ID,如13461、14410、8738、8741、13516……另外,这些数字意味着什么?
发布于 2017-04-20 20:51:35
HTTP在幕后使用一种称为TCP的网络协议。浏览器维护TCP套接字和连接池。DevTools中的连接ID号表示特定的TCP连接。为什么它们是有用的?好吧,来自谷歌开发专家奥马尔·哈姆萨的this post:
中新的连接ID网络面板列可以帮助您表明连接已重用,而不是握手并建立新的连接。
让我解释一下这是什么意思:
当你看到一个特定的连接ID时,可能需要通过所谓的
因此,这些数字基本上有助于检查/调试是否存在由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.jpg和cat.jpg会产生开销,因为分别建立连接72218和79146需要TCP握手。但是,bar.jpg、baz.jpg和dog.jpg没有开销,因为它们重用了各自的TCP连接。
注意1:这种重用TCP连接以避免重复TCP握手的想法是HTTP1.1的一个特性,称为。默认情况下,所有HTTP 1.1连接都使用持久连接,所有现代浏览器都使用HTTP 1.1。有关更多信息,我建议阅读一书的第11章和第14章。
注2:如果HTTP请求需要TCP握手,您将在DevTools瀑布中看到一个橙色条,如果您将鼠标悬停在它上面,您将看到“初始连接”-这将告诉您握手花费了多长时间(以毫秒为单位)。TCP连接可能会在多个选项卡和窗口中重用,所以要小心--您可能第一次看到一个ID,但它可能没有TCP握手!这可能是因为您以前访问过该页面,并打开了与该主机的连接。这也可能是因为Chrome从主机预取了一个资源--例如,当您在栏中键入地址时,Chrome预取了一个图标。
注3:在更新版本的Chrome中,您可以在chrome://net-internals/#http2查看HTTP连接列表,其中显示了连接id和主机。
发布于 2015-12-10 01:26:07
connectionId是用于查询/TCP连接等的连接的唯一标识符。它是评估哪些资源正在使用哪个连接的一种方式。
如果您按顺序对此列进行排序,您将看到许多重复的ID,这表明在同一个TCP连接上获得了许多资源。
https://stackoverflow.com/questions/34184994
复制相似问题