How to detect if the visitor is using HTTP/2 or SPDY

点点圈 提交于 2020-01-13 03:53:06

问题


Hi guys I am searching for a script which can detect if the visitor's browser has enabled SPDY or HTTP/2.

Something like this https://www.ist-http2-aktiviert.de/


回答1:


Theoretically, once nextHopProtocol lands in ResourceTiming and NavigationTiming, you should be able to detect h2 support for the root page and other resources.

As of 2016-06-06, nextHopProtocol is only available in Firefox's ResourceTiming implementation. It is not available in their NavigationTiming, or in either NavigationTiming nor ResourceTiming for Chrome, FF, and Safari.

So for Firefox visitors today, you could see if nextHopProtocol is h2 for other resources on the same domain as the HTML page, and infer that the HTML page is h2 as well.




回答2:


I didn't find a straightforward test. i think a workaround would be to write your own test :) You can get a list of browsers that support HTTP/2 (can be found on caniuse.com) then loop through the list of supporting browsers, if the current browser serving you is in the list then you are good to go.




回答3:


It is July, 2018 and I see both Firefox and Chrome exposing this through Navigation Timing 2 API:

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

That being said, Navigation Timing Level 2 API is currently in working draft status so support for the nextHopProtocol (which is being introduced with Level 2 API) will be limited (unsure of exact browsers supporting it since caniuse currently doesn't include Navigation Timing Level 2 API).



来源:https://stackoverflow.com/questions/30478628/how-to-detect-if-the-visitor-is-using-http-2-or-spdy

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!