google-chromehttp2spdyquic

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

Solution

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