Slide 1

Slide 1 text

HTTP/2

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

Request HTTP/1.1 Response

Slide 6

Slide 6 text

Request
 HEADERS frame HTTP/2 Response
 HEADERS frame Response
 DATA frame

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

Streams Stream 1
 DATA Client Server Stream 1
 HEADER HTTP/1.1 Client Server Stream 1
 HEADER Stream 2
 HEADER Client Server Stream 2
 HEADER Stream 2
 DATA Client Server

Slide 9

Slide 9 text

Streams Stream 1
 DATA Client Server Stream 1
 HEADER Stream 2
 HEADER Stream 2
 DATA HTTP/2 Client Server Stream 1
 HEADER Stream 2
 HEADER

Slide 10

Slide 10 text

Streams are multiplexed Stream 2
 HEADER Stream 1
 HEADER Stream 1
 DATA Stream 1
 DATA Client Server Stream 2
 DATA HTTP/2 Client Server Stream 1
 HEADER Stream 2
 HEADER

Slide 11

Slide 11 text

Streams are prioritised Stream 2
 HEADER Stream 1
 HEADER Stream 1
 DATA Stream 1
 DATA Client Server Stream 2
 DATA HTTP/2 Client Server Stream 1
 HEADER Stream 2
 HEADER

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

Server Push style.css
 HEADER index.html
 HEADER index.html
 DATA Client Server style.css
 DATA want
 index.html Client Server Oh! You need index.html,
 perhaps you need style.css as well! style.css
 DATA

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

resource inlining concatenated
 resources

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

When can I have HTTP/2?

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

No content