如何通过javascript检测浏览器支持http2与否?

时间:2017-08-03 05:26:15

标签: javascript browser http2

我想确定是否使用环境支持http2来使用combo。但是,我找不到在浏览器中检查浏览器是否支持http2的方法。

提前谢谢。

4 个答案:

答案 0 :(得分:3)

Navigation Timing 2 API提供了以下信息:

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

以上内容应在使用HTTP 2获取的页面上返回“ h2”

有关nextHopProtocol的有限兼容性的说明:

Navigation Timing Level 2 API当前处于草稿状态,因此对nextHopProtocol(将与Level 2 API一起引入)的支持将受到限制(不确定确切的浏览器支持它,因为caniuse当前不包括Navigation Timing Level 2 API)。

答案 1 :(得分:0)

根据HTTP/2 Frequently Asked Questions HTTP/2caniuse支持IE11,Edge14 +,Firefox 52 +,Chrome 49 +,Safari 10.1 +,Opera 45 +,iOS Safari 9.3 +,Android浏览器56和Chrome for Android 59。

  

Can I use HTTP/2 now?

     

在浏览器中,最新版本的Edge支持HTTP / 2,   Safari,Firefox和Chrome。其他基于Blink的浏览器也会   支持HTTP / 2(例如,Opera和Yandex浏览器)。查看caniuse   了解更多详情。

答案 2 :(得分:0)

最简单的解决方案是找到用户浏览器版本和用户代理。 示例javascript代码以查找用户代理:

function myFunction() {
var x = "User-agent header sent: " + navigator.userAgent;
document.getElementById("demo").innerHTML = x;

}

我们可以使用浏览器名称和版本制作地图,在拆分用户代理后,我们可以知道浏览器版本是否支持。

使用像Java这样的服务器端语言,很容易获得可以告诉HTTP版本的Request代理,但是使用没有Ajax的Javascript,需要编写更多的代码。

要查找多个浏览器以及HTTP2遵循哪个版本的浏览器,请参阅:

https://www.smashingmagazine.com/wp-content/uploads/2016/01/01-caniuse-spdy-opt.png

答案 3 :(得分:-2)

我找不到另一种方式 我认为只有通过查看以下项目才能检查浏览器和操作系统 https://en.wikipedia.org/wiki/HTTP/2
http://caniuse.com/#search=http2