SlideShare a Scribd company logo
1 of 25
Download to read offline
HTTP/2
Sudarshan Pant
Mokpo National University
History of HTTP
HTTP/0.9
1991
HTTP/1.0 HTTP/1.1
1996 1999
HTTP/2
2015
Limitations of HTTP/1.1
Simple and text based.
Concurrent Connection Limit
Head-of-line blocking
Unable to use TCP at it’s full capability
Latency
Limitations of HTTP/1.1
HTTP/1.1 RFC states that there should be only 2 concurrent
connections per server/proxy.
Maximum Concurrent connections supported by browsers:
Chrome: 6
IE: 8
Firefox: 6
Opera: 6
Safari: 4
Optimization with HTTP/1.1
■ HTTP/1.1 defines Pipelining but most Browsers do not implement it.
■ Pipelining -> Multiple requests can be sent concurrently but still the responses are sent in
the same order as the requests are made.
PIPELINING
Optimization with HTTP/1.1
■ Use multiple sub-domains to get more connections
■ For example : sub-1.example.com, sub-2.example.com, sub-3.example.com etc.
■ Complicates architecture
DOMAIN SHARDING
Optimization with HTTP/1.1
■ Combine resources into a single larger resource
■ Example, bundling of CSS and javascript,use of image sprites.
■ Inlining:Requests are reduced by using inline styles in HTML instead of writing in separate
files.
CONCATENATION AND INLINING
More problems…
■ Complexity in Web design and maintenance increases.
■ Increased resource consumption.
■ Reduces cacheability of resources.
■ Duplicate resources
SPDY
■ Experimental protocol, developed at Google and announced in mid-2009 with goals.
- Target a 50% reduction in page load time(PLT)
- Avoid the need for any changes to content by website authors.
- Minimize deployment complexity.
- Avoid change in network infrastructure
- Implement in partnership with open-source community.
SPDY
Make more efficient use of the underlying TCP connection by
introducing a new binary framing layer to enable request and
response multiplexing, prioritization, and header compression.
HTTP and SPDY evolution
HTTP/0.9
1991
HTTP/1.0 HTTP/1.1
1996 1999
HTTP/2 Approved
2015
SPDY
Implemented
2012
End of SPDY
2016
■ July 2012 – development of SPDY announced publicly by group of developers at Google.
■ All Major browsers started implementing SPDY which started in the path of standardization.
■ February 2015, Google announced removal of support for SPDY
■ February 2016, Google announced that Chrome will no longer support SPDY after May 15, 2016
HTTP/2 first draft
2012
SPIDY
Development
2009
Beginning of HTTP/2.0
■ March 2012 : Call for Proposal for HTTP/2
■ November 2012: First Draft of HTTP/2 (Based on SPDY)
■ August 2014: HTTP/2 draft-17 and HPACL draft-12 are published
■ February2015: IESG approved HTTP/2 and HPACK drafts
■ May 2015: RFC 7540 (HTTP/2) and RFC 7541 (HPACK) are published.
New in HTTP/2
■ Reduce latency by introducing Header Field Compression
■ Allow multiple concurrent exchanges on the same connection.
■ Server Push
Protocol Overview
Supports all core features of HTTP/1.1
■ HTTP/2 uses the same “http” and “https” URI schemes as HTTP/1.1
■ HTTP/2 uses same default port numbers as HTTP/1.1 (80 for http and 443 for
https)
■ HTTP Semantics, such as verbs, methods, and headers are unaffected.
Binary Framing Layer
HTTP 1.1
POST /upload HTTP/1.1
Host: www.example.com
Content-Type: application/json
Content-Length:15
{“msg”:”hello”}
DATA frame
HEADERS frame
Streams, messages and frames
•Stream: A bidirectional flow of bytes within an established connection, which may
carry one or more messages.
•Message: A complete sequence of frames that map to a logical request or response
message.
•Frame: The smallest unit of communication in HTTP/2, each containing a frame
header, which at a minimum identifies the stream to which the frame belongs.
Connection
Request and Response Multiplexing
HTTP/2.2 enables full multiplexing by allowing the client and server
to break down HTTP messages into independent frames, interleave them
and them reassemble them on the other end.
https://developers.google.com/web/fundamentals/performance/http2/
Stream prioritization
• Each stream may be assigned an integer weight between 1-256
• Each stream may be given an explicit dependency on another stream.
https://developers.google.com/web/fundamentals/performance/http2/
One connection per origin
• No Longer needs multiple connections
• Single connection is established between client
and server and multiple streams are exchanged
between them.
• Reduces the memory and processing footprint
along the full connection path.
• Reduces Network latency.
Flow control
• A mechanism to prevent the sender from overwhelming the
receiver with data
• Each receiver may choose to set any window size that it
desires for each stream and the entire connection.
• Window size is defined in SETTINGS frame when connection
is established
• Default size is 65,535 bytes. Max is (2^31 -1) bytes
• Can be maintained using WINDOW_UPDATE frame.
Server Push
• In addition to the response to the original request, the server
can push additional resources to the client, without the client
having to request each one explicitly.
• Push resources can be:
Ø Cached by the client
Ø Reused across different pages
Ø Multiplexed alongside other resources
Ø Prioritized by the server
Ø Declined by the client
Server Push
Image Source: https://developers.google.com/web/fundamentals/performance/http2/
Header Compression
• HPACK header compression reduces size of HTTP/2 header
• Compressed using Huffman encoding, resulting in an average
30% reduction.
• Frequently used headers can be encoded as variable length
integer, opposed to re-sending the whole header every time.
• Faster content delivery due to smaller headers.
Thank you

More Related Content

What's hot

What's hot (20)

Http 2
Http 2Http 2
Http 2
 
Http/2 lightning
Http/2   lightningHttp/2   lightning
Http/2 lightning
 
Communicating on the web
Communicating on the webCommunicating on the web
Communicating on the web
 
HTTP/2 Introduction
HTTP/2 IntroductionHTTP/2 Introduction
HTTP/2 Introduction
 
HTTP/2 Update - FOSDEM 2016
HTTP/2 Update - FOSDEM 2016HTTP/2 Update - FOSDEM 2016
HTTP/2 Update - FOSDEM 2016
 
HTTP2:新的机遇与挑战
HTTP2:新的机遇与挑战HTTP2:新的机遇与挑战
HTTP2:新的机遇与挑战
 
O'Reilly Fluent Conference: HTTP/1.1 vs. HTTP/2
O'Reilly Fluent Conference: HTTP/1.1 vs. HTTP/2O'Reilly Fluent Conference: HTTP/1.1 vs. HTTP/2
O'Reilly Fluent Conference: HTTP/1.1 vs. HTTP/2
 
Introduction to HTTP/2
Introduction to HTTP/2Introduction to HTTP/2
Introduction to HTTP/2
 
HTTP by Hand: Exploring HTTP/1.0, 1.1 and 2.0
HTTP by Hand: Exploring HTTP/1.0, 1.1 and 2.0HTTP by Hand: Exploring HTTP/1.0, 1.1 and 2.0
HTTP by Hand: Exploring HTTP/1.0, 1.1 and 2.0
 
Http2
Http2Http2
Http2
 
Http2 right now
Http2 right nowHttp2 right now
Http2 right now
 
HTTP Request Smuggling
HTTP Request SmugglingHTTP Request Smuggling
HTTP Request Smuggling
 
Http smuggling 1 200523064027
Http smuggling 1 200523064027Http smuggling 1 200523064027
Http smuggling 1 200523064027
 
Basics of NGINX
Basics of NGINXBasics of NGINX
Basics of NGINX
 
SPDY and HTTP/2
SPDY and HTTP/2SPDY and HTTP/2
SPDY and HTTP/2
 
HTTP/2 What's inside and Why
HTTP/2 What's inside and WhyHTTP/2 What's inside and Why
HTTP/2 What's inside and Why
 
HTTP/2 for Developers
HTTP/2 for DevelopersHTTP/2 for Developers
HTTP/2 for Developers
 
Introduction to HTTP/2
Introduction to HTTP/2Introduction to HTTP/2
Introduction to HTTP/2
 
Http Protocol
Http ProtocolHttp Protocol
Http Protocol
 
What's New in HTTP/2
What's New in HTTP/2What's New in HTTP/2
What's New in HTTP/2
 

Similar to Introduction to HTTP2

Next generation web protocols
Next generation web protocolsNext generation web protocols
Next generation web protocolsDaniel Austin
 
A New Internet? Introduction to HTTP/2, QUIC and DOH
A New Internet? Introduction to HTTP/2, QUIC and DOHA New Internet? Introduction to HTTP/2, QUIC and DOH
A New Internet? Introduction to HTTP/2, QUIC and DOHAPNIC
 
HTML5, HTTP2, and You 1.1
HTML5, HTTP2, and You 1.1HTML5, HTTP2, and You 1.1
HTML5, HTTP2, and You 1.1Daniel Austin
 
The new (is it really ) api stack
The new (is it really ) api stackThe new (is it really ) api stack
The new (is it really ) api stackLuca Mattia Ferrari
 
A new Internet? Intro to HTTP/2, QUIC, DoH and DNS over QUIC
A new Internet? Intro to HTTP/2, QUIC, DoH and DNS over QUICA new Internet? Intro to HTTP/2, QUIC, DoH and DNS over QUIC
A new Internet? Intro to HTTP/2, QUIC, DoH and DNS over QUICAPNIC
 
HTTP 2.0 – What do I need to know?
HTTP 2.0 – What do I need to know? HTTP 2.0 – What do I need to know?
HTTP 2.0 – What do I need to know? Sigma Software
 
Let's use modern protocols everywhere!
Let's use modern protocols everywhere!Let's use modern protocols everywhere!
Let's use modern protocols everywhere!jcak77
 
Enabling Googley microservices with HTTP/2 and gRPC.
Enabling Googley microservices with HTTP/2 and gRPC.Enabling Googley microservices with HTTP/2 and gRPC.
Enabling Googley microservices with HTTP/2 and gRPC.Alex Borysov
 
Meetup Tech Talk on Web Performance
Meetup Tech Talk on Web PerformanceMeetup Tech Talk on Web Performance
Meetup Tech Talk on Web PerformanceJean Tunis
 
HTTP/2 and QUICK protocols. Optimizing the Web stack for HTTP/2 era
HTTP/2 and QUICK protocols. Optimizing the Web stack for HTTP/2 eraHTTP/2 and QUICK protocols. Optimizing the Web stack for HTTP/2 era
HTTP/2 and QUICK protocols. Optimizing the Web stack for HTTP/2 erapeychevi
 
HTTP/2 - Differences and Performance Improvements with HTTP
HTTP/2 - Differences and Performance Improvements with HTTPHTTP/2 - Differences and Performance Improvements with HTTP
HTTP/2 - Differences and Performance Improvements with HTTPAmit Bhakay
 
Cs8591 Computer Networks - UNIT V
Cs8591 Computer Networks - UNIT VCs8591 Computer Networks - UNIT V
Cs8591 Computer Networks - UNIT Vpkaviya
 
Web Protocol Future (QUIC/SPDY/HTTP2/MPTCP/SCTP)
Web Protocol Future (QUIC/SPDY/HTTP2/MPTCP/SCTP)Web Protocol Future (QUIC/SPDY/HTTP2/MPTCP/SCTP)
Web Protocol Future (QUIC/SPDY/HTTP2/MPTCP/SCTP)Hoang Minh Nguyen
 
Http2 protocol changes
Http2 protocol changesHttp2 protocol changes
Http2 protocol changesMark Friedman
 

Similar to Introduction to HTTP2 (20)

Http/2
Http/2Http/2
Http/2
 
Next generation web protocols
Next generation web protocolsNext generation web protocols
Next generation web protocols
 
A New Internet? Introduction to HTTP/2, QUIC and DOH
A New Internet? Introduction to HTTP/2, QUIC and DOHA New Internet? Introduction to HTTP/2, QUIC and DOH
A New Internet? Introduction to HTTP/2, QUIC and DOH
 
HTML5, HTTP2, and You 1.1
HTML5, HTTP2, and You 1.1HTML5, HTTP2, and You 1.1
HTML5, HTTP2, and You 1.1
 
HTTP Presentation
HTTP Presentation HTTP Presentation
HTTP Presentation
 
The new (is it really ) api stack
The new (is it really ) api stackThe new (is it really ) api stack
The new (is it really ) api stack
 
A new Internet? Intro to HTTP/2, QUIC, DoH and DNS over QUIC
A new Internet? Intro to HTTP/2, QUIC, DoH and DNS over QUICA new Internet? Intro to HTTP/2, QUIC, DoH and DNS over QUIC
A new Internet? Intro to HTTP/2, QUIC, DoH and DNS over QUIC
 
HTTP 2.0 – What do I need to know?
HTTP 2.0 – What do I need to know? HTTP 2.0 – What do I need to know?
HTTP 2.0 – What do I need to know?
 
HTTP
HTTPHTTP
HTTP
 
Let's use modern protocols everywhere!
Let's use modern protocols everywhere!Let's use modern protocols everywhere!
Let's use modern protocols everywhere!
 
Enabling Googley microservices with HTTP/2 and gRPC.
Enabling Googley microservices with HTTP/2 and gRPC.Enabling Googley microservices with HTTP/2 and gRPC.
Enabling Googley microservices with HTTP/2 and gRPC.
 
Meetup Tech Talk on Web Performance
Meetup Tech Talk on Web PerformanceMeetup Tech Talk on Web Performance
Meetup Tech Talk on Web Performance
 
Http2 kotlin
Http2   kotlinHttp2   kotlin
Http2 kotlin
 
HTTP/2 and QUICK protocols. Optimizing the Web stack for HTTP/2 era
HTTP/2 and QUICK protocols. Optimizing the Web stack for HTTP/2 eraHTTP/2 and QUICK protocols. Optimizing the Web stack for HTTP/2 era
HTTP/2 and QUICK protocols. Optimizing the Web stack for HTTP/2 era
 
HTTP/2 - Differences and Performance Improvements with HTTP
HTTP/2 - Differences and Performance Improvements with HTTPHTTP/2 - Differences and Performance Improvements with HTTP
HTTP/2 - Differences and Performance Improvements with HTTP
 
HTTP 3.pptx
HTTP 3.pptxHTTP 3.pptx
HTTP 3.pptx
 
HTTP/2
HTTP/2HTTP/2
HTTP/2
 
Cs8591 Computer Networks - UNIT V
Cs8591 Computer Networks - UNIT VCs8591 Computer Networks - UNIT V
Cs8591 Computer Networks - UNIT V
 
Web Protocol Future (QUIC/SPDY/HTTP2/MPTCP/SCTP)
Web Protocol Future (QUIC/SPDY/HTTP2/MPTCP/SCTP)Web Protocol Future (QUIC/SPDY/HTTP2/MPTCP/SCTP)
Web Protocol Future (QUIC/SPDY/HTTP2/MPTCP/SCTP)
 
Http2 protocol changes
Http2 protocol changesHttp2 protocol changes
Http2 protocol changes
 

Recently uploaded

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 

Recently uploaded (20)

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 

Introduction to HTTP2

  • 2. History of HTTP HTTP/0.9 1991 HTTP/1.0 HTTP/1.1 1996 1999 HTTP/2 2015
  • 3. Limitations of HTTP/1.1 Simple and text based. Concurrent Connection Limit Head-of-line blocking Unable to use TCP at it’s full capability Latency
  • 4. Limitations of HTTP/1.1 HTTP/1.1 RFC states that there should be only 2 concurrent connections per server/proxy. Maximum Concurrent connections supported by browsers: Chrome: 6 IE: 8 Firefox: 6 Opera: 6 Safari: 4
  • 5. Optimization with HTTP/1.1 ■ HTTP/1.1 defines Pipelining but most Browsers do not implement it. ■ Pipelining -> Multiple requests can be sent concurrently but still the responses are sent in the same order as the requests are made. PIPELINING
  • 6. Optimization with HTTP/1.1 ■ Use multiple sub-domains to get more connections ■ For example : sub-1.example.com, sub-2.example.com, sub-3.example.com etc. ■ Complicates architecture DOMAIN SHARDING
  • 7. Optimization with HTTP/1.1 ■ Combine resources into a single larger resource ■ Example, bundling of CSS and javascript,use of image sprites. ■ Inlining:Requests are reduced by using inline styles in HTML instead of writing in separate files. CONCATENATION AND INLINING
  • 8. More problems… ■ Complexity in Web design and maintenance increases. ■ Increased resource consumption. ■ Reduces cacheability of resources. ■ Duplicate resources
  • 9. SPDY ■ Experimental protocol, developed at Google and announced in mid-2009 with goals. - Target a 50% reduction in page load time(PLT) - Avoid the need for any changes to content by website authors. - Minimize deployment complexity. - Avoid change in network infrastructure - Implement in partnership with open-source community.
  • 10. SPDY Make more efficient use of the underlying TCP connection by introducing a new binary framing layer to enable request and response multiplexing, prioritization, and header compression.
  • 11. HTTP and SPDY evolution HTTP/0.9 1991 HTTP/1.0 HTTP/1.1 1996 1999 HTTP/2 Approved 2015 SPDY Implemented 2012 End of SPDY 2016 ■ July 2012 – development of SPDY announced publicly by group of developers at Google. ■ All Major browsers started implementing SPDY which started in the path of standardization. ■ February 2015, Google announced removal of support for SPDY ■ February 2016, Google announced that Chrome will no longer support SPDY after May 15, 2016 HTTP/2 first draft 2012 SPIDY Development 2009
  • 12. Beginning of HTTP/2.0 ■ March 2012 : Call for Proposal for HTTP/2 ■ November 2012: First Draft of HTTP/2 (Based on SPDY) ■ August 2014: HTTP/2 draft-17 and HPACL draft-12 are published ■ February2015: IESG approved HTTP/2 and HPACK drafts ■ May 2015: RFC 7540 (HTTP/2) and RFC 7541 (HPACK) are published.
  • 13. New in HTTP/2 ■ Reduce latency by introducing Header Field Compression ■ Allow multiple concurrent exchanges on the same connection. ■ Server Push
  • 14. Protocol Overview Supports all core features of HTTP/1.1 ■ HTTP/2 uses the same “http” and “https” URI schemes as HTTP/1.1 ■ HTTP/2 uses same default port numbers as HTTP/1.1 (80 for http and 443 for https) ■ HTTP Semantics, such as verbs, methods, and headers are unaffected.
  • 15. Binary Framing Layer HTTP 1.1 POST /upload HTTP/1.1 Host: www.example.com Content-Type: application/json Content-Length:15 {“msg”:”hello”} DATA frame HEADERS frame
  • 16. Streams, messages and frames •Stream: A bidirectional flow of bytes within an established connection, which may carry one or more messages. •Message: A complete sequence of frames that map to a logical request or response message. •Frame: The smallest unit of communication in HTTP/2, each containing a frame header, which at a minimum identifies the stream to which the frame belongs.
  • 18. Request and Response Multiplexing HTTP/2.2 enables full multiplexing by allowing the client and server to break down HTTP messages into independent frames, interleave them and them reassemble them on the other end. https://developers.google.com/web/fundamentals/performance/http2/
  • 19. Stream prioritization • Each stream may be assigned an integer weight between 1-256 • Each stream may be given an explicit dependency on another stream. https://developers.google.com/web/fundamentals/performance/http2/
  • 20. One connection per origin • No Longer needs multiple connections • Single connection is established between client and server and multiple streams are exchanged between them. • Reduces the memory and processing footprint along the full connection path. • Reduces Network latency.
  • 21. Flow control • A mechanism to prevent the sender from overwhelming the receiver with data • Each receiver may choose to set any window size that it desires for each stream and the entire connection. • Window size is defined in SETTINGS frame when connection is established • Default size is 65,535 bytes. Max is (2^31 -1) bytes • Can be maintained using WINDOW_UPDATE frame.
  • 22. Server Push • In addition to the response to the original request, the server can push additional resources to the client, without the client having to request each one explicitly. • Push resources can be: Ø Cached by the client Ø Reused across different pages Ø Multiplexed alongside other resources Ø Prioritized by the server Ø Declined by the client
  • 23. Server Push Image Source: https://developers.google.com/web/fundamentals/performance/http2/
  • 24. Header Compression • HPACK header compression reduces size of HTTP/2 header • Compressed using Huffman encoding, resulting in an average 30% reduction. • Frequently used headers can be encoded as variable length integer, opposed to re-sending the whole header every time. • Faster content delivery due to smaller headers.