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