an overview of the differences between http/1.1 and http/2

20
HTTP/2

Upload: oursky

Post on 16-Apr-2017

54 views

Category:

Software


6 download

TRANSCRIPT

Page 1: An overview of the differences between HTTP/1.1 and HTTP/2

HTTP/2

Page 2: An overview of the differences between HTTP/1.1 and HTTP/2

What is HTTP/2• RFC 7540 (May 2015)

• binary framing protocol

• share same semantics as HTTP/1.1

• using single TCP connection for all data

• lower (perceived) latency

• header compression

Page 3: An overview of the differences between HTTP/1.1 and HTTP/2
Page 4: An overview of the differences between HTTP/1.1 and HTTP/2
Page 5: An overview of the differences between HTTP/1.1 and HTTP/2

Request

HTTP/1.1

Response

Page 6: An overview of the differences between HTTP/1.1 and HTTP/2

RequestHEADERS frame

HTTP/2

ResponseHEADERS frame

ResponseDATA frame

Page 7: An overview of the differences between HTTP/1.1 and HTTP/2
Page 8: An overview of the differences between HTTP/1.1 and HTTP/2

Streams

Stream 1DATAClient ServerStream 1

HEADER

HTTP/1.1

Client ServerStream 1HEADER

Stream 2HEADER

Client ServerStream 2HEADER

Stream 2DATA

Client Server

Page 9: An overview of the differences between HTTP/1.1 and HTTP/2

Streams

Stream 1DATAClient ServerStream 1

HEADERStream 2HEADER

Stream 2DATA

HTTP/2

Client ServerStream 1HEADER

Stream 2HEADER

Page 10: An overview of the differences between HTTP/1.1 and HTTP/2

Streams are multiplexed

Stream 2HEADER

Stream 1HEADER

Stream 1DATA

Stream 1DATAClient ServerStream 2

DATA

HTTP/2

Client ServerStream 1HEADER

Stream 2HEADER

Page 11: An overview of the differences between HTTP/1.1 and HTTP/2

Streams are prioritised

Stream 2HEADER

Stream 1HEADER

Stream 1DATA

Stream 1DATAClient ServerStream 2

DATA

HTTP/2

Client ServerStream 1HEADER

Stream 2HEADER

Page 12: An overview of the differences between HTTP/1.1 and HTTP/2

Benefits

• Request multiple resources at the same time over the same connection

• Having multiple connections (as in HTTP/1.1) will compete for bandwidth, hurting TCP performance

• Prioritisation allows client to send all requests first and server figure out the order

Page 13: An overview of the differences between HTTP/1.1 and HTTP/2

Server Push

style.cssHEADER

index.htmlHEADER

index.htmlDATAClient Serverstyle.css

DATA

wantindex.htmlClient Server

Oh! You need index.html,perhaps you need style.css

as well!

style.cssDATA

Page 14: An overview of the differences between HTTP/1.1 and HTTP/2

Benefits• Server send resources before client request them

• Lower latency because no need to wait for client to figure out what sub-resources are needed

• No need for resource inlining and concatenated resources

• Reduce bandwidth too because server only send what is needed

Page 15: An overview of the differences between HTTP/1.1 and HTTP/2

resource inlining concatenated resources

Page 16: An overview of the differences between HTTP/1.1 and HTTP/2
Page 17: An overview of the differences between HTTP/1.1 and HTTP/2

When can I have HTTP/2?

Page 18: An overview of the differences between HTTP/1.1 and HTTP/2
Page 19: An overview of the differences between HTTP/1.1 and HTTP/2
Page 20: An overview of the differences between HTTP/1.1 and HTTP/2

Brought to you by Oursky

Build your mobile app fast skygear.io (open source)