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

Raz*_*zor 12 javascript browser

是否有可能获得浏览器用于获取活动页面的协议?
就像是:

performance.navigation.protocol // e.g. "HTTP/2" or "SPDY/3.1" or "HTTP/1.1"
Run Code Online (Sandbox Code Playgroud)

我知道可以检测协议服务器端然后传递信息,但我正在寻找一个JS解决方案.

(类似的问题包含断开的链接,没有答案)

Raz*_*zor 9

它被标准化performance.timing.nextHopProtocol,但chrome 已经在以下的非标准实现window.chrome.loadTimes().connectionInfo:

if ( window.performance && performance.timing.nextHopProtocol ) {
    console.log('Protocol:' + performance.timing.nextHopProtocol);
} else if (window.performance && window.performance.getEntries) {
    console.log(performance.getEntries()[0].nextHopProtocol);
} else if ( window.chrome && window.chrome.loadTimes ) {
    console.log('Protocol:' + window.chrome.loadTimes().connectionInfo);
} else {
    console.log("Browser does not expose connection protocol");
}
Run Code Online (Sandbox Code Playgroud)