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

时间:2015-05-27 09:38:42

标签: javascript google-chrome web microsoft-edge http2

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

像这样https://www.ist-http2-aktiviert.de/

3 个答案:

答案 0 :(得分:4)

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

截至2016-06-06,nextHopProtocol仅适用于Firefox的ResourceTiming实施。它不适用于NavigationTiming,也不适用于Chrome,FF和Safari的NavigationTiming和ResourceTiming。

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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

话虽这么说,Navigation Timing Level 2 API当前处于工作草案状态,所以对nextHopProtocol(与Level 2 API一起引入)的支持将受到限制(不确定确切的浏览器是否支持它,因为caniuse当前不包括该功能)导航计时2级API)。