HTTP/2 - The Web of Future

26
HTTP/2 THE WEB OF FUTURE / Vahe Evoyan @evoyan evoyan.org/http2-barcamp/ vahe-evoyan.github.io/http2-presentation/

Transcript of HTTP/2 - The Web of Future

Page 1: HTTP/2 - The Web of Future

HTTP/2THE WEB OF FUTURE

/ Vahe Evoyan @evoyan

evoyan.org/http2-barcamp/

vahe-evoyan.github.io/http2-presentation/

Page 2: HTTP/2 - The Web of Future

WHO THE HECK IS THIS GUY?

10+ YEARS OF SW ENGINEERING

WORKS AT INSTIGATE MOBILE

ACTIVE MEMBER AND CO-LEADER AT OWASP ARMENIA

Page 3: HTTP/2 - The Web of Future

WHY HTTP/2?

Page 4: HTTP/2 - The Web of Future

IT'S ALL ABOUT PERFORMANCE

Page 5: HTTP/2 - The Web of Future

TCP INTRODUCTIONTHREE-WAY HANDSHAKE

TCP SLOW START

Page 6: HTTP/2 - The Web of Future

HTTP 1.01995

Page 7: HTTP/2 - The Web of Future

HTTP 1.1OPTIONS METHOD

ADVANCED CACHING

RANGE REQUESTS

COMPRESSION ALGORITHMS

PIPELINING

Page 8: HTTP/2 - The Web of Future

HOL BLOCKING

Page 9: HTTP/2 - The Web of Future

TOTAL TRANSFER SIZE AND TOTAL REQUESTS

2011 2012 2013 2014 2015

600

800

1,000

1,200

1,400

1,600

1,800

2,000

2,200

76

78

80

82

84

86

88

90

92

94

96

98

100JS chart by amCharts

Page 10: HTTP/2 - The Web of Future

WORKAROUNDS

Page 11: HTTP/2 - The Web of Future

SPRITING

Page 12: HTTP/2 - The Web of Future

INLININGCSS

li { background: url(data:image/gif;base64,R0lGODlhEAAQAMQAAORHHOVSKudfOulrSOp3WOyDZu6QdvCchPGolfO0o/ no-repeat left center; padding: 5px 0 5px 25px;}

HTML<img width="16" height="16" src="data:image/gif;base64,R0lGODlhEAAQAMQAAORHHOVSKudfOulrSOp3WOyDZu6QdvCchPGolfO0o/XBs/fNwfjZ0frl3/zy7////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkAABAALAAAAAAQABAAAAVVICSOZGlCQAosJ6mu7fiyZeKqNKToQGDsM8hBADgUXoGAiqhSvp5QAnQKGIgUhwFUYLCVDFCrKUE1lBavAViFIDlTImbKC5Gm2hB0SlBCBMQiB0UjIQA7"

Page 13: HTTP/2 - The Web of Future

CONCATENATION/*! jQuery v2.1.4 | (c) 2005, 2015 jQuery Foundation, Inc. | jquery.org/license */!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module...

Page 14: HTTP/2 - The Web of Future

SHARDINGSTATIC-1.EXAMPLE.COM

STATIC-2.EXAMPLE.COM

STATIC-3.EXAMPLE.COM

STATIC-4.EXAMPLE.COM

Page 15: HTTP/2 - The Web of Future

SPDY2009

COMPRESSION

MULTIPLEXING

PRIORITIZATION

...

WAIT!

Page 16: HTTP/2 - The Web of Future

SPDYBINARY PROTOCOL

TLS ONLY

NPN

Application (HTTP 1.1)

Session (SPDY | TLS)

Transport (TCP)

Network (IP)

Page 17: HTTP/2 - The Web of Future

TLS INTRODUCTIONTHREE-WAY HANDSHAKE + NEXT PROTOCOL NEGOTIATION

Page 18: HTTP/2 - The Web of Future

HTTP/2Application (HTTP/2)

Session (TLS)

Transport (TCP)

Network (IP)

Binary FramingBINARY PROTOCOL

TLS IS OPTIONAL

APPLICATION-LAYER PROTOCOLNEGOTIATION

Page 19: HTTP/2 - The Web of Future

MULTIPLEXINGSTREAM - MESSAGE - FRAME

Page 20: HTTP/2 - The Web of Future

PRIORITIZATIONWEIGHTED STREAMS

DEPENDENCIES

Page 21: HTTP/2 - The Web of Future

SERVER PUSHPUSH_PROMISE FRAMES

RST_STREAM FRAMES

Page 22: HTTP/2 - The Web of Future

HEADER COMPRESSIONHPACK

Page 23: HTTP/2 - The Web of Future

AND A LOT MORESecurity Now (Ep. 495). HTTP/2HTTP vs HTTPS - Test them bothHTTP/2 Specs (RFC 2119)http2 explained - The HTTP/2 book

Page 24: HTTP/2 - The Web of Future

ApacheNgin

x

MicrosoftIIS

LiteSpeed

TomcatLighttpdTengine

Nodejs

CowboyZopeZeus

Gunicorn

WEBric

k

Thin

Resin

Jetty

Kangle

BaseHTTPServer

Torn

ado

Cherokee

Mongrel

AOLserverRoxen

CherryPy

WebSTAR

Hiawatha

WebToB

IceWarp

Abyss

Twisted

KomHttpServer

Orion

Jexus

WebHare

CouchDB

NaviServer

Yaws

RaidenHTTPD CaudiumGWAN

Monkey

AllegroServe

Misultin

Hunch

entoo

t

Virtuoso

Swazoo

Trifork Wildca

t

Blazix

Inets

Mongr

el2

TclW

ebse

rver

Comanche

Mathop

d

Tntnet

WebSiphon

XavanteGoogle Servers

Apache Traffic Server

IBM Servers

Oracle Servers

Paste WSGI HTTP Server

Yahoo Traffic Server

Barracuda ServerAda Web Server

Page 25: HTTP/2 - The Web of Future

SO WHAT ABOUT US?

Page 26: HTTP/2 - The Web of Future

THANKS!