an overview of the differences between http/1.1 and http/2
TRANSCRIPT
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
Request
HTTP/1.1
Response
RequestHEADERS frame
HTTP/2
ResponseHEADERS frame
ResponseDATA frame
Streams
Stream 1DATAClient ServerStream 1
HEADER
HTTP/1.1
Client ServerStream 1HEADER
Stream 2HEADER
Client ServerStream 2HEADER
Stream 2DATA
Client Server
Streams
Stream 1DATAClient ServerStream 1
HEADERStream 2HEADER
Stream 2DATA
HTTP/2
Client ServerStream 1HEADER
Stream 2HEADER
Streams are multiplexed
Stream 2HEADER
Stream 1HEADER
Stream 1DATA
Stream 1DATAClient ServerStream 2
DATA
HTTP/2
Client ServerStream 1HEADER
Stream 2HEADER
Streams are prioritised
Stream 2HEADER
Stream 1HEADER
Stream 1DATA
Stream 1DATAClient ServerStream 2
DATA
HTTP/2
Client ServerStream 1HEADER
Stream 2HEADER
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
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
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
resource inlining concatenated resources
When can I have HTTP/2?