http2: why the web is upgrading? - bdx.io 2015

74
WHY HTTP/2? WHY UPGRADING THE WEB? QUENTIN ADAM @ WAXZCE 2013

Upload: quentin-adam

Post on 09-Feb-2017

3.510 views

Category:

Technology


0 download

TRANSCRIPT

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

// 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

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

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)- …

- Google- Twitter- 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

clever-cloud.com coupon code:

BDX15