SlideShare a Scribd company logo
Introducing HTTP/2
Ido Flatow
Senior Architect, Sela Group
Microsoft RD & MVP
INTRODUCING HTTP/2
http://bit.ly/2gcMBRQ - Please tell us how it was
Agenda
• HTTP 1.1 – What it’s all about
• Web (HTTP 1.1) and its current state
• What is (HTTP/2) – and how fast is it?
• Goals of HTTP/2
• HTTP/2 concepts
• How to troubleshoot
INTRODUCING HTTP/2
http://bit.ly/2gcMBRQ - Please tell us how it was
HTTP Messages 101
• HTTP is a first class application protocol:
– Widely supported across platforms and devices
– Scalable
– Simple
• Uses the request-response messaging pattern
• Define resource-based semantics and not RPC
(Remote Procedure Call) or methods
INTRODUCING HTTP/2
http://bit.ly/2gcMBRQ - Please tell us how it was
HTTP Request Messages
GET http://localhost:2300/api/agents/Bond HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Accept-Language: en-US,en;q=0.7,he;q=0.3
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0;
Windows NT 6.2; WOW64; Trident/6.0)
Accept-Encoding: gzip, deflate
Host: localhost:2300
DNT: 1
Connection: Keep-Alive
INTRODUCING HTTP/2
http://bit.ly/2gcMBRQ - Please tell us how it was
HTTP Response Messages
HTTP/1.1 200 OK
Cache-Control: public, max-age=300
Content-Type: application/json; charset=utf-8
ETag: "1"
Server: Microsoft-IIS/8.0
X-AspNet-Version: 4.0.30319
Date: Mon, 19 Nov 2012 17:49:40 GMT
Content-Length: 142
{
"Id": "Bond",
"FullName": "James Bond",
"Alias": "007",
"Version": 1,
"Image": "http://localhost:2300/api/agents/Bond.jpg"
}
INTRODUCING HTTP/2
http://bit.ly/2gcMBRQ - Please tell us how it was
URIs
• HTTP is not an RPC protocol
• HTTP uses URIs to identify resources over
the network
• An HTTP URI has the following basic
structure:
http://theagency.com:8080/agents?id=1
Schema Host Port Absolute
Path
Query
INTRODUCING HTTP/2
http://bit.ly/2gcMBRQ - Please tell us how it was
Verbs
• HTTP defines a set of Methods or Verbs that add
an action-like semantics to requests
• Verbs are defined as the first segment of the
request-line:
• There are eight verbs defined in HTTP 1.1:
GET http://localhost:4392/travelers/1 HTTP/1.1
GET
POST
PUT
DELETE
HEAD
OPTIONS
TRACE
CONNECT
INTRODUCING HTTP/2
http://bit.ly/2gcMBRQ - Please tell us how it was
Status Codes
• Status-Codes describe the result of the server’s effort so
satisfy the request
• Passed in the response's status-line as three digit along-side
a textual description called reason-phrases
• HTTP has five different categories of status-codes:
– 1xx – Informational
– 2xx – Success
– 3xx – Redirection
– 4xx – Client Error
– 5xx – Server Error
INTRODUCING HTTP/2
http://bit.ly/2gcMBRQ - Please tell us how it was
Compression
• Compression is something the client needs to
request
• Requests are not normally compressed
• Accept-Encoding: gzip,deflate
• Server is not obligated to compress the
response
• Content-Encoding: gzip / deflate
INTRODUCING HTTP/2
http://bit.ly/2gcMBRQ - Please tell us how it was
Web – Current State
• HTTP 1.1 is huge
– HTTP 1.0 RFC 1945 – released 1996 – 60 pages
– HTTP 1.1 RFC 2626 – released 1999 – 176 pages
– Now split into 6 documents – RFC 7230 and family
• Incomplete implementation of RFC
– Eg. HTTP pipelining
• Inadequate use of TCP
INTRODUCING HTTP/2
http://bit.ly/2gcMBRQ - Please tell us how it was
Transfer Size +300% in 4.5 Years
• January 2012 – August 2016
(http://httparchive.org) top 1000 sites
INTRODUCING HTTP/2
http://bit.ly/2gcMBRQ - Please tell us how it was
Shortcoming – Current Web
• Concurrent connection limit
• Head of line blocking
• TCP slow start
• Latency – page load time
INTRODUCING HTTP/2
http://bit.ly/2gcMBRQ - Please tell us how it was
Max Persistent Connections
• From HTTP 1.1 RFC:
– “Clients that use persistent connections SHOULD limit the number of simultaneous connections that
they maintain to a given server. A single-user client SHOULD NOT maintain more than 2
connections with any server or proxy. … These guidelines are intended to improve HTTP
response times and avoid congestion.”
• Firefox 2 – 2
• Firefox 3 and on – 6
• Opera 9.26 – 4
• Opera 12 – 6
• Safari 3 – 4
• Safari 5 – 6
• IE 7 – 2
• IE 8 – 6
• IE 10 – 8
• Chrome – 6
Avg. TCP connections during page load (Last 24 months)
INTRODUCING HTTP/2
http://bit.ly/2gcMBRQ - Please tell us how it was
Head-of-Line Blocking (No Pipelining)
• Each connection can only handle
one request at a time
• If current request blocks, next
request will wait
• HTTP 1.1 defines pipelining, but
most browsers do not implement
it
INTRODUCING HTTP/2
http://bit.ly/2gcMBRQ - Please tell us how it was
TCP Slow Start
• TCP does not use the full
bandwidth capacity from
start
• TCP probes network to
find available capacity
INTRODUCING HTTP/2
http://bit.ly/2gcMBRQ - Please tell us how it was
Latency vs Bandwidth
• Average web page has over 100 objects to download
• Largest impact on page load time is latency, not bandwidth
https://www.akamai.com/us/en/our-thinking/state-of-the-internet-report
INTRODUCING HTTP/2
http://bit.ly/2gcMBRQ - Please tell us how it was
What is 20ms of Latency?
(RTT = Round-trip time)
INTRODUCING HTTP/2
http://bit.ly/2gcMBRQ - Please tell us how it was
What Have we Done to Improvise?
• Reduce # of requests and latency overhead
– Spriting
– Concatenation/Bundling (JavaScript, CSS)
– Inlining
• Overcome max connection limit
– Domain sharding
INTRODUCING HTTP/2
http://bit.ly/2gcMBRQ - Please tell us how it was
Spriting
.d1, .d2, .d3, .d4, .d5, .d6, .d7 {
background:transparent url("dir_sprite.png") no-repeat 4px 0;
}
.d2 {background-position:4px -36px;}
.d3 {background-position:4px -74px;}
INTRODUCING HTTP/2
http://bit.ly/2gcMBRQ - Please tell us how it was
Concatenation and Inlining
• Join multiple script/style files into a single resource
• Embed JavaScript and CSS within the page
• Inline images in CSS or HTML using data URIs
(Base64 encoding)
<img src="data:image/gif;
base64,R0lGODlhAQABAIAAAAAAAACH5BAAAAAAALAAAAAABAAEAAAICTAEAOw=="
alt="1x1 transparent (GIF) pixel" />
INTRODUCING HTTP/2
http://bit.ly/2gcMBRQ - Please tell us how it was
Domain Sharing
• Work around the max connection
restriction
• Minimal overhead for DNS lookup
INTRODUCING HTTP/2
http://bit.ly/2gcMBRQ - Please tell us how it was
Problems with “optimizations”
• Spriting
– Painful and annoying preprocessing, cache invalidations, slower
executions
• Inlining
– Resource can’t be cached, inflates parent document by 33%
overhead
• Concatenation
– Less modular code, expensive cache invalidators, slower
execution
• Domain sharding
– TCP slowstart, excessive DNS lookup, latency
INTRODUCING HTTP/2
http://bit.ly/2gcMBRQ - Please tell us how it was
HTTP/2 to the Rescue
• Improve latency and less RTT sensitive
• Fix pipelining and remove “head of line
blocking”
• Does not require multiple connections
• Achieved all this by retaining semantics of
HTTP 1.1
INTRODUCING HTTP/2
http://bit.ly/2gcMBRQ - Please tell us how it was
It Began with SPDY
• Originally proposed by Google as a wire format
extension to HTTP in 2011
• Implements all the major features of HTTP/2
• Serves as a testbed for improvements to HTTP
– Without the burden of standardization
• SPDY became the basis of HTTP/2 in 2012
• Chrome stopped using SPDY in May 2016
INTRODUCING HTTP/2
http://bit.ly/2gcMBRQ - Please tell us how it was
What is HTTP/2
• HTTP/2 uses a single, multiplexed connection
– Max connection limit per domain can be ignored
• HTTP/2 compresses header data and sends it in a
concise, binary format
– Better than the plain text format used previously
• Less need for popular HTTP 1.1 optimizations
INTRODUCING HTTP/2
http://bit.ly/2gcMBRQ - Please tell us how it was
HTTP/2 Specification
• Started with SPDY - draft 3
• Comprised out of two specifications
– HTTP/2 – RFC7540
– HPACK (header compression) – RFC7541
• Implementations
– HTTP/2 over TLS (h2)
– HTTP/2 over TCP (h2c)
INTRODUCING HTTP/2
http://bit.ly/2gcMBRQ - Please tell us how it was
HTTP/2 Over TLS (h2)
• HTTP/2 shipped with TLS as optional
• Firefox and Chrome developer teams stated
they will only implement HTTP/2 over TLS
• Today, only HTTPS:// is allowed for HTTP/2
• TLS must be at least v1.2, with cipher suite
restrictions
https://http2.github.io/http2-spec/#BadCipherSuites
INTRODUCING HTTP/2
http://bit.ly/2gcMBRQ - Please tell us how it was
HTTP/2 Over TCP (h2c)
• Uses the Upgrade header
• Not many clients support h2c (curl)
GET /page HTTP/1.1
Host: server.example.com
Connection: Upgrade, HTTP2-Settings
Upgrade: h2c
HTTP2-Settings: (SETTINGS payload)
HTTP/1.1 200 OK
Content-length: 243
Content-type: text/html
(... HTTP/1.1 response ...)
--- or ---
HTTP/1.1 101 Switching Protocols
Connection: Upgrade
Upgrade: h2c
(... HTTP/2 response ...)
INTRODUCING HTTP/2
http://bit.ly/2gcMBRQ - Please tell us how it was
HTTP/2 in One Slide
• One TCP connection
• Request → Stream
– Streams are multiplexed
– Streams are prioritized
• Binary framing layer
– Prioritization
– Flow control
– Server push
• Header compression (HPACK)
INTRODUCING HTTP/2
http://bit.ly/2gcMBRQ - Please tell us how it was
TCP Connections - HTTP 1.1 vs
HTTP/2
• HTTP 1.1
• HTTP/2
Client
http://www.url.com
Client
http://www.url.com
INTRODUCING HTTP/2
http://bit.ly/2gcMBRQ - Please tell us how it was
DEMO
INTRODUCING HTTP/2
http://bit.ly/2gcMBRQ - Please tell us how it was
Am I Using HTTP/2?
INTRODUCING HTTP/2
http://bit.ly/2gcMBRQ - Please tell us how it was
HTTP/2 Support
• Servers
– Microsoft IIS 10
(Win 10 / Server 2016)
– Apache 2.4.12
– Nginx 1.9.5
– Jetty 9.3
– Many more…
• Browsers
– Edge
– IE11 (Windows 10)
– Firefox 40+
– Chrome 43+
– Safari 9+
– Opera 32+
– iOS Safari 9.1+
– Chrome for Android 46+
– CURL
Google, Facebook, Twitter and many more are using HTTP/2 already
HTTP/2 is used by 10% of all websites (Oct. 2016 http://w3techs.com)
INTRODUCING HTTP/2
http://bit.ly/2gcMBRQ - Please tell us how it was
HTTP/2 Multiplexing
• Each request/response stream has an ID
• Streams comprise of frames (Header, Data…)
• TCP connection can have multiple streams
• Frames can be interleaved in the TCP channel
• Stream dependencies control frame prioritization
• Server (IIS/ASP.NET) sees streams as TCP connections
INTRODUCING HTTP/2
http://bit.ly/2gcMBRQ - Please tell us how it was
Frame Types
Frame type Description
DATA HTTP body
HEADERS Header fields
PRIORITY Sender-advised priority of stream
RST_STREAM Signal termination of stream
SETTINGS Configuration parameters for the connection
PUSH_PROMISE Signal a promise (push) of referenced sources
PING Measure roundtrip time and “liveness”
GOAWAY Inform peer to stop creating streams for current connection
WINDOW_UPDATE Connection flow control
CONTINUATION Continue a segment of header block fragments
INTRODUCING HTTP/2
http://bit.ly/2gcMBRQ - Please tell us how it was
Header Compression (HPACK)
INTRODUCING HTTP/2
http://bit.ly/2gcMBRQ - Please tell us how it was
DEMO
INTRODUCING HTTP/2
http://bit.ly/2gcMBRQ - Please tell us how it was
How to Troubleshoot - Chrome
• Net Internals console in Chrome
• chrome://net-internals/#http2
INTRODUCING HTTP/2
http://bit.ly/2gcMBRQ - Please tell us how it was
How to Troubleshoot - Wireshark
• Export symmetric session keys to a file
• Load it with Wireshark
– Preferences->Protocols->SSL
• Works with Chrome
and Firefox (<48)
C:> set SSLKEYLOGFILE = %userprofile%desktopsslkeylog.log
$ export SSLKEYLOGFILE=~/Desktop/sslkeylog.log
INTRODUCING HTTP/2
http://bit.ly/2gcMBRQ - Please tell us how it was
How to Troubleshoot - Wireshark
INTRODUCING HTTP/2
http://bit.ly/2gcMBRQ - Please tell us how it was
How to Troubleshoot - Wireshark
INTRODUCING HTTP/2
http://bit.ly/2gcMBRQ - Please tell us how it was
How to Troubleshoot - Wireshark
INTRODUCING HTTP/2
http://bit.ly/2gcMBRQ - Please tell us how it was
DEMO
INTRODUCING HTTP/2
http://bit.ly/2gcMBRQ - Please tell us how it was
Server Push (Promise)
• After the server responds with an HTML, it waits for requests to
embedded resources
• Server code knows which resources client needs
– JavaScript
– CSS
– Images
– HTML pages of future navigation
• Why not just push it to the client along with the HTML?
• In ASP.NET, use HttpResponse.PushPromise
string path = Request.ApplicationPath;
Response.PushPromise(path + "/Images/1.png");
Response.PushPromise(path + "/Images/2.png");
INTRODUCING HTTP/2
http://bit.ly/2gcMBRQ - Please tell us how it was
DEMO
INTRODUCING HTTP/2
http://bit.ly/2gcMBRQ - Please tell us how it was
Summary
• Multiplexing
– Multiple requests and responses
– Fixes head-of-line blocking problem
– Avoid the HTTP 1.1 hacks
– Mechanism for request prioritization
• Fewer TCP connections
– Reduces TCP slow start
• Header compression
• Server Push
INTRODUCING HTTP/2
http://bit.ly/2gcMBRQ - Please tell us how it was
Resources
• https://http2.github.io/faq
• http://daniel.haxx.se/http2/http2-v1.10.pdf
• https://tools.ietf.org/html/rfc7540
• http://blogs.iis.net/davidso/http2
• http://blogs.msdn.com/b/webdev/archive/2015/04/30/updates-
for-asp-net-4-6-web-forms-mvc-5-web-api-2.aspx
@IdoFlatow // idof@sela.co.il // www.idoflatow.net/downloads

More Related Content

What's hot (20)

PDF
HTTP 2.0 – What do I need to know?
Sigma Software
 
PDF
HTTP by Hand: Exploring HTTP/1.0, 1.1 and 2.0
Cory Forsyth
 
PDF
SPDY and HTTP/2
Fabian Frank
 
PPTX
HTTP/2 Changes Everything
Lori MacVittie
 
PDF
Http2 right now
Daniel Stenberg
 
PDF
Http2
Daniel Stenberg
 
PDF
HTTP/2 What's inside and Why
Adrian Cole
 
PDF
HTTP2 & HPACK #pyfes 2013-11-30
Jxck Jxck
 
PPTX
HTTP/2 for Developers
Svetlin Nakov
 
PPTX
HTML5, HTTP2, and You 1.1
Daniel Austin
 
PPTX
Http/2
Adrian Cardenas
 
PDF
HTTP/2: What no one is telling you
Fastly
 
PPTX
HTTP/2 : why upgrading the web? - apidays Paris
Quentin Adam
 
PDF
HTTP/2 - for TCP/IP Geeks Stockholm
Daniel Stenberg
 
PDF
HTTP2 is Here!
Andy Davies
 
PPTX
What's New in HTTP/2
NGINX, Inc.
 
PDF
Http/2 - What's it all about?
Andy Davies
 
PDF
HTTP 2.0 Why, How and When
Codemotion
 
PDF
HTTP - The Protocol of Our Lives
Brent Shaffer
 
KEY
I got 99 problems, but ReST ain't one
Adrian Cole
 
HTTP 2.0 – What do I need to know?
Sigma Software
 
HTTP by Hand: Exploring HTTP/1.0, 1.1 and 2.0
Cory Forsyth
 
SPDY and HTTP/2
Fabian Frank
 
HTTP/2 Changes Everything
Lori MacVittie
 
Http2 right now
Daniel Stenberg
 
HTTP/2 What's inside and Why
Adrian Cole
 
HTTP2 & HPACK #pyfes 2013-11-30
Jxck Jxck
 
HTTP/2 for Developers
Svetlin Nakov
 
HTML5, HTTP2, and You 1.1
Daniel Austin
 
HTTP/2: What no one is telling you
Fastly
 
HTTP/2 : why upgrading the web? - apidays Paris
Quentin Adam
 
HTTP/2 - for TCP/IP Geeks Stockholm
Daniel Stenberg
 
HTTP2 is Here!
Andy Davies
 
What's New in HTTP/2
NGINX, Inc.
 
Http/2 - What's it all about?
Andy Davies
 
HTTP 2.0 Why, How and When
Codemotion
 
HTTP - The Protocol of Our Lives
Brent Shaffer
 
I got 99 problems, but ReST ain't one
Adrian Cole
 

Viewers also liked (20)

PPTX
Learning ASP.NET 5 and MVC 6
Ido Flatow
 
PPTX
Http2: why the web is upgrading? - bdx.io 2015
Quentin Adam
 
PPTX
Async patterns in javascript
Ran Wahle
 
PPTX
Responsive ui
Ran Wahle
 
PDF
Webcomponents v2
Dmitry Bakaleinik
 
PPTX
What's New in WCF 4.5
Ido Flatow
 
PPTX
EF Core (RC2)
Ido Flatow
 
PPTX
The Essentials of Building Cloud-Based Web Apps with Azure
Ido Flatow
 
PPTX
Powershell For Developers
Ido Flatow
 
PPTX
Debugging the Web with Fiddler
Ido Flatow
 
PDF
Getting Started with the TypeScript Language
Gil Fink
 
PPTX
ASP.NET Core 1.0
Ido Flatow
 
PPTX
Production debugging web applications
Ido Flatow
 
PPTX
IIS for Developers
Ido Flatow
 
PDF
IaaS vs. PaaS: Windows Azure Compute Solutions
Ido Flatow
 
PPTX
Advanced WCF Workshop
Ido Flatow
 
PPTX
HTTP/2 in Examples
Mihail Stoynov
 
PPTX
Debugging with Fiddler
Ido Flatow
 
PDF
HTTPS: What, Why and How (SmashingConf Freiburg, Sep 2015)
Guy Podjarny
 
PPTX
From VMs to Containers: Introducing Docker Containers for Linux and Windows S...
Ido Flatow
 
Learning ASP.NET 5 and MVC 6
Ido Flatow
 
Http2: why the web is upgrading? - bdx.io 2015
Quentin Adam
 
Async patterns in javascript
Ran Wahle
 
Responsive ui
Ran Wahle
 
Webcomponents v2
Dmitry Bakaleinik
 
What's New in WCF 4.5
Ido Flatow
 
EF Core (RC2)
Ido Flatow
 
The Essentials of Building Cloud-Based Web Apps with Azure
Ido Flatow
 
Powershell For Developers
Ido Flatow
 
Debugging the Web with Fiddler
Ido Flatow
 
Getting Started with the TypeScript Language
Gil Fink
 
ASP.NET Core 1.0
Ido Flatow
 
Production debugging web applications
Ido Flatow
 
IIS for Developers
Ido Flatow
 
IaaS vs. PaaS: Windows Azure Compute Solutions
Ido Flatow
 
Advanced WCF Workshop
Ido Flatow
 
HTTP/2 in Examples
Mihail Stoynov
 
Debugging with Fiddler
Ido Flatow
 
HTTPS: What, Why and How (SmashingConf Freiburg, Sep 2015)
Guy Podjarny
 
From VMs to Containers: Introducing Docker Containers for Linux and Windows S...
Ido Flatow
 
Ad

Similar to Introduction to HTTP/2 (20)

PPTX
Next generation web protocols
Daniel Austin
 
PPTX
Http2 is here! And why the web needs it
IndicThreads
 
PPTX
Http2 Security Perspective
Sunil Kumar
 
PPTX
Http/2
GeekNightHyderabad
 
PPTX
Introduction to HTTP/2
Ido Flatow
 
PDF
Introduction to HTTP2
Sudarshan Pant
 
PPTX
HTTP Presentation(What exactly is http).pptx
RobertDanso
 
PPTX
Http2
Islam Gamal
 
PDF
HTTP2 in action - Piet Van Dongen - Codemotion Amsterdam 2017
Codemotion
 
PPTX
HTTP/2
Ashish Padalkar
 
PPTX
HTTP/2 - Differences and Performance Improvements with HTTP
Amit Bhakay
 
PDF
Revisiting HTTP/2
Fastly
 
PDF
HTTP/2 (2017)
Christian Mäder
 
PPTX
In a HTTP/2 World - DeccanRubyConf 2017
Douglas Vaz
 
PDF
HTTP/2 and QUICK protocols. Optimizing the Web stack for HTTP/2 era
peychevi
 
PDF
HTTP/2: What's new?
Piet van Dongen
 
PPTX
HTTP 2.0 - Web Unleashed 2015
dmethvin
 
PDF
Revisiting HTTP/2
Fastly
 
PDF
HTTP/2 turns 3 years old // Web Performance Meetup wao.io 20180612
Avenga Germany GmbH
 
Next generation web protocols
Daniel Austin
 
Http2 is here! And why the web needs it
IndicThreads
 
Http2 Security Perspective
Sunil Kumar
 
Introduction to HTTP/2
Ido Flatow
 
Introduction to HTTP2
Sudarshan Pant
 
HTTP Presentation(What exactly is http).pptx
RobertDanso
 
HTTP2 in action - Piet Van Dongen - Codemotion Amsterdam 2017
Codemotion
 
HTTP/2 - Differences and Performance Improvements with HTTP
Amit Bhakay
 
Revisiting HTTP/2
Fastly
 
HTTP/2 (2017)
Christian Mäder
 
In a HTTP/2 World - DeccanRubyConf 2017
Douglas Vaz
 
HTTP/2 and QUICK protocols. Optimizing the Web stack for HTTP/2 era
peychevi
 
HTTP/2: What's new?
Piet van Dongen
 
HTTP 2.0 - Web Unleashed 2015
dmethvin
 
Revisiting HTTP/2
Fastly
 
HTTP/2 turns 3 years old // Web Performance Meetup wao.io 20180612
Avenga Germany GmbH
 
Ad

More from Ido Flatow (8)

PPTX
Google Cloud IoT Core
Ido Flatow
 
PPTX
Production Debugging War Stories
Ido Flatow
 
PPTX
Building IoT and Big Data Solutions on Azure
Ido Flatow
 
PPTX
Migrating Customers to Microsoft Azure: Lessons Learned From the Field
Ido Flatow
 
PPTX
Debugging your Way through .NET with Visual Studio 2015
Ido Flatow
 
PPTX
ASP.NET Web API and HTTP Fundamentals
Ido Flatow
 
PPTX
Caching in Windows Azure
Ido Flatow
 
PPTX
Automating Windows Azure
Ido Flatow
 
Google Cloud IoT Core
Ido Flatow
 
Production Debugging War Stories
Ido Flatow
 
Building IoT and Big Data Solutions on Azure
Ido Flatow
 
Migrating Customers to Microsoft Azure: Lessons Learned From the Field
Ido Flatow
 
Debugging your Way through .NET with Visual Studio 2015
Ido Flatow
 
ASP.NET Web API and HTTP Fundamentals
Ido Flatow
 
Caching in Windows Azure
Ido Flatow
 
Automating Windows Azure
Ido Flatow
 

Recently uploaded (20)

PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PDF
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PDF
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
PDF
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
PDF
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
PDF
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
PPTX
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
PDF
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
PDF
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PDF
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
PDF
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
PPTX
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 

Introduction to HTTP/2

Editor's Notes

  • #2: http://www.http2demo.io/ https://http2.akamai.com/demo
  • #11: Pipelining in HTTP 1.1 is mostly supported in browsers, but not in proxies
  • #17: Diagrams via Akamai’s state of the Internet statistics https://www.igvita.com/2012/07/19/latency-the-new-web-performance-bottleneck/
  • #22: https://www.maxcdn.com/one/visual-glossary/domain-sharding-2/ 2-4 domains is the optimal ratio
  • #28: TLS must support SNI, disable compression and re-negotiation, minimal key length for ephemeral key exchange
  • #38: HTTP/2 on local IIS 10
  • #46: PushPromise3.pcapng