SlideShare uma empresa Scribd logo
1 de 17
Baixar para ler offline
HTTP/2
O que você precisa saber!
Waldyr Felix
CTO da Orange Founders
Head de Tecnologia da FCamara
ȗ
HTTP/2 pra que te quero...
• Evolução	do	HTTP/1.1	mantendo	compatibilidade	com	o	que	existe
• Reduzir	latência	para	melhorar	o	tempo	de	carregamento	das	páginas
• Melhorar	o	fluxo	de	pacotes	TCP,	diminuindo	o	congestionamento
• Deve	substituir	o	HTTP/1.x	progressivamente
• Baseado	no	SPDY/2
Histórico do HTTP
HTTP/0.9 HTTP/1.0 HTTP/1.1 HTTP/2
1991 1996 1999 2015
HTTP/2	Working Group
bin	J txt L
• HTTP/2	é	binário	e	não	textual
• Melhora	a	eficiência	na	leitura	dos	requests/responses pelos	
webservers e	browsers
• Diminui	o	overhead de	caracteres	inúteis
• Menos	sujeito	a	erros
Multiplex
• Evolução	do	HTTP/1.1	mantendo	compatibilidade	com	o	que	existe
• Reduzir	latência	para	melhorar	o	tempo	de	carregamento	das	páginas
• Melhorar	o	fluxo	de	pacotes	TCP,	diminuindo	o	congestionamento
• Ser	transparente	para	os	desenvolvedores
Multiplex
• Resolve	o	problema	de	muitas	requisições	intercaladas	
• Os	requests/responses são	disparados	de	uma	só	vez
• Melhorar	a	performance	no	carregamento	inteiro	da	página
• Evita	o	velho	problema	de	requisições	em	cascata
HTTP/1.1	Pipelining vs HTTP/2	Multiplexing
client server
*Head	of Line Blocking*
client server
Compressão de HTTP Header
• Diminuir	o	tamanho	do	request/response
• Média	as	requisições	tem	1400	bytes
• Usa	HPACK	para	fazer	a	compressão
• Chega	comprimir	numa	taxa	relativa	a	30%	do	tamanho	original
HTTP/1.1	Headers vs HTTP/2	Headers
GET / HTTP/1.1
Host: www.devxperience.com.br
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Content-Language: pt-br Date: Thu, 01 Set 2017 00:00:00 GMT
Cache-Control: private
?c?8)E8??%:?$
T?%.?JI?;1?R
,l?T?%.?JI?;1?R
?c?8)E8??%:?$
189	bytes
61	bytes
32%	do	
conteúdo	original
HTTP/2 Server Push
• O	servidor	manda	dados	para	o	browser	proativamente
• Elimina	necessidade	de	ficar	esperando	recursos	dependentes	
carregarem	para	chamar	o	próximo.	Exemplo:	index.html,	style.css...
• Melhora	a	performance	de	carregamento	total	da	página,	pois	evita	
requisições	bloqueantes
HTTP/1.1	Req/Res	vs HTTP/2	Server	Push
client server
Index.html
Style.css
App.js
Logo.png
client server
Index.html
Style.css
App.js
Logo.png
Just one connection
• Com	o	HTTP/2	é	possível	trazer	todas	as	
requisições	usando	apenas	uma	conexão
• Resolve	o	problema	de	conexões	
simultâneas	por	domínio	do	HTTP/1.x
Segurança no HTTP/2
• Funciona	com	criptografia	ou	sem	(HTTP	ou	HTTPS)
• No	caso	do	uso	de	criptografia	é	obrigatório	TLS	1.2+
• Todos	os	browsers	implementaram	HTTP/2	com	TLS	obrigatório
• Na	prática	é	obrigatório
Suporte ao HTTP/2
• Firefox,	Chrome,	IE,	Edge,	Safari,	Opera	e	os	browsers	mobile	
• Apache	através	do	módulo	mod_h2	
• h2o,	Tomcat,	IIS,	nginx e	node.js suportam	na	versão	mais	nova
• CDNs:	Akamai,	AWS	CloudFront,	Fastly e	Cloudflare
Implementar HTTP/2
• A	maioria	dos	servidores	web	já	suportam	HTTP/2
• Precisam	de	upgrade	e	em	alguns	casos	de	um	plug-in
• Todos	os	browsers	atualmente	já	suportam	HTTP/2	com	TLS
**Não	precisa	mudar	a	forma	como	desenvolve-se	para	web**
Links Interessantes
• Taxa	de	compressão	do	HPACK	para	HTTP	Header
https://github.com/http2jp/hpack-test-case/wiki/Compression-Ratio
• Akamai HTTP/2	Demo
https://http2.akamai.com/demo
• HTTP/2	FAQ
https://http2.github.io/faq/
• Documentação	do	HTTP/2	pelo	HTTP	Working Group
http://httpwg.org/specs/
• Ferramentas	que	já	implementam	HTTP/2
https://github.com/http2/http2-spec/wiki/Tools

Mais conteúdo relacionado

Semelhante a HTTP/2: evolução do HTTP trazendo melhorias na performance e segurança

O novo protocolo http 2.0: uma revolução na Internet?
O novo protocolo http 2.0: uma revolução na Internet?O novo protocolo http 2.0: uma revolução na Internet?
O novo protocolo http 2.0: uma revolução na Internet?Elmano Cavalcanti
 
Aula05 camada de aplicação
Aula05 camada de aplicaçãoAula05 camada de aplicação
Aula05 camada de aplicaçãoTiago Tda
 
Como definir a quantidade de workers para sua aplicação
Como definir a quantidade de workers para sua aplicaçãoComo definir a quantidade de workers para sua aplicação
Como definir a quantidade de workers para sua aplicaçãoWeverton Timoteo
 
Desenvolvemos para web?
Desenvolvemos para web?Desenvolvemos para web?
Desenvolvemos para web?Luis Vendrame
 
Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHPFelipe Ribeiro
 
Broadcast day 2011_newtec
Broadcast day 2011_newtecBroadcast day 2011_newtec
Broadcast day 2011_newtecSSPI Brasil
 
HTML HardCore Parte 1 - Conceitos
HTML HardCore Parte 1 - ConceitosHTML HardCore Parte 1 - Conceitos
HTML HardCore Parte 1 - ConceitosGeorge Mendonça
 
Protocolos de aplicação
Protocolos de aplicaçãoProtocolos de aplicação
Protocolos de aplicaçãosergiocef96
 
Samba, Squid, FTP, DHCP1
Samba, Squid, FTP, DHCP1Samba, Squid, FTP, DHCP1
Samba, Squid, FTP, DHCP1SoftD Abreu
 
As tecnologias fundamentais da web - EGI 2015
As tecnologias fundamentais da web - EGI 2015As tecnologias fundamentais da web - EGI 2015
As tecnologias fundamentais da web - EGI 2015Newton Calegari
 
2016-redes-E.pptx
2016-redes-E.pptx2016-redes-E.pptx
2016-redes-E.pptxssssssss23
 
Curso de html - Introdução ao HTML
Curso de html -  Introdução ao HTMLCurso de html -  Introdução ao HTML
Curso de html - Introdução ao HTMLTales Augusto
 
Protocolos de aplicação
Protocolos de aplicaçãoProtocolos de aplicação
Protocolos de aplicaçãosergiocef96
 

Semelhante a HTTP/2: evolução do HTTP trazendo melhorias na performance e segurança (20)

Http 2.0
Http 2.0Http 2.0
Http 2.0
 
O novo protocolo http 2.0: uma revolução na Internet?
O novo protocolo http 2.0: uma revolução na Internet?O novo protocolo http 2.0: uma revolução na Internet?
O novo protocolo http 2.0: uma revolução na Internet?
 
Aula05 camada de aplicação
Aula05 camada de aplicaçãoAula05 camada de aplicação
Aula05 camada de aplicação
 
HTTP/2
HTTP/2HTTP/2
HTTP/2
 
Aula 1
Aula 1Aula 1
Aula 1
 
Dawi o protocolo-http
Dawi o protocolo-httpDawi o protocolo-http
Dawi o protocolo-http
 
Apresentação de sd2
Apresentação de sd2Apresentação de sd2
Apresentação de sd2
 
Como definir a quantidade de workers para sua aplicação
Como definir a quantidade de workers para sua aplicaçãoComo definir a quantidade de workers para sua aplicação
Como definir a quantidade de workers para sua aplicação
 
Desenvolvemos para web?
Desenvolvemos para web?Desenvolvemos para web?
Desenvolvemos para web?
 
Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHP
 
Broadcast day 2011_newtec
Broadcast day 2011_newtecBroadcast day 2011_newtec
Broadcast day 2011_newtec
 
Web tools pt-br
Web tools pt-brWeb tools pt-br
Web tools pt-br
 
HTML HardCore Parte 1 - Conceitos
HTML HardCore Parte 1 - ConceitosHTML HardCore Parte 1 - Conceitos
HTML HardCore Parte 1 - Conceitos
 
Protocolos de aplicação
Protocolos de aplicaçãoProtocolos de aplicação
Protocolos de aplicação
 
Professor rogerio-apostila
Professor rogerio-apostilaProfessor rogerio-apostila
Professor rogerio-apostila
 
Samba, Squid, FTP, DHCP1
Samba, Squid, FTP, DHCP1Samba, Squid, FTP, DHCP1
Samba, Squid, FTP, DHCP1
 
As tecnologias fundamentais da web - EGI 2015
As tecnologias fundamentais da web - EGI 2015As tecnologias fundamentais da web - EGI 2015
As tecnologias fundamentais da web - EGI 2015
 
2016-redes-E.pptx
2016-redes-E.pptx2016-redes-E.pptx
2016-redes-E.pptx
 
Curso de html - Introdução ao HTML
Curso de html -  Introdução ao HTMLCurso de html -  Introdução ao HTML
Curso de html - Introdução ao HTML
 
Protocolos de aplicação
Protocolos de aplicaçãoProtocolos de aplicação
Protocolos de aplicação
 

Mais de Waldyr Felix

Apache Kafka: Comunicando microsserviços com performance
Apache Kafka: Comunicando microsserviços com performanceApache Kafka: Comunicando microsserviços com performance
Apache Kafka: Comunicando microsserviços com performanceWaldyr Felix
 
Kubernetes: Escalando containers do Docker
Kubernetes: Escalando containers do DockerKubernetes: Escalando containers do Docker
Kubernetes: Escalando containers do DockerWaldyr Felix
 
A história do LinkApi, como chegamos numa arquitetura para suportar 1 milhão ...
A história do LinkApi, como chegamos numa arquitetura para suportar 1 milhão ...A história do LinkApi, como chegamos numa arquitetura para suportar 1 milhão ...
A história do LinkApi, como chegamos numa arquitetura para suportar 1 milhão ...Waldyr Felix
 
ECMAScript 6 / ECMAScript 2015 no Node.js
ECMAScript 6 / ECMAScript 2015 no Node.jsECMAScript 6 / ECMAScript 2015 no Node.js
ECMAScript 6 / ECMAScript 2015 no Node.jsWaldyr Felix
 
Performance do ASP.NET Core, um comparativo com Node.js
Performance do ASP.NET Core, um comparativo com Node.jsPerformance do ASP.NET Core, um comparativo com Node.js
Performance do ASP.NET Core, um comparativo com Node.jsWaldyr Felix
 
Ionic + Cordova para Desenvolvimento Mobile
Ionic + Cordova para Desenvolvimento MobileIonic + Cordova para Desenvolvimento Mobile
Ionic + Cordova para Desenvolvimento MobileWaldyr Felix
 
Microservices com ASP.NET 5
Microservices com ASP.NET 5Microservices com ASP.NET 5
Microservices com ASP.NET 5Waldyr Felix
 
ASP.NET SignalR + SPA com AngularJS
ASP.NET SignalR + SPA com AngularJSASP.NET SignalR + SPA com AngularJS
ASP.NET SignalR + SPA com AngularJSWaldyr Felix
 
Escalando Aplicações com Redis
Escalando Aplicações com RedisEscalando Aplicações com Redis
Escalando Aplicações com RedisWaldyr Felix
 
Sistema de Notificações com SignalR TDC 2014
Sistema de Notificações com SignalR TDC 2014Sistema de Notificações com SignalR TDC 2014
Sistema de Notificações com SignalR TDC 2014Waldyr Felix
 
ASP.NET MVC & Entity Framework
ASP.NET MVC & Entity FrameworkASP.NET MVC & Entity Framework
ASP.NET MVC & Entity FrameworkWaldyr Felix
 
Produtividade na criação de websites com ASP.NET MVC
Produtividade na criação de websites com ASP.NET MVCProdutividade na criação de websites com ASP.NET MVC
Produtividade na criação de websites com ASP.NET MVCWaldyr Felix
 
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web API
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web APITrilha .NET - REST na plataforma Microsoft com ASP.NET Web API
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web APIWaldyr Felix
 
Explorando Microsoft Fakes
Explorando Microsoft FakesExplorando Microsoft Fakes
Explorando Microsoft FakesWaldyr Felix
 
Usando Scrum com Team Foundation Server 2012
Usando Scrum com Team Foundation Server 2012Usando Scrum com Team Foundation Server 2012
Usando Scrum com Team Foundation Server 2012Waldyr Felix
 
ASP.NET WebAPI HTTP Basic Auth
ASP.NET WebAPI HTTP Basic AuthASP.NET WebAPI HTTP Basic Auth
ASP.NET WebAPI HTTP Basic AuthWaldyr Felix
 

Mais de Waldyr Felix (20)

Apache Kafka: Comunicando microsserviços com performance
Apache Kafka: Comunicando microsserviços com performanceApache Kafka: Comunicando microsserviços com performance
Apache Kafka: Comunicando microsserviços com performance
 
Kubernetes: Escalando containers do Docker
Kubernetes: Escalando containers do DockerKubernetes: Escalando containers do Docker
Kubernetes: Escalando containers do Docker
 
A história do LinkApi, como chegamos numa arquitetura para suportar 1 milhão ...
A história do LinkApi, como chegamos numa arquitetura para suportar 1 milhão ...A história do LinkApi, como chegamos numa arquitetura para suportar 1 milhão ...
A história do LinkApi, como chegamos numa arquitetura para suportar 1 milhão ...
 
ECMAScript 6 / ECMAScript 2015 no Node.js
ECMAScript 6 / ECMAScript 2015 no Node.jsECMAScript 6 / ECMAScript 2015 no Node.js
ECMAScript 6 / ECMAScript 2015 no Node.js
 
Performance do ASP.NET Core, um comparativo com Node.js
Performance do ASP.NET Core, um comparativo com Node.jsPerformance do ASP.NET Core, um comparativo com Node.js
Performance do ASP.NET Core, um comparativo com Node.js
 
Ionic + Cordova para Desenvolvimento Mobile
Ionic + Cordova para Desenvolvimento MobileIonic + Cordova para Desenvolvimento Mobile
Ionic + Cordova para Desenvolvimento Mobile
 
Microservices com ASP.NET 5
Microservices com ASP.NET 5Microservices com ASP.NET 5
Microservices com ASP.NET 5
 
ASP.NET SignalR + SPA com AngularJS
ASP.NET SignalR + SPA com AngularJSASP.NET SignalR + SPA com AngularJS
ASP.NET SignalR + SPA com AngularJS
 
Escalando Aplicações com Redis
Escalando Aplicações com RedisEscalando Aplicações com Redis
Escalando Aplicações com Redis
 
Sistema de Notificações com SignalR TDC 2014
Sistema de Notificações com SignalR TDC 2014Sistema de Notificações com SignalR TDC 2014
Sistema de Notificações com SignalR TDC 2014
 
ASP.NET MVC 5.x
ASP.NET MVC 5.xASP.NET MVC 5.x
ASP.NET MVC 5.x
 
ASP.NET MVC & Entity Framework
ASP.NET MVC & Entity FrameworkASP.NET MVC & Entity Framework
ASP.NET MVC & Entity Framework
 
ASP.NET WEB API
ASP.NET WEB APIASP.NET WEB API
ASP.NET WEB API
 
Produtividade na criação de websites com ASP.NET MVC
Produtividade na criação de websites com ASP.NET MVCProdutividade na criação de websites com ASP.NET MVC
Produtividade na criação de websites com ASP.NET MVC
 
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web API
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web APITrilha .NET - REST na plataforma Microsoft com ASP.NET Web API
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web API
 
Asp.net web api
Asp.net web apiAsp.net web api
Asp.net web api
 
Explorando Microsoft Fakes
Explorando Microsoft FakesExplorando Microsoft Fakes
Explorando Microsoft Fakes
 
ASP.NET Web API
ASP.NET Web APIASP.NET Web API
ASP.NET Web API
 
Usando Scrum com Team Foundation Server 2012
Usando Scrum com Team Foundation Server 2012Usando Scrum com Team Foundation Server 2012
Usando Scrum com Team Foundation Server 2012
 
ASP.NET WebAPI HTTP Basic Auth
ASP.NET WebAPI HTTP Basic AuthASP.NET WebAPI HTTP Basic Auth
ASP.NET WebAPI HTTP Basic Auth
 

HTTP/2: evolução do HTTP trazendo melhorias na performance e segurança