HTTP/3

From MgmtWiki
Revision as of 15:33, 1 October 2019 by Tom (talk | contribs) (Other Material)

Jump to: navigation, search

Full Title

HyperText Transport Protocol version 3 is a rewrite of HTTP that uses the QUIC protocol instead of TCP, and also comes with built-in TLS (encryption) support.

Context

HTTP/3[1], the next major iteration of the HTTP protocol, has support added in Cloudflare, Google Chrome, and Mozilla Firefox. Cloudflare announced that customers will be able to enable an option in their dashboards and turn on HTTP/3 support for their domains. That means that whenever users visit a Cloudflare-hosted website from an HTTP/3-capable client, the connection will automatically upgrade to the new protocol, rather than being handled via older versions. On the browser side, Chrome Canary added support for HTTP/3 earlier this month.

QUIC stands for "Quick UDP Internet Connections" and is, itself, Google's attempt at rewriting the TCP protocol as an improved technology that combines HTTP/2, TCP, UDP, and TLS (for encryption), among many other things.

Robin Marx  @programmingart
Google Chrome Canary just became the first (available) browser to integrate (very) experimental #QUIC and HTTP/3 support! 
Add flags "--enable-quic --quic-version=h3-23" and you should see "http/2+quic/99" show up in the devtools, which is actually http3 in disguise!
In addition, Mozilla too announced it would roll out support for HTTP/3. The browser maker is scheduled to ship HTTP/3 in an upcoming Firefox Nightly version later this fall.

Solution

HTTP/3 is the next major version of HTTP, the protocol through which content moves from servers to clients, where it's displayed inside browsers, mobile apps, or other applications.

If the race between corporate giants Amazon, Microsoft, and Walmart to create fully-automated shopping experiences is any indication, retail could look a lot different in the near future.

But are consumers ready for changes to the brick-and-mortar experience? Find out what consumers are using while shopping, whether it made the shopping experience easier (or more difficult), and what information consumers are willing to give up in exchange for special promotions or discounts.

It's an amalgam of multiple technologies; all meant to make websites load faster and over encrypted connections by default.

To understand how HTTP/3 works you must first understand how the OSI networking model works. By default, HTTP (a layer 7 protocol) uses TCP (a layer 4 protocol) as it's base. TCP is used to negotiate connections between clients and servers, and then move the data between the two parties -- hence its categorization as a transport protocol.

File:Osi-model.jpg

The TCP protocol was designed in the 70s for reliable transport, and nobody expected it to be used for near real-time communications, as it's used today. As streaming content became more prevalent, software engineers began understanding that TCP needed to be tweaked to get speed and reliability. Google's engineers have been pushing better solutions for years. They first created SPDY, a protocol that fixed some of TCP's problems, and was later used for HTTP-over-SPDY, a protocol that eventually became the official HTTP/2, now used on around 40% of all internet sites. But SPDY was just another improvement on TCP and its principles. Google engineers realized they could do much better if they'd combine the reliability of TCP and the speed of UDP, together into a totally new protocol. That's how QUIC came to be, or "Quick UDP Internet Connections." As its name implies, this is a protocol that merges the best features of TCP and UDP, in order to build even a faster layer 4 transport protocol. HTTP/3 is QUIC implemented inside HTTP, replacing TCP and SPDY at the transport level. It was formally approved last October.

According to W3Techs, HTTP/3 is currently used by only 3% of all internet websites.

References

  1. M. Bishop, Hypertext Transfer Protocol Version 3 (HTTP/3) IETF (2019-09-12) https://tools.ietf.org/html/draft-ietf-quic-http-23

Other Material

  • Cloudflare, Google Chrome, and Firefox add HTTP/3 support (2019-09-26)
    Next iteration of the HTTP protocol starts making its way into production systems. Initial support was added in Chrome 29 and Opera 16, and in LiteSpeed servers. Chrome support expanded this month, but the bigger news is Cloudflare making the protocol generally available for its customers. The content delivery network (CDN) is a major player on the web, powering around 10% of all internet sites. Having the company roll out HTTP/3 support all but ensures its broader and quick adoption. "Cloudflare was one of the major drivers of H2 adoption having released its HTTP/2 support for all customers in December 2015. In fact, Cloudflare still powers the majority of the HTTP/2 web," a Cloudflare spokesperson told ZDNet this week. Now, the company believes it's time to move the web towards even a better protocol, one that's both faster, but also comes with built-in support for TLS, the protocol at the heart of HTTPS.
  • Cloudflare HTTP/3: the past, the present, and the future
    Starting (2019-09-26), you can use Chrome Canary to interact with Cloudflare and other servers over HTTP/3. For those of you looking for a command line client, curl also provides support for HTTP/3. Instructions for using Chrome and curl with HTTP/3 follow later in this post.
  • What Is HTTP/3 – Lowdown on the Fast New UDP-Based Protocol (2019-08-23)
    The new version of the HTTP protocol benefits from the bare-metal, low-level UDP protocol, and defines many of the new features which were in previous versions of HTTP at the TCP layer. This provides a way of solving constraints within the existing internet infrastructure. The first results are promising, and when the Internet-Draft by IETF expires, in June 2019, we can expect HTTP/3 to be promoted as a new, third-generation HTTP standard.