Google chrome devtools HAR文件-访问“;“尺寸”;Chrome开发工具网络选项卡中的列条目?

Google chrome devtools HAR文件-访问“;“尺寸”;Chrome开发工具网络选项卡中的列条目?,google-chrome-devtools,service-worker,har,Google Chrome Devtools,Service Worker,Har,我正在测量站点服务人员处理/返回的GET请求的百分比。在Chrome开发工具中有一个“大小”列,显示缓存匹配的文件的“(来自ServiceWorker)” 当我右键单击任意一行并选择“使用内容另存为HAR”,然后在文本编辑器中打开下载的文件时,搜索“service worker”包括一些结果(其中响应中有“statusText”:“service worker Fallback Required”),但它们都与某些请求由服务人员处理这一事实无关 我要查找的信息是否可以在下载的HAR文件中的任何

我正在测量站点服务人员处理/返回的GET请求的百分比。在Chrome开发工具中有一个“大小”列,显示缓存匹配的文件的“(来自ServiceWorker)”

当我右键单击任意一行并选择“使用内容另存为HAR”,然后在文本编辑器中打开下载的文件时,搜索“service worker”包括一些结果(其中响应中有“statusText”:“service worker Fallback Required”),但它们都与某些请求由服务人员处理这一事实无关


我要查找的信息是否可以在下载的HAR文件中的任何位置访问?或者,是否可以通过其他方式(如通过Selenium Webdriver/ChromeDriver捕获网络流量)来发现这一点?

看起来
内容
对象定义了请求的大小:

但是我在airhorner.com的示例HAR文件中没有看到任何东西可以帮助您确定请求来自服务人员。似乎是HAR规范中的一个缺点


看起来木偶演员提供了这些信息。请参阅。

我试图在Chrome 70中对此进行一些研究。这里是一个总结

我正在跟踪URL的所有请求,这是我网站的关键脚本

TL;DR

正如Kayce所建议的,在Chrome HAR文件中,没有明确的方法确定条目是否由服务人员处理(据我所知)。我还无法找到一个现有HAR输入字段的组合,该组合可以肯定地识别由服务人员处理的输入(但可能存在这样的组合)

在任何情况下,浏览器都可以记录HAR条目之间的任何显式关系,这样HAR Viewer之类的工具就可以识别出两个条目是针对同一个逻辑请求的,因此不会在瀑布中显示两个请求

安装程序 使用清除缓存扩展清除缓存、cookies等

在HAR中找到的第一个和第二个条目 第一个条目(下面)看起来像是页面发出的请求,由服务人员拦截/处理。没有
服务器IP地址
也没有
连接
,因此我们可能会假设这不是一个“真正的”网络请求

第二个条目也是初始页面加载的结果-没有其他刷新/重新加载-在初始页面加载时,相同URL的HAR中有两个条目(如果它通过服务工作者到达网络)

第二个条目(下面)看起来像是服务人员向网络发出的请求。我们看到
serverIPAddress
response.connection
字段已填充

这里一个有趣的观察结果是,条目#2的
startedDateTime
time
属于“父”请求/条目的
startedDateTime
time

我的意思是,条目2的开始和结束时间完全在条目1的开始和结束时间内。这是有道理的,因为条目#2是条目#1的一种“子请求”

如果HAR规范能够明确记录这种关系,那就太好了。即,来自页面的请求-A导致服务人员发送请求-B。然后,像harviewer这样的工具将不会为实际上是单个请求的内容显示两个条目(这是否涵盖了页面进行的单个获取导致多个服务工作者获取的情况?)

另一个观察结果是,条目#1将
请求.httpVersion
响应.httpVersion
记录为
http/1.1
,而“真实”请求使用
http/2.0

第三个条目(在初始页面加载后按地址栏中的enter键) 在地址栏中按enter键后,此条目将显示在HAR中。
\u fromCache
字段是
memory
,正如预期的那样,因为在这种情况下,应该从常规浏览器缓存中为资源提供服务(资源使用
缓存控制=public,最大年龄=30672000

问题:

  • 此条目是否由服务人员的获取事件“处理”
  • 可能当资源在内存缓存中时,服务工作者
    fetch
    事件没有被触发
  • 或者服务人员在这里是否有效地“透明”
没有预期的
serverIPAddress
connection
字段,因为没有“真正的”网络请求

存在一个
pageref
字段,与条目2不同(条目2是服务人员发起的网络请求)

第四条 该条目的准备工作是:

  • 将资源添加到服务工作者缓存()
  • 使用“清除缓存扩展”清除所有缓存(服务工作者缓存除外)
  • 重新加载页面
此项已将
fromCache
设置为
disk
。我假设这是因为服务工作者缓存能够满足请求

没有设置
serverIPAddress
connection
字段,但设置了
pageref

第五条 该条目的准备工作是:

  • 使用devtools进入“脱机”模式
此条目与条目#4基本相同