Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why did Google.com switch to SPDY (HTTP/2+QUIC/35) instead of HTTP/2

Several days ago I saw Google.com was using HTTP/2, but yesterday I became aware that Google.com had switched to SPDY (HTTP/2+QUIC/35).

enter image description here

Two questions:

  1. As you know, HTTP/2 extends SPDY, why did Google.com rollback to SPDY?
  2. What's the difference between SPDY and SPDY (HTTP/2+QUIC/35)?
like image 838
Jacks Gong Avatar asked Mar 07 '17 03:03

Jacks Gong


People also ask

What was SPDY and how did it affect HTTP 2?

SPDY uses the general purpose DEFLATE algorithm whereas HTTP/2 uses HPACK that was specifically designed to compress headers. It uses predefined tokens, dynamic tables and Huffman compression. HTTP/2 has significantly smaller header sizes due to its use of the HPACK algorithm.

How is QUIC different from SPDY?

QUIC (Quick UDP Internet Connection) and SPDY are protocols created by Google in order to try and make various types of connections over the internet faster. QUIC targets UDP connections that aren't offered the same inherent reliability as TCP connections, and SPDY targets latency involved in HTTP communications.

Does http2 use QUIC?

The major difference is that HTTP/3 is based on QUIC as a transport layer to handle streams while HTTP/2 uses TCP to handles streams in the HTTP layer.

Does Chrome use QUIC?

QUIC is a new protocol designed by Google to make the web faster and more efficient. It's on by default in Google Chrome and used by a growing list of websites.


1 Answers

http/2+quic/35 is not Speedy, it is a new communication protocol, based on UDP instead of TCP, named QUIC.

Let's quote https://www.chromium.org/quic :

Key advantages of QUIC over TCP+TLS+HTTP2 include:

  • Connection establishment latency
  • Improved congestion control
  • Multiplexing without head-of-line blocking
  • Forward error correction
  • Connection migration

A good presentation is available in this blog article.

In fact, the whole QUIC project was used to by-pass the TCP standards, in a more reactive way. Google did experiment on QUIC since years, transparently in Chrome browsers of billions of users, and switched now to it by default, if it works (with a fallback to "classical" HTTP/2 over TCP).

From the developer point of view, QUIC has a HTTP/2 interface, with all its features.

QUIC vs HTTP/2

To my knownledge, only the LiteSpeed supports QUIC outside of Google - not the OpenLiteSpeed version yet (sadly) - and the go-based Caddy server.

like image 89
Arnaud Bouchez Avatar answered Oct 18 '22 08:10

Arnaud Bouchez