Chrome的DevTools网络面板非常适合查看加载不同请求的时间。它会描述每个请求和reports how long different parts of the request took, including the time spent making the initial TCP connection and SSL handshake:
当我第一次看到初始连接和SSL握手所花费的时间时加载页面。 如果我立即重新加载页面,我不再看到在初始连接和SSL握手上花费的时间。我认为这是因为Chrome已经保持打开以前请求的TCP连接并重新使用它。这对于正常浏览非常有用,但它使初始页面加载的分析变得困难。
有什么方法可以强制Chrome不重复使用任何现有的TCP / TLS连接,并且总是制作新的连接?
如果不在Chrome中,我是否可以在操作系统级别执行此操作?我在Windows上,如果它有所作为。
答案 0 :(得分:14)
Chrome检查其套接字池以查看主机名是否有可用的套接字,它可以重用 - 保持活动套接字在池中保留一段时间,以避免TCP握手并且速度慢 - 开始处罚。如果没有可用的套接字,则它可以启动TCP握手,并将其放入池中。然后,当用户启动导航时,可以立即调度HTTP请求。 - High Performance Networking in Google Chrome
导航到chrome:// net-internals #sockets以查看活动套接字。如果您点击'关闭空闲套接字',则下次刷新页面时,它将建立新连接。
我不确定是否有办法告诉Chrome停用Connection: keep-alive
标题,但我认为您可以使用Modify Headers for Google Chrome之类的Chrome扩展来拦截客户端发送的标头并在请求到达服务器之前将其删除。