2

我可以通过 Selenium 驱动Starting ChromeDriver 2.23.409699并且browsermob-proxy-2.1.2可以访问 HAR 数据,但是时间似乎很奇怪,特别是对于 SSL 站点。

例如,第一次提取是对网站本身进行的,根据时间需要:

@ 512ms 从开始第一个请求出去到页面:

  • 连接:1,306 毫秒
  • SSL:1,293 毫秒
  • 发送:1ms
  • 等待:16ms
  • 接收:6ms

网址1

然后@ 576ms(页面后64ms)对引用样式表的第二个请求发出:

网址2

但是据我所知,该请求#2 中的时间重叠在页面仍在等待连接(SSL 和连接)时消失。下图显示它们重叠。

图形

任何想法我做错了什么或误解?

4

1 回答 1

0

总结您的数据:

  • 你开始捕捉
  • 512ms 有一个请求到主 HTML 页面
  • 在 576 毫秒时对样式表有另一个请求。这发生在第一个请求完成之前

SSL 握手不太可能需要整整 1293 毫秒。http://www.semicomplete.com/blog/geekery/ssl-latency.html列出了从 68 毫秒到 408 毫秒的完整交易时间,包括握手。检索https://www.mozilla.org/en-US/about/也是如此:

定时 web 请求 Mozilla/about

作为猜测,谷歌再次用 Chrome 做了一些聪明的事情。

  1. 它开始 TCP+SSL 握手,
  2. 然后开始下载主 HTML。
  3. 在 HTML 到达的同时,它被解析,并且
  4. 一旦遇到样式表引用,它也会被下载(在 HTML 传输结束之前)。

这些需要在单独的线程中进行才能使这种优化起作用,但它可以很好地减少网络下载时间(这似乎是 Chrome 的主要目标之一)。

于 2016-10-03T14:03:26.313 回答