Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is HTTP/2 without SPDY possible yet?

Most browsers do support HTTP/2 and so do some servers.

Akamai for example offers a HTTP/2 testpage (https://http2.akamai.com/). When I visit this page in chrome and go to chrome://net-internals/#spdy the page is listed with the protocol h2-14 (HTTP/2 draft 14). But when I open the console on the akamai page and type window.chrome.loadTimes() the property wasFetchedViaSpdy is true. Why is this? The Akamai-page is HTTP/2, not SPDY, roght?

Another thing I dont get is this tutorial (https://www.gatherdigital.co.uk/blog/how-to-setup-http-2-support/527). It says:

"How to setup HTTP/2 support (nginx, apache, plesk) [...] Well, not quite HTTP/2, it's still mod_spdy."

What is this HTTP/2 "over" SPDY thing? The reason for my question is i want to do some meassurement on which pages make use of which protocol.

like image 202
Sven Keinath Avatar asked Mar 16 '23 14:03

Sven Keinath


1 Answers

Long story short: SPDY is dead, long live HTTP/2!

Asking whether "HTTP/2 is possible without SPDY" implies that HTTP/2 somehow depends on SPDY. That isn't the case. Instead, HTTP/2 and SPDY are so similar that many implementations are hacking their existing SPDY support to be HTTP/2. There's also a lot of people who think HTTP/2 is SPDY, or get sloppy with their terminology. They're different protocols.

SPDY is a non-standard (but open) extension to HTTP/1.1 by Google designed to speed up web site loading and interaction and eliminate a lot of the hacks people do to reduce the number of connections. HTTP/2 started with SPDY and ran from there to create a new, standard protocol incompatible with both HTTP/1.1 and SPDY.

Many people treat SPDY and HTTP/2 as the same things, they're not. There have been significant changes in the standardization process between HTTP/2 and SPDY so that SPDY and HTTP/2 are not compatible. But they're really close, so many HTTP/2 implementations are just hacked SPDY implementations.

Many web servers and clients implemented SPDY even though it wasn't a standard. The performance gains were just too good to pass up.

Now that HTTP/2 is official, SPDY has been officially deprecated in favor of HTTP/2 and will be withdrawn as a standard in 2016. Web clients and servers are working to switch over. While the clients have adopted HTTP/2 very fast, server support seems to be lagging.

As of this writing, HTTP/2 has only been a standard for six weeks. Give it some more time. References to SPDY will be hanging around in HTTP/2 implementations, but that will be rapidly cleaned up. Firefox 36.0.4's Network console properly reports the protocol version as HTTP/2.

As for finding out whether HTTP/2 is used, look at the HTTP response object, it should have the protocol used.

like image 189
Schwern Avatar answered Apr 28 '23 22:04

Schwern