67
WHY HTTP/2 ? WHY IS IT SO COOL ? CLEMENT DELAFARGUE @ CLEMENTD 2013

HTTP/2

Embed Size (px)

Citation preview

Page 1: HTTP/2

WHY HTTP/2 ?

WHY IS IT SO

COOL ?

CLEMENT DELAFARGUE

@CLEMENTD

2013

Page 2: HTTP/2

Clement DELAFARGUE from Clever Cloud

@clementd on twitter – @divarvel on github

WHO AM I ?

Page 3: HTTP/2

MY DAY TO DAY WORK :

CLEVER CLOUD, MAKE YOUR

APP RUN ALL THE TIME

Page 4: HTTP/2

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…

Page 5: HTTP/2

AND LEARN A LOT OF THINGS ABOUT

YOUR CODE, APPS, AND GOOD/BAD

DESIGN…

Page 6: HTTP/2

WHAT’S THE JOB OF HTTP?

Page 7: HTTP/2
Page 8: HTTP/2

THE SPEC IS MADE TO BE

EXTENSIBLE

Page 9: HTTP/2

BUT THE INTERNET IS

EVOLVING

Page 10: HTTP/2

FASTER FASTER FASTER

Page 11: HTTP/2

// REQUESTS ?

Page 12: HTTP/2

KEEP-ALIVE?

Page 13: HTTP/2

HTTP PIPELINING

Page 14: HTTP/2

THE HACKS WE ARE

DOING EVERYDAY

WITHOUT

THINKING IN

ORDER TO IMPROVE

PERFORMANCES

Page 15: HTTP/2

MULTIPLE DOMAIN NAMES FOR

MULTIPLE STREAMS

Page 16: HTTP/2

STATIC ASSETS DOMAIN NAME FOR FAT

COOKIES PROBLEM MANAGEMENT

Page 17: HTTP/2

COMET/WEBSOCKET/PULLING/SERVER

SENT ENVENT… BIDIRECTIONAL DATA

STREAMS HACKS

Page 18: HTTP/2

SO, WE NEED A NEW VERSION OF HTTP

Page 19: HTTP/2

WHO IS IN CHARGE ?

Page 20: HTTP/2

HTTPBIS

WORKING

GROUP

Page 21: HTTP/2

FIRST

HTTP/2

DRAFT IS

SPDY/3

DRAFT

Page 22: HTTP/2

BUILD ON SOMETHING

Page 23: HTTP/2

EVERYBODY IS AT THE TABLE

Page 24: HTTP/2

SO WHAT IS IN THE BOX ?

Page 25: HTTP/2

HTTP/2 IS A BINARY

PROTOCOL

Page 26: HTTP/2

COMPRESSION + SSL UNABLE

TO READ ANYTHING

Page 27: HTTP/2

WIRESHARK FOR ALL

Page 28: HTTP/2

PUT SOME STEAMS IN ONE

CONNECTION

Page 29: HTTP/2

STREAMS

~ 1 HTTP/1 REQUEST = 1 HTTP/2 STREAM

Page 30: HTTP/2

STREAMS ARE BUILT

OF FRAMES

Page 31: HTTP/2

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

Page 32: HTTP/2

BASICALLY

connection

streams

frames

Page 33: HTTP/2

BINARY GOODNESS =>

FRAMING IS EASY

Page 34: HTTP/2

KILL MULTIPART $*%Ù£

FORMAT

Page 35: HTTP/2

PUSH FROM THE SERVER A RESOURCE

TO THE CACHE

Page 36: HTTP/2

STREAMS PRIORITY

Page 37: HTTP/2

HEADERS

COMPRESSIONS

Page 38: HTTP/2

HPACK

*new RFC*

Page 39: HTTP/2

HEADERS

PERSISTENCE

Page 40: HTTP/2

FOCUS ON WEB

PERFORMANCES

Page 41: HTTP/2

TRANSITION

Page 42: HTTP/2

URLS

CANNOT

CHANGE

Page 43: HTTP/2

HOW TO UPDATE THE

WEB ?

Page 44: HTTP/2

HTTP

&

HTTPS

Page 45: HTTP/2

NEGOTIATE

A

PROTOCOL

ELEVATION

Page 46: HTTP/2

HTTP/1 BUILD IN METHOD

Upgrade: header

Code 101 Switching

Page 47: HTTP/2

WORKFLOW

Page 48: HTTP/2

WORKFLOW

Page 49: HTTP/2

IT’S STILL SLOW

Page 50: HTTP/2

ENCRYPT

THE WEB :

TLS

Page 51: HTTP/2

NEGOTIATE

TLS

VERSION

AND

CIPHER…

Page 52: HTTP/2

NEGOTIATE THE PROTOCOL AT

THE SAME TIME AS THE

ENCRYPTION NEGOTIATION

Page 53: HTTP/2

NPN (CLIENT)

&

ALPN (SERVER)

Page 54: HTTP/2

IS IT FOR

REAL?

Page 55: HTTP/2

LOOKS LIKE

IP V6

STORY?

Page 56: HTTP/2

MORE SPDY STORY

Page 57: HTTP/2

DRAFT – 14 / 15

- Firefox

- Chrome

- cURL

- IE (oh yeah)

- …

- Google

- Twitter

- Akamai

- ….

Page 58: HTTP/2

BENCH

Page 59: HTTP/2

CLEVER CLOUD POV

Page 60: HTTP/2

WORKING ON THIS

Client http2

reverse proxy http2

your app : http1

Page 61: HTTP/2

ALL THE

GOODNESS OF

HTTP2 IN

YOUR HTTP1

APP FOR FREE

:-)

Page 62: HTTP/2

WHY IT’S

SO COOL?

Page 63: HTTP/2

PERFORMANCES

Page 64: HTTP/2

REMOVE ALL THE SHITTY

HACKS

Page 65: HTTP/2

EXPLORE NEW POSSIBILITIES

Page 66: HTTP/2

IMPROVE THE USERS XP

Page 67: HTTP/2

I’m @clementd on twitter

I’m the CTO of

A PaaS provider, give it a try

;-)

THX FOR LISTENING

& QUESTIONS TIME