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

4
我正在寻找一个能够检测访问者浏览器是否启用SPDY或HTTP/2的脚本。类似于this这样的东西。
3个回答

4
理论上,一旦nextHopProtocol出现在ResourceTimingNavigationTiming中,你就可以检测根页面和其他资源对h2的支持。
截至2016年06月06日,nextHopProtocol仅在Firefox的ResourceTiming实现中提供。它在他们的NavigationTiming中不可用,在Chrome、FF和Safari的NavigationTiming和ResourceTiming中也都不可用。
因此,对于今天的Firefox访问者,您可以查看同一域的其他资源是否支持nextHopProtocolh2,并推断HTML页面也是h2

2018年起,Chrome也有此功能。 - Daniel W.
谷歌浏览器从2018年7月开始支持:performance.getEntriesByType('navigation')[0].nextHopProtocol。 - Punit S

0

我没有找到一个直接的测试方法。我认为一个解决方法是编写你自己的测试 :) 你可以在caniuse.com上获取支持HTTP/2的浏览器列表,然后遍历支持浏览器的列表,如果当前为您服务的浏览器在列表中,则可以使用。


0

现在是2018年7月,我发现Firefox和Chrome都通过Navigation Timing 2 API暴露了这个功能:

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

话虽如此,导航计时 Level 2 API 目前处于工作草案状态,因此对于 nextHopProtocol(该协议是在 Level 2 API 中引入的)的支持将受到限制(目前 caniuse 并不包括 Navigation Timing Level 2 API,因此无法确定确切的支持浏览器)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接