使用网络面板进行分析时强制 Chrome 关闭/重新打开所有 TCP/TLS 连接
Posted
技术标签:
【中文标题】使用网络面板进行分析时强制 Chrome 关闭/重新打开所有 TCP/TLS 连接【英文标题】:Force Chrome to close/re-open all TCP/TLS connections when profiling with the Network Panel 【发布时间】:2016-09-07 08:05:49 【问题描述】:Chrome DevTools 的网络面板非常适合查看不同请求的加载时间。它会分析每个请求和reports how long different parts of the request took, including the time spent making the initial TCP connection and SSL handshake:
(来源:google.com)
当我第一次加载页面时,我看到了初始连接和 SSL 握手所用的时间。 如果我立即重新加载页面,我将看不到任何时间花在初始连接和 SSL 握手上。我认为这是因为 Chrome 已打开先前请求的 TCP 连接并正在重新使用它.这对于正常浏览来说非常有用,但它使分析初始页面加载变得困难。
有什么方法可以强制 Chrome 不重复使用任何现有的 TCP/TLS 连接并始终建立新的连接?
如果不在 Chrome 中,我可以在操作系统级别做些什么来实现这一点吗?我在 Windows 上,如果有什么不同的话。
【问题讨论】:
感谢您提出这个问题!尝试调试预连接让我发疯! 【参考方案1】:Chrome 检查其套接字池以查看是否有可用的主机名套接字,它可能能够重用 - keep-alive 套接字会在池中保留一段时间,以避免 TCP 握手和慢-开始处罚。如果没有可用的套接字,则它可以启动 TCP 握手,并将其放入池中。然后,当用户发起导航时,可以立即分派 HTTP 请求。 -- High Performance Networking in Google Chrome
导航到 chrome://net-internals#sockets 以查看活动的套接字。如果您单击“关闭空闲套接字”,则下次刷新页面时,它将建立新的连接。
我不确定是否有办法告诉 Chrome 禁用 Connection: keep-alive
标头,但我认为您可以使用像 Modify Headers for Google Chrome 这样的 Chrome 扩展来拦截从客户端发送的标头并在请求之前将其删除到达服务器。
【讨论】:
以上是关于使用网络面板进行分析时强制 Chrome 关闭/重新打开所有 TCP/TLS 连接的主要内容,如果未能解决你的问题,请参考以下文章
ubuntu 12.04 安装软件时强制关闭,然后网络连接不见了!!!!打开网络管理后,全是灰色的,不能设置。。