SlideShare ist ein Scribd-Unternehmen logo
1 von 28
HTTP/2
ISLAM GAMAL
topics
HTTP Today
Why HTTP/2
How it works
Working with HTTP2
Demo
HTTP Today
 Using HTTP 1.1 since 1997 / 1999
 Connection: keep-alive
 Head of Line Blocking
 But we still use N TCP Connections per origin
 And Many Hacks because requests are evil
 Spriting of Images
 Resource Inlining
 Concatenation of files
 Domain Sharding
 CDNs
 No Header Compression
HTTP Problems
 Negotiation mechanism that allows clients and servers to elect to use HTTP 1.1, 2.0, or
potentially other non-HTTP protocols.
 Maintain high-level compatibility with HTTP 1.1 (for example with methods, status
codes, and URIs, and most header fields)
 Decrease latency to improve page load speed in web browsers by considering:
 Data compression of HTTP headers
 HTTP/2 Server Push
 Pipelining of requests
 Fixing the head-of-line blocking problem in HTTP 1.x
 Multiplexing multiple requests over a single TCP connection
 Support common existing use cases of HTTP, such as desktop web browsers, mobile
web browsers, web APIs, web servers at various scales, proxy servers, reverse proxy
servers, firewalls, and content delivery networks
2009 .. SPDY
 It came in a beautiful package
 Header Compression
 Now cookieless domains are useless
 Multiplexing
 Now we can say that sharding is BAD PRACTICE
 Priority First (Ex. Bring my JS and CSS files first)
 Server Push
 With “Server Hint”, and “RST_STREAM” for HTTP/2
Why HTTP/2
 Performance matters
 HTTP/2 reduces the impact of latency on web applications
 TLS is becoming the default
 HTTP/2 amortizes TLS costs for the entire application
 Enabling new web development
 User perceivable improvement in web site performance
 Work with today’s internet
 Remain compatible with existing content
What is HTTP/2
 Used SPDY3 as its first draft
 Main Driven by Performance
 But also includes
 Security
 Reliability
HTTP/2 vs SPDY
 Binary instead of ASCII
 Header Compression (HPACK - RFC 7541)
 Fully multiplexed - Means: Parallelism and Out of Order Req/Res
 Stream Prioritization
 1 TCP Connection  N Streams  N Frames
 Solves Head of Line Blocking
 Server Push what it thinks that the client will need (e.g., assets)
HTTP 1.x vs HTTP/2
HTTP/2 Units
Frames Streams Connections
• Flags
• Type
• Stream Identifier
• Payload
• Length
• Identifier
• State
• Priority
• Flow Control
• Flow Control
HTTP/1.1 – Request = Connection HTTP/2 – Request = Stream
…
Each request required dedicated TCP connection TCP connection can have multiple streams (requests)
Responses come in order per connection Responses can come out of order, server can optimize
Each connection requires setup + slow start No connection setup for new streams, no slow start
Application sees “connections” Streams are represented as “connections” to apps
HTTP/2 Connections and Streams
Header Compression
:path: /
accept-encoding: gzip,deflate
user-agent:
:authority:
…
Static Table
:authority: www.example.com
Dynamic Table
:method: GET
:scheme: http
:path: /
:authority: www.example.com
Lit-
Index
Name Value
(Huffman-encoded string)
 HPACK
Header Compression
 Each header is expressed as either…
 Indexed: Reference to full header in static or dynamic table
 Literal:
 Name as reference to static/dynamic table entry, or as Huffman-encoded string
 Value as Huffman-encoded string
 Indexing behavior:
 Add to dynamic table
 Don’t add to dynamic table
 NEVER add to dynamic table (supposed to be persisted through intermediaries)
HTTP/2 Frame Types
1. DATA
2. HEADERS
3. PRIORITY
4. RST_STREAM
5. SETTINGS
1. SETTINGS_HEADER_TABLE_SIZE
2. SETTINGS_ENABLE_PUSH
3. SETTINGS_MAX_CONCURRENT_STREAMS
4. SETTINGS_INITIAL_WINDOW_SIZE
5. SETTINGS_MAX_FRAME_SIZE
6. SETTINGS_MAX_HEADER_LIST_SIZE
6. PUSH_PROMISE
7. PING
8. GOAWAY
9. WINDOW_UPDATE
10. CONTINUATION
HTTP/2 GET
HTTP/2 POST Request
HTTP/2 POST Response
Request Reliability
 In HTTP no retry a request when an error occurs
 Re-Attempt: It is only possible to some server to do some processing prior to
the error which could result in undesired effects
 HTTP/2 Provides 2 mechanisms as guarantee to a client that a request has
not been processing
 GOAWAY: the highest stream number that has been processed
 REFUSED_STREAM: error code can be included in a RST_STREAM frame
Upgrade Request Anatomy
 When you don’t know if it supports HTTP/2
GET / HTTP/1.1
Host: server.example.com
Connection: Upgrade, HTTP2-Settings
Upgrade: h2c
HTTP2-Settings:
Response
HTTP/1.1 101 Switching Protocols
Connection: Upgrade
Upgrade: h2c
• “h2c” means no TLS connection
• “h2” means TLS connection [TLS-ALPN]
• Implicit acknowledgement of HTTP2-Settings
How To Upgrade
 Change Text with Binary
 HTTP2 is working over HTTP1.1
 NO HTTP without TLS(HTTPS)
 Then we have, Binary over Text
 So, Implement APLN
Upgrade Sample
HTTP/2 Adoption Rate
 Browsers: Chrome and Firefox latest versions support already
 Servers: Apache (mod_h2), jetty, Apache Traffic Server
 Services: Google, Twitter
 Proxy: Squid
 CDN
 Akamai said in the end of the 2015and
 CloudFlare when ‘nginx supports HTTP/2’
Working With HTTP/2
Working With HTTP/2
Hosting
 Hosting .NET Apps
 IIS 10 on Windows 10
 Windows Server 2016
 Ngnix
 Kestrel
 Hosting Java Apps
 Apache HTTP 2.4.17+
 Jetty 9.3+
 Tomcat 9 (still not fully supported)
 Hosting Node Apps
 Node-http2
 Node-spdy
 ExpressJS 5.0(Still has issues)
Working With HTTP/2
Server software
 Apache 2.4.12 Apache Traffic Server supports
HTTP/2.[58]
 Caddy supports HTTP/2.[59]
 Citrix NetScaler 11.x supports HTTP/2.[60]
 Sucuri Supports HTTP/2.[61]
 F5 BIG-IP Local Traffic Manager 11.6 supports
HTTP/2.[62]
 h2o was built from the ground up for HTTP/2
support.[63]
 Jetty 9.3 supports HTTP/2.[64]
 LiteSpeed Web Server 5.0 supports
HTTP/2.[65]
 Warp (Haskell web server, used by default in
Yesod) supports HTTP/2.
 Microsoft IIS supports HTTP/2 in Windows
10[66] and Windows Server 2016.
 Netty 4.1 supports HTTP/2.[67]
 nginx 1.9.5 supports HTTP/2.[68]
 node.js 5.0 supports HTTP/2.[69]
 OpenLiteSpeed 1.3.11 and 1.4.8 supports
HTTP/2.[70]
 Proxygen supports HTTP/2.
 Radware Alteon NG supports HTTP/2.[71]
 ShimmerCat was built from the ground up for
HTTP/2 support.[72]
 Vert.x 3.3 supports HTTP/2
 Wildfly 9 supports HTTP/2.
What About .NET
ASP.NET Core is an open source and cross-platform technology by Microsoft
for developing web-based applications. In .NET Framework 4.6.0 Microsoft
announced support for HTTP/2. So the .NET Framework 4.6.0 & 4.6.1 supports
HTTP/2.
Examples
 http://www.http2demo.io/
 https://http2.akamai.com/
 https://http2.golang.org/
 chrome://net-internals/
 http://caniuse.com/
Thank You!

Weitere ähnliche Inhalte

Was ist angesagt?

Apache web server
Apache web serverApache web server
Apache web serverSabiha M
 
Meeting 13. web server i
Meeting 13. web server iMeeting 13. web server i
Meeting 13. web server iSyaiful Ahdan
 
HTTP/2 Update - FOSDEM 2016
HTTP/2 Update - FOSDEM 2016HTTP/2 Update - FOSDEM 2016
HTTP/2 Update - FOSDEM 2016Daniel Stenberg
 
Ftp server configuration on cisco packet tracer
Ftp server configuration on cisco packet tracerFtp server configuration on cisco packet tracer
Ftp server configuration on cisco packet tracerprodhan999
 
APACHE WEB SERVER FOR LINUX
APACHE WEB SERVER FOR LINUXAPACHE WEB SERVER FOR LINUX
APACHE WEB SERVER FOR LINUXwebhostingguy
 
Apache web server tutorial for linux
Apache web server tutorial for linuxApache web server tutorial for linux
Apache web server tutorial for linuxSahad Sali
 
Apache server configuration & optimization
Apache server configuration & optimizationApache server configuration & optimization
Apache server configuration & optimizationGokul Muralidharan
 
transfer protocols,ftp,smtp,pop,imap
transfer protocols,ftp,smtp,pop,imaptransfer protocols,ftp,smtp,pop,imap
transfer protocols,ftp,smtp,pop,imapAKSHIT KOHLI
 
Apache Web Server Architecture Chaitanya Kulkarni
Apache Web Server Architecture Chaitanya KulkarniApache Web Server Architecture Chaitanya Kulkarni
Apache Web Server Architecture Chaitanya Kulkarniwebhostingguy
 
HyperText Transfer Protocol (HTTP)
HyperText Transfer Protocol (HTTP)HyperText Transfer Protocol (HTTP)
HyperText Transfer Protocol (HTTP)Gurjot Singh
 
Configuring the Apache Web Server
Configuring the Apache Web ServerConfiguring the Apache Web Server
Configuring the Apache Web Serverwebhostingguy
 
Understanding the Web through HTTP
Understanding the Web through HTTPUnderstanding the Web through HTTP
Understanding the Web through HTTPOlivia Brundage
 
Composite Source With Mule ESB
Composite Source With Mule ESBComposite Source With Mule ESB
Composite Source With Mule ESBJitendra Bafna
 

Was ist angesagt? (20)

Apache web server
Apache web serverApache web server
Apache web server
 
Apache ppt
Apache pptApache ppt
Apache ppt
 
Meeting 13. web server i
Meeting 13. web server iMeeting 13. web server i
Meeting 13. web server i
 
HTTP/2
HTTP/2HTTP/2
HTTP/2
 
HTTP/2 Update - FOSDEM 2016
HTTP/2 Update - FOSDEM 2016HTTP/2 Update - FOSDEM 2016
HTTP/2 Update - FOSDEM 2016
 
Ftp server configuration on cisco packet tracer
Ftp server configuration on cisco packet tracerFtp server configuration on cisco packet tracer
Ftp server configuration on cisco packet tracer
 
Http mule
Http muleHttp mule
Http mule
 
APACHE WEB SERVER FOR LINUX
APACHE WEB SERVER FOR LINUXAPACHE WEB SERVER FOR LINUX
APACHE WEB SERVER FOR LINUX
 
Apache web server tutorial for linux
Apache web server tutorial for linuxApache web server tutorial for linux
Apache web server tutorial for linux
 
Apache web server
Apache web serverApache web server
Apache web server
 
Apache server configuration & optimization
Apache server configuration & optimizationApache server configuration & optimization
Apache server configuration & optimization
 
transfer protocols,ftp,smtp,pop,imap
transfer protocols,ftp,smtp,pop,imaptransfer protocols,ftp,smtp,pop,imap
transfer protocols,ftp,smtp,pop,imap
 
HTTP Presentation
HTTP Presentation HTTP Presentation
HTTP Presentation
 
Apache Web Server Architecture Chaitanya Kulkarni
Apache Web Server Architecture Chaitanya KulkarniApache Web Server Architecture Chaitanya Kulkarni
Apache Web Server Architecture Chaitanya Kulkarni
 
HyperText Transfer Protocol (HTTP)
HyperText Transfer Protocol (HTTP)HyperText Transfer Protocol (HTTP)
HyperText Transfer Protocol (HTTP)
 
Configuring the Apache Web Server
Configuring the Apache Web ServerConfiguring the Apache Web Server
Configuring the Apache Web Server
 
Understanding the Web through HTTP
Understanding the Web through HTTPUnderstanding the Web through HTTP
Understanding the Web through HTTP
 
Composite Source With Mule ESB
Composite Source With Mule ESBComposite Source With Mule ESB
Composite Source With Mule ESB
 
Apache Ppt
Apache PptApache Ppt
Apache Ppt
 
Apache ppt
Apache pptApache ppt
Apache ppt
 

Ähnlich wie Http2

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 Introduction
HTTP/2 IntroductionHTTP/2 Introduction
HTTP/2 IntroductionWalter Liu
 
Introduction to gRPC - Mete Atamel - Codemotion Rome 2017
Introduction to gRPC - Mete Atamel - Codemotion Rome 2017Introduction to gRPC - Mete Atamel - Codemotion Rome 2017
Introduction to gRPC - Mete Atamel - Codemotion Rome 2017Codemotion
 
Introduction to gRPC: A general RPC framework that puts mobile and HTTP/2 fir...
Introduction to gRPC: A general RPC framework that puts mobile and HTTP/2 fir...Introduction to gRPC: A general RPC framework that puts mobile and HTTP/2 fir...
Introduction to gRPC: A general RPC framework that puts mobile and HTTP/2 fir...Codemotion
 
Http2 is here! And why the web needs it
Http2 is here! And why the web needs itHttp2 is here! And why the web needs it
Http2 is here! And why the web needs itIndicThreads
 
HTTP/2 for Developers
HTTP/2 for DevelopersHTTP/2 for Developers
HTTP/2 for DevelopersSvetlin Nakov
 
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
 
Under the Covers with the Web
Under the Covers with the WebUnder the Covers with the Web
Under the Covers with the WebTrevor Lohrbeer
 
Next generation web protocols
Next generation web protocolsNext generation web protocols
Next generation web protocolsDaniel Austin
 
Revisiting HTTP/2
Revisiting HTTP/2Revisiting HTTP/2
Revisiting HTTP/2Fastly
 
Проксирование HTTP-запросов web-акселератором / Александр Крижановский (Tempe...
Проксирование HTTP-запросов web-акселератором / Александр Крижановский (Tempe...Проксирование HTTP-запросов web-акселератором / Александр Крижановский (Tempe...
Проксирование HTTP-запросов web-акселератором / Александр Крижановский (Tempe...Ontico
 
Introduction to HTTP/2
Introduction to HTTP/2Introduction to HTTP/2
Introduction to HTTP/2Ido Flatow
 
Java EE 8: What Servlet 4.0 and HTTP/2 mean to you
Java EE 8: What Servlet 4.0 and HTTP/2 mean to youJava EE 8: What Servlet 4.0 and HTTP/2 mean to you
Java EE 8: What Servlet 4.0 and HTTP/2 mean to youAlex Theedom
 
HTML5, HTTP2, and You 1.1
HTML5, HTTP2, and You 1.1HTML5, HTTP2, and You 1.1
HTML5, HTTP2, and You 1.1Daniel Austin
 
Taking a Quantum Leap with Html 5 WebSocket
Taking a Quantum Leap with Html 5 WebSocketTaking a Quantum Leap with Html 5 WebSocket
Taking a Quantum Leap with Html 5 WebSocketShahriar Hyder
 

Ähnlich wie Http2 (20)

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 Introduction
HTTP/2 IntroductionHTTP/2 Introduction
HTTP/2 Introduction
 
Introduction to gRPC - Mete Atamel - Codemotion Rome 2017
Introduction to gRPC - Mete Atamel - Codemotion Rome 2017Introduction to gRPC - Mete Atamel - Codemotion Rome 2017
Introduction to gRPC - Mete Atamel - Codemotion Rome 2017
 
Introduction to gRPC: A general RPC framework that puts mobile and HTTP/2 fir...
Introduction to gRPC: A general RPC framework that puts mobile and HTTP/2 fir...Introduction to gRPC: A general RPC framework that puts mobile and HTTP/2 fir...
Introduction to gRPC: A general RPC framework that puts mobile and HTTP/2 fir...
 
Http/2
Http/2Http/2
Http/2
 
Http2 is here! And why the web needs it
Http2 is here! And why the web needs itHttp2 is here! And why the web needs it
Http2 is here! And why the web needs it
 
HTTP/2 for Developers
HTTP/2 for DevelopersHTTP/2 for Developers
HTTP/2 for Developers
 
Http2 kotlin
Http2   kotlinHttp2   kotlin
Http2 kotlin
 
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 2
Http 2Http 2
Http 2
 
Under the Covers with the Web
Under the Covers with the WebUnder the Covers with the Web
Under the Covers with the Web
 
Next generation web protocols
Next generation web protocolsNext generation web protocols
Next generation web protocols
 
Revisiting HTTP/2
Revisiting HTTP/2Revisiting HTTP/2
Revisiting HTTP/2
 
Проксирование HTTP-запросов web-акселератором / Александр Крижановский (Tempe...
Проксирование HTTP-запросов web-акселератором / Александр Крижановский (Tempe...Проксирование HTTP-запросов web-акселератором / Александр Крижановский (Tempe...
Проксирование HTTP-запросов web-акселератором / Александр Крижановский (Tempe...
 
5-WebServers.ppt
5-WebServers.ppt5-WebServers.ppt
5-WebServers.ppt
 
Introduction to HTTP/2
Introduction to HTTP/2Introduction to HTTP/2
Introduction to HTTP/2
 
Java EE 8: What Servlet 4.0 and HTTP/2 mean to you
Java EE 8: What Servlet 4.0 and HTTP/2 mean to youJava EE 8: What Servlet 4.0 and HTTP/2 mean to you
Java EE 8: What Servlet 4.0 and HTTP/2 mean to you
 
HTTP
HTTPHTTP
HTTP
 
HTML5, HTTP2, and You 1.1
HTML5, HTTP2, and You 1.1HTML5, HTTP2, and You 1.1
HTML5, HTTP2, and You 1.1
 
Taking a Quantum Leap with Html 5 WebSocket
Taking a Quantum Leap with Html 5 WebSocketTaking a Quantum Leap with Html 5 WebSocket
Taking a Quantum Leap with Html 5 WebSocket
 

Kürzlich hochgeladen

[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
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
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
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
 
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
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
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
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 

Kürzlich hochgeladen (20)

[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
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
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.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
 
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
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
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...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 

Http2

  • 2. topics HTTP Today Why HTTP/2 How it works Working with HTTP2 Demo
  • 3. HTTP Today  Using HTTP 1.1 since 1997 / 1999  Connection: keep-alive  Head of Line Blocking  But we still use N TCP Connections per origin  And Many Hacks because requests are evil  Spriting of Images  Resource Inlining  Concatenation of files  Domain Sharding  CDNs  No Header Compression
  • 4. HTTP Problems  Negotiation mechanism that allows clients and servers to elect to use HTTP 1.1, 2.0, or potentially other non-HTTP protocols.  Maintain high-level compatibility with HTTP 1.1 (for example with methods, status codes, and URIs, and most header fields)  Decrease latency to improve page load speed in web browsers by considering:  Data compression of HTTP headers  HTTP/2 Server Push  Pipelining of requests  Fixing the head-of-line blocking problem in HTTP 1.x  Multiplexing multiple requests over a single TCP connection  Support common existing use cases of HTTP, such as desktop web browsers, mobile web browsers, web APIs, web servers at various scales, proxy servers, reverse proxy servers, firewalls, and content delivery networks
  • 5. 2009 .. SPDY  It came in a beautiful package  Header Compression  Now cookieless domains are useless  Multiplexing  Now we can say that sharding is BAD PRACTICE  Priority First (Ex. Bring my JS and CSS files first)  Server Push  With “Server Hint”, and “RST_STREAM” for HTTP/2
  • 6. Why HTTP/2  Performance matters  HTTP/2 reduces the impact of latency on web applications  TLS is becoming the default  HTTP/2 amortizes TLS costs for the entire application  Enabling new web development  User perceivable improvement in web site performance  Work with today’s internet  Remain compatible with existing content
  • 7. What is HTTP/2  Used SPDY3 as its first draft  Main Driven by Performance  But also includes  Security  Reliability
  • 8. HTTP/2 vs SPDY  Binary instead of ASCII  Header Compression (HPACK - RFC 7541)  Fully multiplexed - Means: Parallelism and Out of Order Req/Res  Stream Prioritization  1 TCP Connection  N Streams  N Frames  Solves Head of Line Blocking  Server Push what it thinks that the client will need (e.g., assets)
  • 9. HTTP 1.x vs HTTP/2
  • 10. HTTP/2 Units Frames Streams Connections • Flags • Type • Stream Identifier • Payload • Length • Identifier • State • Priority • Flow Control • Flow Control
  • 11. HTTP/1.1 – Request = Connection HTTP/2 – Request = Stream … Each request required dedicated TCP connection TCP connection can have multiple streams (requests) Responses come in order per connection Responses can come out of order, server can optimize Each connection requires setup + slow start No connection setup for new streams, no slow start Application sees “connections” Streams are represented as “connections” to apps HTTP/2 Connections and Streams
  • 12. Header Compression :path: / accept-encoding: gzip,deflate user-agent: :authority: … Static Table :authority: www.example.com Dynamic Table :method: GET :scheme: http :path: / :authority: www.example.com Lit- Index Name Value (Huffman-encoded string)  HPACK
  • 13. Header Compression  Each header is expressed as either…  Indexed: Reference to full header in static or dynamic table  Literal:  Name as reference to static/dynamic table entry, or as Huffman-encoded string  Value as Huffman-encoded string  Indexing behavior:  Add to dynamic table  Don’t add to dynamic table  NEVER add to dynamic table (supposed to be persisted through intermediaries)
  • 14. HTTP/2 Frame Types 1. DATA 2. HEADERS 3. PRIORITY 4. RST_STREAM 5. SETTINGS 1. SETTINGS_HEADER_TABLE_SIZE 2. SETTINGS_ENABLE_PUSH 3. SETTINGS_MAX_CONCURRENT_STREAMS 4. SETTINGS_INITIAL_WINDOW_SIZE 5. SETTINGS_MAX_FRAME_SIZE 6. SETTINGS_MAX_HEADER_LIST_SIZE 6. PUSH_PROMISE 7. PING 8. GOAWAY 9. WINDOW_UPDATE 10. CONTINUATION
  • 18. Request Reliability  In HTTP no retry a request when an error occurs  Re-Attempt: It is only possible to some server to do some processing prior to the error which could result in undesired effects  HTTP/2 Provides 2 mechanisms as guarantee to a client that a request has not been processing  GOAWAY: the highest stream number that has been processed  REFUSED_STREAM: error code can be included in a RST_STREAM frame
  • 19. Upgrade Request Anatomy  When you don’t know if it supports HTTP/2 GET / HTTP/1.1 Host: server.example.com Connection: Upgrade, HTTP2-Settings Upgrade: h2c HTTP2-Settings: Response HTTP/1.1 101 Switching Protocols Connection: Upgrade Upgrade: h2c • “h2c” means no TLS connection • “h2” means TLS connection [TLS-ALPN] • Implicit acknowledgement of HTTP2-Settings
  • 20. How To Upgrade  Change Text with Binary  HTTP2 is working over HTTP1.1  NO HTTP without TLS(HTTPS)  Then we have, Binary over Text  So, Implement APLN
  • 22. HTTP/2 Adoption Rate  Browsers: Chrome and Firefox latest versions support already  Servers: Apache (mod_h2), jetty, Apache Traffic Server  Services: Google, Twitter  Proxy: Squid  CDN  Akamai said in the end of the 2015and  CloudFlare when ‘nginx supports HTTP/2’
  • 24. Working With HTTP/2 Hosting  Hosting .NET Apps  IIS 10 on Windows 10  Windows Server 2016  Ngnix  Kestrel  Hosting Java Apps  Apache HTTP 2.4.17+  Jetty 9.3+  Tomcat 9 (still not fully supported)  Hosting Node Apps  Node-http2  Node-spdy  ExpressJS 5.0(Still has issues)
  • 25. Working With HTTP/2 Server software  Apache 2.4.12 Apache Traffic Server supports HTTP/2.[58]  Caddy supports HTTP/2.[59]  Citrix NetScaler 11.x supports HTTP/2.[60]  Sucuri Supports HTTP/2.[61]  F5 BIG-IP Local Traffic Manager 11.6 supports HTTP/2.[62]  h2o was built from the ground up for HTTP/2 support.[63]  Jetty 9.3 supports HTTP/2.[64]  LiteSpeed Web Server 5.0 supports HTTP/2.[65]  Warp (Haskell web server, used by default in Yesod) supports HTTP/2.  Microsoft IIS supports HTTP/2 in Windows 10[66] and Windows Server 2016.  Netty 4.1 supports HTTP/2.[67]  nginx 1.9.5 supports HTTP/2.[68]  node.js 5.0 supports HTTP/2.[69]  OpenLiteSpeed 1.3.11 and 1.4.8 supports HTTP/2.[70]  Proxygen supports HTTP/2.  Radware Alteon NG supports HTTP/2.[71]  ShimmerCat was built from the ground up for HTTP/2 support.[72]  Vert.x 3.3 supports HTTP/2  Wildfly 9 supports HTTP/2.
  • 26. What About .NET ASP.NET Core is an open source and cross-platform technology by Microsoft for developing web-based applications. In .NET Framework 4.6.0 Microsoft announced support for HTTP/2. So the .NET Framework 4.6.0 & 4.6.1 supports HTTP/2.
  • 27. Examples  http://www.http2demo.io/  https://http2.akamai.com/  https://http2.golang.org/  chrome://net-internals/  http://caniuse.com/

Hinweis der Redaktion

  1. Head of Line Blocking HOL: occurs when a line of packets is held up by the first packet, for example in input buffered network switches, out-of-order delivery, and multiple requests in HTTP pipelining. N: usually 6 connections Reduce latency Reduce total number of TCP connections i.e., reduce number of open sockets Better web security. Maintain compatibility with HTTP/1.1 clients and server. Maintain same usability as HTTP/1.1 i.e., can be used wherever we use HTTP/1.1 Better web security.
  2. Multiplexing: Multiple asynchronous HTTP requests over a single TCP connection. Server Push: Multiple responses for single request Header Compression: Compress HTTP headers along with content. Request prioritization: While making multiple HTTP requests to a same domain they can be prioritized. Binary Protocol: HTTP/2 is binary protocol whereas HTTP/1.1 is text protocol.
  3. HTTP/2 was developed by the IETF’s HTTP Working Group, which maintains the HTTP protocol. It’s made up of a number of HTTP implementers, users, network operators and HTTP experts. Binary Instead of Text TLS: Transport Layer Security (TLS) and its predecessor, Secure Sockets Layer (SSL), both frequently referred to as "SSL", are cryptographic protocols that provide communications security over a computer network.
  4. Server Push: HTTP/2 Server Push is a modern, more efficient equivalent to the common practice of inlining assets in HTTP/1.1. Inlining is when you convert your external JavaScript and CSS resources into <script> and <style> elements in your HTML page. The goal is to minimize the number of HTTP requests between the browser and the server. Server Push accomplishes the same thing, but allows assets to be cached independently so that you’re not sending the same inline CSS styles with every single web page your visitors request. TCP/IP: TCP/IP (Transmission Control Protocol/Internet Protocol) is the basic communication language or protocol of the Internet. It can also be used as a communications protocol in a private network (either an intranet or an extranet). When you are set up with direct access to the Internet, your computer is provided with a copy of the TCP/IP program just as every other computer that you may send messages to or get information from also has a copy of TCP/IP.
  5. Why is HTTP/2 binary? Binary protocols are more efficient to parse, more compact “on the wire”, and most importantly, they are much less error-prone, compared to textual protocols like HTTP/1.x, because they often have a number of affordances to “help” with things like whitespace handling, capitalization, line endings, blank lines and so on.
  6. Inner Structure of Frames/Streams/Connections
  7. To remove the redundant headers, Huffman Coding with static and dynamic tables(Create index address space) Instead of send the all header we only send indexes to lookup the corresponding key and value
  8. HPack Behavior, How does it works
  9. again, followed by zero or more CONTINUATION frames
  10. RST_STREAM reset stream
  11. Application Layer Protocol Negotiation TLS: point to point connection and send encrypted information