http/2, why upgrading the web? - #devoxxpl flavor
TRANSCRIPT
Quentin ADAM from the Clever Cloud
@waxzce on twitter – github- soundcloud – instagram ….
WHO AM I ?
MY DAY TO DAY WORK : CLEVER CLOUD, MAKE YOUR APP RUN ALL THE TIME
And learn a lot of things about your code, apps, and good/bad design…
KEEP YOUR APPS ONLINE. MADE WITH NODE.JS, SCALA, JAVA, RUBY, PHP, PYTHON, GO…
AND LEARN A LOT OF THINGS ABOUT YOUR CODE, APPS, AND GOOD/BAD DESIGN…
WHAT’S THE HTTP JOB ?
HTTP1 IS TEXT PROTOCOL
REQUEST <-> RESPONSE MODEL
THE 4 PARTS
Verb Resource
Headers Body (optional)
THE SPEC IS MADE OF OPTIONS AND ABILITY TO EXTENDS
FASTER FASTER FASTER
// REQUESTS ?
HTTP PIPELINING
THE HACKS WE ARE DOING EVERYDAY WITHOUT THINKING TO IMPROVE PERFORMANCES
MULTIPLE DOMAIN NAMES FOR MULTIPLES STREAMS
STATIC ASSETS DOMAIN NAME FOR FAT COOKIES PROBLEM MANAGEMENT
COMET/WEBSOCKET/PULLING/SERVER SENT ENVENT… BIDIRECTIONAL DATA STREAMS HACKS
SO, WE NEED A NEW VERSION OF HTTP
WHO IS IN CHARGE ?
HTTPBIS WORKING GROUP
FIRST HTTP/2 DRAFT IS SPDY/3 DRAFT
BUILD ON SOMETHING
SO WHAT IS IN THE BOX ?
HTTP/2 IS A BINARY PROTOCOL
HHTP/1 + COMPRESSION + SSL = ~BINARY
BINARY PROTOCOL ARE SAFER, EASER TO PARSE, CONCISE…
WIRESHARK FOR ALL
WHAT IS WIRESHARK ?
Your app Wireshark System Network card
BUILD ONLY 1 TCP CONNECTION
PUT SOME STEAMS IN ONE CONNECTION
STREAMS~ 1 HTTP/1 REQUEST = 1 HTTP/2 STREAM
STREAMS ARE BUILT OF FRAMES
FRAMES
Content a.html #1
Content dog.gif #1
Content a.html #2
Content dog.gif #2
Content a.html #4
Content a.html #3
Content cat.gif #1
Content dog.gif #4 …
BINARY GOODNESS => FRAMES IS EASY
STREAMS PRIORITY
IMPROVE THE BROWSER WATERFALL WITH STREAM PRIORITY
PUSH FROM THE SERVER A RESOURCE TO THE CACHE
USER XP WILL BE BETTER
HEADERS COMPRESSIONS
HPACK
*new RFC*
HEADERS PERSISTENCE
FOCUS ON WEB PERFORMANCES
URL CANNOT CHANGE
HOW TO UPDATE THE WEB ?
HTTP&HTTPS
NEGOCIATE A PROTOCOL ELEVATION
HTTP/1 BUILD IN METHOD
Upgrade: header
Code 101 Switching
WORKFLOW
WORKFLOW
IT’S STILL SLOW
ENCRYPT THE WEB :TLS
CURRENT NEGOTIATION: TLS VERSION, CYPHER…
NEGOTIATE THE PROTOCOL IN THE SAME TIME OF ENCRYPT NEGOTIATION
NPN (CLIENT)
&ALPN (SERVER)
Use this
IS IT FOR REAL?
LOOKS LIKE IP V6 STORY?
MORE SPDY STORY
BENCHMARK TIME
CAUTION
H2O PERFORMANCES
H2, H2-14- Firefox
- Chrome
- cURL
- IE (oh yeah)
- …
- Akamai
- ….
https://github.com/http2/http2-spec/wiki/Implementations
CLEVER CLOUD POV
WORKING ON THIS
Client http2
reverse proxy http2
your app : http1
ALL THE GOODNESS OF HTTP2 IN YOUR HTTP1 APP FOR NOTHING :-)
WHY IT’S SO COOL?
PERFORMANCES
REMOVE ALL THE SHITTY HACKS
EXPLORE NEW POSSIBILITIES
IMPROVE THE USERS XP
TODO LIST• https://http2.github.io/
• Specs• Implementations• FAQ• News
• Hack with node/h2o/Jetty
• Install Wireshark on your laptop
I’m @waxzce on twitter
I’m the CEO of
A PaaS provider, give it a try ;-)
THX FOR LISTENING & QUESTIONS TIME