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

HTTP2: Pipeline Bling

HTTP2: Pipeline Bling

Despite the major version change, HTTP/2 is not a ground-up rewrite of the HTTP protocol. In fact, HTTP/2 preserves the concept of HTTP headers, methods, and status codes. HTTP/2 refines how HTTP is expressed on the wire to help reduce end-user perceived latency.

In this talk we’ll explore the changes introduced by HTTP/2 and identify areas where it can be applied today. Finally, we'll cover common hacks around HTTP/1.x that simply go away as a result of adopting HTTP/2.

Hector Castro

May 03, 2016
Tweet

More Decks by Hector Castro

Other Decks in Technology

Transcript

  1. Initiator Listener SYN SYN-ACK ACK ClientHello ServerHello Certificate ServerHelloDone ClientKeyExchange

    ChangeCipherSpec Finished ChangeCipherSpec Finished { TCP { TLS Finally, we can start our HTTP request.
  2. Client Server GET / index.html GET /main.css main.css GET /logo.png

    logo.png Still need to get all of the other assets!
  3. Client Server GET / index.html GET /main.css main.css GET /logo.png

    logo.png Still need to get all of the other assets! 1s
  4. grunt.initConfig({ concat: { options: { separator: ';', }, dist: {

    src: ['src/intro.js', 'src/project.js', 'src/outro.js'], dest: 'dist/built.js', }, }, });
  5. Index Header Name Header Value 1 :authority 2 :method GET

    3 :method POST 4 :path / 5 :path /index.html 6 :scheme http 7 :scheme https 8 :status 200 … … … 60 via 61 www-authenticate
  6. Index Header Name Header Value 62 :host jobs.azavea.com 63 :referer

    http://www.azavea.com/ 64 :path /logo.png 65 :referer http://jobs.azavea.com/ … … …
  7. Symbol Code as Bits Length in Bits / 011000 6

    l 101000 6 o 00111 5 g 100110 6 . 010111 6 p 101011 6 n 101010 6
  8. “/logo.png” = 9 characters * 8 bits = huffman(“/logo.png”) =

    6 + 5 + 6 + 5 + 6 + 6 + 6 + 6 = 72 bits 46 bits