Upgrade to Pro — share decks privately, control downloads, hide ads and more …

HTTP/2

 HTTP/2

Some notes after a day of playing with HTTP/2

Arnout Engelen

August 21, 2015
Tweet

More Decks by Arnout Engelen

Other Decks in Technology

Transcript

  1. HTTP/2 in the wild • Used by Twitter and Google

    (heavily) • Browsers support it ◦ Chrome (also on mobile) ◦ Firefox ◦ IE11 on Windows 10 ◦ MS Edge ◦ Safari (not on mobile) ◦ Opera
  2. HTTP/2 • RFC 7540 standard since May 2015 • Multiplex

    all requests over 1 TCP socket ◦ Better parallel requests • Server Push ◦ Push resources client might need later
  3. HTTP/2 in Go • https://http2.golang.org/ • Nice demo of parallel

    requests ◦ http://http2.golang.org/gophertiles?latency=200
  4. Our goals for today • Nice demo of Server Push

    in go http2 ◦ Static resources (img, css, js) ◦ Ajax resources • Investigate writing http2-server ◦ complex protocol • Investigate java support ◦ Netty, Jetty, Undertow, OkHttp, gRPC
  5. Lessons Learned: HTTP/2 • Invisible to user (https) ◦ You

    are already using it • Basic advantages can be achieved today ◦ With few application-level changes • Push works for both static & ajax resources ◦ But requires extension of current server-side api’s
  6. Lessons Learned: HTTP/2 • Server Push is NOT an equivalent

    of websockets or push notifications • Debugging is tricky ◦ chrome://net-internals ◦ Developer Tools can be confusing
  7. Lessons Learned: go http2 • go http2 does not yet

    expose Server Push ◦ But a PR is in the works ◦ Which manages to break Firefox(!)