WHY HTTP/2?WHY UPGRADING THE WEB?QUENTIN ADAM @WAXZCE
2013
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 ?
HYPERTEXTTRANSFERTPROTOCOL
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
WHAT WAS THE REQUIREMENTS?
FASTER FASTER FASTER
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
FRAMESContent
a.html #1Content
dog.gif #1Content
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
IMPROVE THE BROWSER WATERFALL WITH STREAM PRIORITY
PUSH FROM THE SERVER A RESOURCE TO THE CACHE
USER XP WILL BE BETTER
HEADERS COMPRESSIONS
HEADERS PERSISTENCE
FOCUS ON WEB PERFORMANCES
URL CANNOT CHANGE
HOW TO UPDATE THE WEB ?
NEGOCIATE A PROTOCOL ELEVATION
HTTP/1 BUILD IN METHOD
Upgrade: header
Code 101 Switching
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
LOOKS LIKE IP V6 STORY?
BENCHMARK TIME
CAUTION
H2, H2-14- Firefox - Chrome - cURL- IE (oh yeah)- …
- Google- Twitter- Akamai- ….https://github.com/http2/http2-spec/wiki/Implementations
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?
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
clever-cloud.com coupon code:
BDX15