How to detect if the visitor is using HTTP/2 or SPDY?
Asked Answered
C

3

4

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

Something like this.

Courser answered 27/5, 2015 at 9:38 Comment(0)
K
4

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.

Kappenne answered 6/6, 2016 at 14:59 Comment(2)
Chrome does have this too as of 2018.Parnas
Chrome has it as of Jul 2018: performance.getEntriesByType('navigation')[0].nextHopProtocolQuinquefid
B
0

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.

Bascom answered 23/3, 2016 at 6:34 Comment(0)
Q
0

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).

Quinquefid answered 3/7, 2018 at 8:44 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.