SlideShare a Scribd company logo
HTTP/2
The (not so) new Language of the Web
Binary Protocol Features
● Binary framing
● Streams
● Request & response multiplexing
● Stream prioritization
● Single connection per origin
● Flow control
● Server Push
● Header Compression
The Final HTTP / 2 RFC(s)
● Hypertext Transfer Protocol version 2 - RFC7540
○ Describes the new internals of the protocol
○ Designed for low latency
● HPACK - Header Compression for HTTP/2 -
RFC7541
● Published in May 2015
Implementations
Apache 2.4.17
F5 (upcoming release)
Jetty ~7.6.13
IIS Server 2016
Nginx 1.9.5
Akamai ~2015
cURL 7.38.0
WireShark 1.11
IE 11 (Windows 10 only)
Edge 2
Chrome 41
Firefox 36
Current Browser Implementation
Binary Framing
● Similar to TCP packets
● Frames contain distinct
data (headers, payload,
etc)
● Frames are indexed
● Fixed length
Length
Flags
Identifier
Payload
Streams
● Bidirectional flow of bytes within a connection
● May carry one or more messages
● Single TCP connection can carry several streams
● Have identifiers
● Can be prioritized
Streams
by Ilya Grigorik
Capable of Multiplexing
● Frames in different streams can be interleaved
● Solves Head-of-Line blocking
by Ilya Grigorik
Header Compression
● Original SPDY compression was vulnerable
● HPACK used in HTTP/2
● HPACK uses 2 compression techniques
○ Huffman compression
○ Client & Server must keep indexed list of
previously seen headers
Header Compression
by Ilya Grigorik
Server Push
● Server knows content needed
● Server sends a PUSH_PROMISE frame
● Client can decide to accept frame or reset it
● Currently still experimental
TLS Only
● Not mandated by the standard
● Chrome & Firefox stated they will not support
without TLS
● Performance issues balanced in single
connection scenario
● http://letsencrypt.org
Transition Plan
● Know your application as it is
● Which strategy is best for your customers
● Optimizations you might need to change
● Benchmark before & after every change
● Deploy
Transition Plan
1. Internal / Backend APIs
2. Public APIs
3. CDNs
4. Front end applications
5. Load balancers & other proxies
Transition Strategies
● Sit and wait
● Adopt HTTP/2 completely
● Hybrid approach
Resources
● http://http2.github.io
● High Performance Browser Networking -
http://bit.ly/1PWhBQ3
● Google HTTP/2 podcasts - http://bit.ly/1QgUrUP
● http://caniuse.com/#feat=http2
● HTTP/2 is here, let’s optimize -
http://bit.ly/20KJq5I
Thank You!

More Related Content

What's hot

Introducing HTTP/2
Introducing HTTP/2Introducing HTTP/2
Introducing HTTP/2
Ido Flatow
 
SPDY and HTTP/2
SPDY and HTTP/2SPDY and HTTP/2
SPDY and HTTP/2
Fabian Frank
 
Firewall and NAT Fundamentals - pfSense Hangout January 2014
Firewall and NAT Fundamentals - pfSense Hangout January 2014Firewall and NAT Fundamentals - pfSense Hangout January 2014
Firewall and NAT Fundamentals - pfSense Hangout January 2014
Netgate
 
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
APNIC
 
NATS in action - A Real time Microservices Architecture handled by NATS
NATS in action - A Real time Microservices Architecture handled by NATSNATS in action - A Real time Microservices Architecture handled by NATS
NATS in action - A Real time Microservices Architecture handled by NATSRaül Pérez
 
Generating Unified APIs with Protocol Buffers and gRPC
Generating Unified APIs with Protocol Buffers and gRPCGenerating Unified APIs with Protocol Buffers and gRPC
Generating Unified APIs with Protocol Buffers and gRPC
C4Media
 
Basics of NGINX
Basics of NGINXBasics of NGINX
Basics of NGINX
Squash Apps Pvt Ltd
 
Go-ing a long way with Rails
Go-ing a long way with RailsGo-ing a long way with Rails
Go-ing a long way with Rails
Shweta Kale
 
In a HTTP/2 World - DeccanRubyConf 2017
In a HTTP/2 World - DeccanRubyConf 2017In a HTTP/2 World - DeccanRubyConf 2017
In a HTTP/2 World - DeccanRubyConf 2017
Douglas Vaz
 
gRPC and Microservices
gRPC and MicroservicesgRPC and Microservices
gRPC and Microservices
Jonathan Gomez
 
What HTTP/2.0 Will Do For You
What HTTP/2.0 Will Do For YouWhat HTTP/2.0 Will Do For You
What HTTP/2.0 Will Do For You
Mark Nottingham
 
GeoDistributed datacenter: the DNS way
GeoDistributed datacenter: the DNS wayGeoDistributed datacenter: the DNS way
GeoDistributed datacenter: the DNS way
Moyd.co LTD
 
Reactive micro services using RSocket
Reactive micro services using RSocketReactive micro services using RSocket
Reactive micro services using RSocket
tothepointIT
 
Power-up services with gRPC
Power-up services with gRPCPower-up services with gRPC
Power-up services with gRPC
The Software House
 
REST vs gRPC: Battle of API's
REST vs gRPC: Battle of API'sREST vs gRPC: Battle of API's
REST vs gRPC: Battle of API's
Luram Archanjo
 
RSocket — new Reactive cross-network Protocol? Олег Докука и Игорь Лозинский
RSocket — new Reactive cross-network Protocol? Олег Докука и Игорь Лозинский RSocket — new Reactive cross-network Protocol? Олег Докука и Игорь Лозинский
RSocket — new Reactive cross-network Protocol? Олег Докука и Игорь Лозинский
Sigma Software
 
Introduction to gRPC
Introduction to gRPCIntroduction to gRPC
Introduction to gRPC
Chandresh Pancholi
 
Better performances with HTTP/2
Better performances with HTTP/2Better performances with HTTP/2
Better performances with HTTP/2
Thomas Segismont
 
Tomcat next
Tomcat nextTomcat next
Tomcat next
Jean-Frederic Clere
 

What's hot (20)

Introducing HTTP/2
Introducing HTTP/2Introducing HTTP/2
Introducing HTTP/2
 
SPDY and HTTP/2
SPDY and HTTP/2SPDY and HTTP/2
SPDY and HTTP/2
 
Firewall and NAT Fundamentals - pfSense Hangout January 2014
Firewall and NAT Fundamentals - pfSense Hangout January 2014Firewall and NAT Fundamentals - pfSense Hangout January 2014
Firewall and NAT Fundamentals - pfSense Hangout January 2014
 
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
 
NATS in action - A Real time Microservices Architecture handled by NATS
NATS in action - A Real time Microservices Architecture handled by NATSNATS in action - A Real time Microservices Architecture handled by NATS
NATS in action - A Real time Microservices Architecture handled by NATS
 
Generating Unified APIs with Protocol Buffers and gRPC
Generating Unified APIs with Protocol Buffers and gRPCGenerating Unified APIs with Protocol Buffers and gRPC
Generating Unified APIs with Protocol Buffers and gRPC
 
Basics of NGINX
Basics of NGINXBasics of NGINX
Basics of NGINX
 
Go-ing a long way with Rails
Go-ing a long way with RailsGo-ing a long way with Rails
Go-ing a long way with Rails
 
In a HTTP/2 World - DeccanRubyConf 2017
In a HTTP/2 World - DeccanRubyConf 2017In a HTTP/2 World - DeccanRubyConf 2017
In a HTTP/2 World - DeccanRubyConf 2017
 
gRPC and Microservices
gRPC and MicroservicesgRPC and Microservices
gRPC and Microservices
 
What HTTP/2.0 Will Do For You
What HTTP/2.0 Will Do For YouWhat HTTP/2.0 Will Do For You
What HTTP/2.0 Will Do For You
 
GeoDistributed datacenter: the DNS way
GeoDistributed datacenter: the DNS wayGeoDistributed datacenter: the DNS way
GeoDistributed datacenter: the DNS way
 
Reactive micro services using RSocket
Reactive micro services using RSocketReactive micro services using RSocket
Reactive micro services using RSocket
 
Power-up services with gRPC
Power-up services with gRPCPower-up services with gRPC
Power-up services with gRPC
 
REST vs gRPC: Battle of API's
REST vs gRPC: Battle of API'sREST vs gRPC: Battle of API's
REST vs gRPC: Battle of API's
 
Irc how to sept 2012
Irc how to   sept 2012Irc how to   sept 2012
Irc how to sept 2012
 
RSocket — new Reactive cross-network Protocol? Олег Докука и Игорь Лозинский
RSocket — new Reactive cross-network Protocol? Олег Докука и Игорь Лозинский RSocket — new Reactive cross-network Protocol? Олег Докука и Игорь Лозинский
RSocket — new Reactive cross-network Protocol? Олег Докука и Игорь Лозинский
 
Introduction to gRPC
Introduction to gRPCIntroduction to gRPC
Introduction to gRPC
 
Better performances with HTTP/2
Better performances with HTTP/2Better performances with HTTP/2
Better performances with HTTP/2
 
Tomcat next
Tomcat nextTomcat next
Tomcat next
 

Viewers also liked

Креатив и креативные технологии в бизнесе
Креатив и креативные технологии в бизнесеКреатив и креативные технологии в бизнесе
Креатив и креативные технологии в бизнесе
Grushaconf
 
תרמיקה - מצגת חברה
תרמיקה - מצגת חברהתרמיקה - מצגת חברה
תרמיקה - מצגת חברה
termikaprojects
 
tarea n° 1
 tarea n° 1 tarea n° 1
tarea n° 1
vania ccalla
 
6.4 advertising and competition
6.4 advertising and competition6.4 advertising and competition
6.4 advertising and competition
Nozaki Simon
 
Эмоциональный маркетинг: поделись улыбкою своей, и она к тебе не раз ещё верн...
Эмоциональный маркетинг: поделись улыбкою своей, и она к тебе не раз ещё верн...Эмоциональный маркетинг: поделись улыбкою своей, и она к тебе не раз ещё верн...
Эмоциональный маркетинг: поделись улыбкою своей, и она к тебе не раз ещё верн...
Grushaconf
 
Parimet e menaxhimit të hiperkalemisë
Parimet e menaxhimit të hiperkalemisëParimet e menaxhimit të hiperkalemisë
Parimet e menaxhimit të hiperkalemisë
Dukagjin Zeqiraj
 
Parimet e menaxhimit të hiperkalemisë
Parimet e menaxhimit të hiperkalemisëParimet e menaxhimit të hiperkalemisë
Parimet e menaxhimit të hiperkalemisë
Dukagjin Zeqiraj
 
Libro savia el barroco pantallazos libro
Libro savia el barroco pantallazos libroLibro savia el barroco pantallazos libro
Libro savia el barroco pantallazos libro
Lauritacant
 
Hui 5.1 grecia diciembre 2015
Hui 5.1 grecia diciembre 2015Hui 5.1 grecia diciembre 2015
Hui 5.1 grecia diciembre 2015
Aurelio Mendoza Garduño
 
Kuliah 5 multipleks
Kuliah 5 multipleksKuliah 5 multipleks
Kuliah 5 multipleks
sitelunhas
 
Андрей Себрант
Андрей СебрантАндрей Себрант
Андрей Себрант
CodeFest
 
La primera guerra mundial. power point
La primera guerra mundial. power pointLa primera guerra mundial. power point
La primera guerra mundial. power point
María José Marín
 

Viewers also liked (12)

Креатив и креативные технологии в бизнесе
Креатив и креативные технологии в бизнесеКреатив и креативные технологии в бизнесе
Креатив и креативные технологии в бизнесе
 
תרמיקה - מצגת חברה
תרמיקה - מצגת חברהתרמיקה - מצגת חברה
תרמיקה - מצגת חברה
 
tarea n° 1
 tarea n° 1 tarea n° 1
tarea n° 1
 
6.4 advertising and competition
6.4 advertising and competition6.4 advertising and competition
6.4 advertising and competition
 
Эмоциональный маркетинг: поделись улыбкою своей, и она к тебе не раз ещё верн...
Эмоциональный маркетинг: поделись улыбкою своей, и она к тебе не раз ещё верн...Эмоциональный маркетинг: поделись улыбкою своей, и она к тебе не раз ещё верн...
Эмоциональный маркетинг: поделись улыбкою своей, и она к тебе не раз ещё верн...
 
Parimet e menaxhimit të hiperkalemisë
Parimet e menaxhimit të hiperkalemisëParimet e menaxhimit të hiperkalemisë
Parimet e menaxhimit të hiperkalemisë
 
Parimet e menaxhimit të hiperkalemisë
Parimet e menaxhimit të hiperkalemisëParimet e menaxhimit të hiperkalemisë
Parimet e menaxhimit të hiperkalemisë
 
Libro savia el barroco pantallazos libro
Libro savia el barroco pantallazos libroLibro savia el barroco pantallazos libro
Libro savia el barroco pantallazos libro
 
Hui 5.1 grecia diciembre 2015
Hui 5.1 grecia diciembre 2015Hui 5.1 grecia diciembre 2015
Hui 5.1 grecia diciembre 2015
 
Kuliah 5 multipleks
Kuliah 5 multipleksKuliah 5 multipleks
Kuliah 5 multipleks
 
Андрей Себрант
Андрей СебрантАндрей Себрант
Андрей Себрант
 
La primera guerra mundial. power point
La primera guerra mundial. power pointLa primera guerra mundial. power point
La primera guerra mundial. power point
 

Similar to Http/2 lightning

Http/2
Http/2Http/2
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
Red Hat
 
03_clere-HTTP2 HTTP3 the State of the Art in Our Servers.pdf
03_clere-HTTP2 HTTP3 the State of the Art in Our Servers.pdf03_clere-HTTP2 HTTP3 the State of the Art in Our Servers.pdf
03_clere-HTTP2 HTTP3 the State of the Art in Our Servers.pdf
Jean-Frederic Clere
 
Introduction to HTTP/2
Introduction to HTTP/2Introduction to HTTP/2
Introduction to HTTP/2
Ido Flatow
 
Introduction to HTTP/2
Introduction to HTTP/2Introduction to HTTP/2
Introduction to HTTP/2
Ido Flatow
 
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
APNIC
 
Varnish SSL / TLS
Varnish SSL / TLSVarnish SSL / TLS
Varnish SSL / TLS
Varnish Software
 
NGINX: HTTP/2 Server Push and gRPC
NGINX: HTTP/2 Server Push and gRPCNGINX: HTTP/2 Server Push and gRPC
NGINX: HTTP/2 Server Push and gRPC
NGINX, Inc.
 
Http2 Security Perspective
Http2 Security PerspectiveHttp2 Security Perspective
Http2 Security Perspective
Sunil Kumar
 
HTTPプロクシライブラリproxy2の設計と実装
HTTPプロクシライブラリproxy2の設計と実装HTTPプロクシライブラリproxy2の設計と実装
HTTPプロクシライブラリproxy2の設計と実装
inaz2
 
What's New in HTTP/2
What's New in HTTP/2What's New in HTTP/2
What's New in HTTP/2
NGINX, Inc.
 
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
peychevi
 
Attacking http2 implementations (1)
Attacking http2 implementations (1)Attacking http2 implementations (1)
Attacking http2 implementations (1)
John Villamil
 
NGINX: HTTP/2 Server Push and gRPC – EMEA
NGINX: HTTP/2 Server Push and gRPC – EMEANGINX: HTTP/2 Server Push and gRPC – EMEA
NGINX: HTTP/2 Server Push and gRPC – EMEA
NGINX, Inc.
 
Stuart Larsen, attacking http2implementations-rev1
Stuart Larsen, attacking http2implementations-rev1Stuart Larsen, attacking http2implementations-rev1
Stuart Larsen, attacking http2implementations-rev1
PacSecJP
 
GRPC.pptx
GRPC.pptxGRPC.pptx
GRPC.pptx
Afzal Juneja
 
HTTP
HTTPHTTP
HTTP/2 Introduction
HTTP/2 IntroductionHTTP/2 Introduction
HTTP/2 Introduction
Walter Liu
 
Http2
Http2Http2
Http 2: Should I care?
Http 2: Should I care?Http 2: Should I care?
Http 2: Should I care?
LivePerson
 

Similar to Http/2 lightning (20)

Http/2
Http/2Http/2
Http/2
 
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
 
03_clere-HTTP2 HTTP3 the State of the Art in Our Servers.pdf
03_clere-HTTP2 HTTP3 the State of the Art in Our Servers.pdf03_clere-HTTP2 HTTP3 the State of the Art in Our Servers.pdf
03_clere-HTTP2 HTTP3 the State of the Art in Our Servers.pdf
 
Introduction to HTTP/2
Introduction to HTTP/2Introduction to HTTP/2
Introduction to HTTP/2
 
Introduction to HTTP/2
Introduction to HTTP/2Introduction to HTTP/2
Introduction to HTTP/2
 
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
 
Varnish SSL / TLS
Varnish SSL / TLSVarnish SSL / TLS
Varnish SSL / TLS
 
NGINX: HTTP/2 Server Push and gRPC
NGINX: HTTP/2 Server Push and gRPCNGINX: HTTP/2 Server Push and gRPC
NGINX: HTTP/2 Server Push and gRPC
 
Http2 Security Perspective
Http2 Security PerspectiveHttp2 Security Perspective
Http2 Security Perspective
 
HTTPプロクシライブラリproxy2の設計と実装
HTTPプロクシライブラリproxy2の設計と実装HTTPプロクシライブラリproxy2の設計と実装
HTTPプロクシライブラリproxy2の設計と実装
 
What's New in HTTP/2
What's New in HTTP/2What's New in HTTP/2
What's New in HTTP/2
 
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
 
Attacking http2 implementations (1)
Attacking http2 implementations (1)Attacking http2 implementations (1)
Attacking http2 implementations (1)
 
NGINX: HTTP/2 Server Push and gRPC – EMEA
NGINX: HTTP/2 Server Push and gRPC – EMEANGINX: HTTP/2 Server Push and gRPC – EMEA
NGINX: HTTP/2 Server Push and gRPC – EMEA
 
Stuart Larsen, attacking http2implementations-rev1
Stuart Larsen, attacking http2implementations-rev1Stuart Larsen, attacking http2implementations-rev1
Stuart Larsen, attacking http2implementations-rev1
 
GRPC.pptx
GRPC.pptxGRPC.pptx
GRPC.pptx
 
HTTP
HTTPHTTP
HTTP
 
HTTP/2 Introduction
HTTP/2 IntroductionHTTP/2 Introduction
HTTP/2 Introduction
 
Http2
Http2Http2
Http2
 
Http 2: Should I care?
Http 2: Should I care?Http 2: Should I care?
Http 2: Should I care?
 

Recently uploaded

DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
Vlad Stirbu
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.
ViralQR
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Peter Spielvogel
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 

Recently uploaded (20)

DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 

Http/2 lightning

  • 1. HTTP/2 The (not so) new Language of the Web
  • 2. Binary Protocol Features ● Binary framing ● Streams ● Request & response multiplexing ● Stream prioritization ● Single connection per origin ● Flow control ● Server Push ● Header Compression
  • 3. The Final HTTP / 2 RFC(s) ● Hypertext Transfer Protocol version 2 - RFC7540 ○ Describes the new internals of the protocol ○ Designed for low latency ● HPACK - Header Compression for HTTP/2 - RFC7541 ● Published in May 2015
  • 4. Implementations Apache 2.4.17 F5 (upcoming release) Jetty ~7.6.13 IIS Server 2016 Nginx 1.9.5 Akamai ~2015 cURL 7.38.0 WireShark 1.11 IE 11 (Windows 10 only) Edge 2 Chrome 41 Firefox 36
  • 6. Binary Framing ● Similar to TCP packets ● Frames contain distinct data (headers, payload, etc) ● Frames are indexed ● Fixed length Length Flags Identifier Payload
  • 7. Streams ● Bidirectional flow of bytes within a connection ● May carry one or more messages ● Single TCP connection can carry several streams ● Have identifiers ● Can be prioritized
  • 9. Capable of Multiplexing ● Frames in different streams can be interleaved ● Solves Head-of-Line blocking by Ilya Grigorik
  • 10. Header Compression ● Original SPDY compression was vulnerable ● HPACK used in HTTP/2 ● HPACK uses 2 compression techniques ○ Huffman compression ○ Client & Server must keep indexed list of previously seen headers
  • 12. Server Push ● Server knows content needed ● Server sends a PUSH_PROMISE frame ● Client can decide to accept frame or reset it ● Currently still experimental
  • 13. TLS Only ● Not mandated by the standard ● Chrome & Firefox stated they will not support without TLS ● Performance issues balanced in single connection scenario ● http://letsencrypt.org
  • 14. Transition Plan ● Know your application as it is ● Which strategy is best for your customers ● Optimizations you might need to change ● Benchmark before & after every change ● Deploy
  • 15. Transition Plan 1. Internal / Backend APIs 2. Public APIs 3. CDNs 4. Front end applications 5. Load balancers & other proxies
  • 16. Transition Strategies ● Sit and wait ● Adopt HTTP/2 completely ● Hybrid approach
  • 17. Resources ● http://http2.github.io ● High Performance Browser Networking - http://bit.ly/1PWhBQ3 ● Google HTTP/2 podcasts - http://bit.ly/1QgUrUP ● http://caniuse.com/#feat=http2 ● HTTP/2 is here, let’s optimize - http://bit.ly/20KJq5I

Editor's Notes

  1. The binary protocol differs from HTTP 1.1 in that information is transmitted in a fixed length binary package which we’ll go into later as opposed to plain text documents. I will not cover all of the features as most don’t directly affect developers, but you should be aware of all of tem.
  2. The new standard was worked on between 2013 and 2015. The original specification for SPDY had a few things that did not mesh well with all of the members of working group, such as a requirement for resolution over TLS only and that it didn’t take much into account non web uses of HTTP. The SPDY specification also used zlib for header compression and this was found to have a vulnerability a little over halfway through the process. The working group ended up with 2 RFCs, one to describe the new binary protocol and one to describe a new header compression mechanism. These were officially published & accepted by the IETF as proposed standards in May of 2015. By then there were already several implementations amongst client & server softwares of earlier drafts.
  3. The HTTP/2 documentation repo maintains a list of implementations which is by no means exhaustive. For example there are very few tools mentioned in the list, but a quick search reveals plugins for JMeter and other benchmarking tools. Also Cloudflare has released blog posts indicating that they’re also working on an implementation for their global netowrk. This is a sample of the implementations from that list plus the approximate version of when the software started to support HTTP/2. For some of these finding the version that started supporting HTTP2 was not simple.
  4. The majority of all browser vendors have implemented HTTP/2 fully as of the latest release with the exception of some deprecated mobile browsers such as Android Browser. For a detailed list of current browser implementations you can go to caniuse.com & search for HTTP/2 and then click the Show All toggle.
  5. You may be wondering what makes binary framing so special if TCP is already transmitted as binary packets. Binary framing borrows the same concept of a TCP packet in that it divides the content being transmitted into distinct units that contain metadata about the content in fixed length binary fields. Each frame contains an identifier that tells the receiver the request/response it belongs to and the type of payload it’s carrying. This is what really enables the majority of the features in the binary protocol. The content can be things like headers, request or response body chunks, other meta data. There are about 7 or 8 different content types. Now this also makes it easier for the receiver to parse the content. The receiver knows the length of the content and it knows what kind of content it’s looking at. With HTTP 1.1 the receiver gets an entire plain text message and the application has to guess at where things like headers end & the content begins, what whitespace is significant and what isn’t, etc. With a binary protocol, that’s all gone and the receiver can can parse the content of each frame much faster.
  6. So now that we have binary frames with identifiers we can also define streams to carry and associate all of the frames related to a single request / response messages. You can send settings frames to have a common contract between the client & server on how to deal with the stream. You can send a prioritization frame to let the receiver know which stream is more important or define dependencies.