Javascript 如何检测访问者是否使用HTTP/2或SPDY?

Javascript 如何检测访问者是否使用HTTP/2或SPDY?,javascript,google-chrome,web,microsoft-edge,http2,Javascript,Google Chrome,Web,Microsoft Edge,Http2,我正在搜索一个脚本,它可以检测访问者的浏览器是否启用了SPDY或HTTP/2 类似于。我没有找到一个简单的测试。我认为一种解决方法是编写自己的测试:) 你可以得到一个支持HTTP/2的浏览器列表(可以在caniuse.com上找到),然后循环浏览支持浏览器的列表,如果当前为你服务的浏览器在列表中,那么你就可以开始了 理论上,一旦nextHopProtocol进入和,您应该能够检测到对根页面和其他资源的h2支持 截至2016年6月6日,nextHopProtocol仅在Firefox的Resour

我正在搜索一个脚本,它可以检测访问者的浏览器是否启用了SPDY或HTTP/2


类似于。

我没有找到一个简单的测试。我认为一种解决方法是编写自己的测试:)
你可以得到一个支持HTTP/2的浏览器列表(可以在caniuse.com上找到),然后循环浏览支持浏览器的列表,如果当前为你服务的浏览器在列表中,那么你就可以开始了

理论上,一旦
nextHopProtocol
进入和,您应该能够检测到对根页面和其他资源的
h2
支持

截至2016年6月6日,
nextHopProtocol
仅在Firefox的ResourceTiming实现中可用。它在他们的NavigationTiming中不可用,也不适用于Chrome、FF和Safari的NavigationTiming或ResourceTiming


因此,对于今天的Firefox访问者,您可以看到与HTML页面位于同一域的其他资源的
nextHopProtocol
是否为
h2
,并推断HTML页面也是
h2

现在是2018年7月,我看到Firefox和Chrome都通过导航计时2 API公开了这一点:

performance.getEntriesByType('navigation')[0].nextHopProtocol

这就是说,导航计时2级API目前处于工作草案状态,因此对下一个PProtocol的支持将受到限制(由于caniuse目前不包括导航计时2级API,因此不确定支持它的确切浏览器).

Chrome从2018年起也有此功能。Chrome从2018年7月起有此功能:performance.getEntriesByType('navigation')[0]。nextHopProtocol