Я проверил похожие вопросы и нашел два варианта, с которыми я могу продолжить, однако оба имеют проблемные проблемы.
if ( performance && performance.timing.nextHopProtocol ) {
console.log('Protocol:' + performance.timing.nextHopProtocol);
} else if ( window.chrome && window.chrome.loadTimes ) {
console.log('Protocol:' + window.chrome.loadTimes().connectionInfo);
} else {
console.log("Browser does not expose connection protocol");
}
Однако приведенный выше код возвращает протокол, хотя при использовании моего Chrome он поддерживает http2 и способен, но по-прежнему возвращает http1.
Другим решением является составление списка поддерживаемых браузеров и перекрестная проверка http_useragent, однако список следует время от времени проверять, а также перепроверять версии ОС. так как, например, IE 11 в Windows 10 работает, но, скажем, для более низкой версии это не будет.
performance.getEntriesByType('resource')
не поможет. - person Knu   schedule 27.05.2018