在浏览器中检测HTTP2 / SPDY支持

克里斯

是否可以从浏览器内部检测到浏览器对HTTP2 / SPDY客户端的支持?

我试图向用户展示他们的浏览器是否支持HTTP2 / SPDY或将使用传统的非HTTP2 / SPDY HTTPs协议。

克里斯

谢谢,帕特里克。我听取了您的建议,并利用了nginx的$http2变量,并使用PHP返回了动态JS变量以供浏览器检测。(如果其他读者喜欢,也可以通过传递cookie或添加响应标头进行AJAX检测)。

NGINX配置增加

server {
    ...

    if ($http2) { 
        rewrite ^/detect-http2.js /detect-http2.js.php?http2=$http2 last;
    }
    # fallback to non-HTTP2 rewrite
    rewrite ^/detect-http2.js /detect-http2.js.php last;

    # add response header if needed in the future
    add_header x-http2 $http2;
}

detect-http2.js.php

<?
    header('content-type: application/javascript');
    if (isset($_REQUEST['http2'])) {
        echo "var h2Version='". $_REQUEST['http2'] . "';\n";
    }
?>

detect-http2.html

<html>
    <body>
        <script src="https://DOMAIN_NAME/detect-http2.js"></script>
        <script>
            document.write('HTTP2-Supported Browser: '+ (typeof h2Version !== 'undefined'));
        </script>
    </body>
</html>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

浏览器中的HTTP PATCH支持

来自分类Dev

NET上的HTTP / 2(HTTP2或SPDY)

来自分类Dev

SPDY / HTTP2是否串联响应?

来自分类Dev

如何检测浏览器对:after和:before的支持

来自分类Dev

不支持的浏览器的HTTP状态代码

来自分类Dev

如何检测浏览器是否支持javascript中的乒乓框架?

来自分类Dev

浏览器对@import的支持

来自分类Dev

Jetty HTTP2服务器推送支持

来自分类Dev

检测Polymer的浏览器支持

来自分类Dev

如何检测不支持XHR2上传进度的浏览器

来自分类Dev

浏览器对HTTP摘要身份验证中的nextnonce指令的支持

来自分类Dev

HTTP2 / SPDY推流验证:如何测试?

来自分类Dev

在浏览器中检测URI方案支持

来自分类Dev

当浏览器不支持http2时回退到http1.1

来自分类Dev

从javascript检测连接协议(HTTP / 2,spdy)

来自分类Dev

jQuery检测浏览器是否支持Zoom

来自分类Dev

如何在不支持的浏览器上测试HTTP / 2实现?

来自分类Dev

检测浏览器是否支持window.DeviceOrientationEvent

来自分类Dev

检测浏览器是否支持语音合成标记语言

来自分类Dev

在旧浏览器的页面中检测MP3支持

来自分类Dev

okhttp支持http2中的连接池

来自分类Dev

SPDY / HTTP2是否串联响应?

来自分类Dev

在canvas.toDataURL中检测浏览器对图像类型的支持

来自分类Dev

如何检测浏览器是否支持HTML 5

来自分类Dev

在浏览器中检测HTTP2 / SPDY支持

来自分类Dev

wildfly9中的HTTP2 / SPDY配置

来自分类Dev

浏览器对HTTP摘要身份验证中的nextnonce指令的支持

来自分类Dev

当浏览器不支持http2时回退到http1.1

来自分类Dev

检测浏览器是否不支持具有完整CORS支持的XMLHttpRequest