Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
HTTP2
Search
Marcus Barcelos
May 11, 2016
Technology
110
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
HTTP2
Marcus Barcelos
May 11, 2016
More Decks by Marcus Barcelos
See All by Marcus Barcelos
TDC - Integração continua
mvlbarcelos
1
620
Arquitetando e evoluindo um ERP para a Nuvem
mvlbarcelos
1
310
Other Decks in Technology
See All in Technology
そこにあるから地図ができる~位置を示す"モノ"を愉しむ~ - Interface 2026年6月号GPS特集オフ会 / interface_202606_GPS_offline
sakaik
1
110
PostgreSQL 19 新機能概要 OSC Hokkaido 2026
nori_shinoda
0
260
元・セキュリティ学習経験0大学生による業務紹介 / An Introduction to the Job by a Former College Student with Zero Security Training Experience
nttcom
0
890
5分でわかるDuckDB Quack
chanyou0311
4
260
WebGIS AI Agentの紹介
_shimizu
0
580
4人目のSREはAgent
tanimuyk
0
270
テスト設計の本質を改めて考えてみる~生成AIを活用する時代だからこそ、作ったテストの説明性を高めよう~
yamasaki696
1
120
クレデンシャル流出 ― 攻撃 3 時間 vs 復旧 10 時間。この非対称性にどう備えるか
kazzpapa3
3
610
打造你的 AI 工作流:Agent Skill + MCP 實戰工作坊
appleboy
0
140
Zenoh on Zephyr on LiteX
takasehideki
2
130
5分でわかる Amazon Connect_20260608
hwangbyeonghun
0
130
クラウドファンディング版StackChan 3体(4体)をインタラクティブな体験型作品にして展示もした話 / スタックチャンお誕生日会2026
you
PRO
0
200
Featured
See All Featured
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.6k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
370
Information Architects: The Missing Link in Design Systems
soysaucechin
0
980
Raft: Consensus for Rubyists
vanstee
141
7.6k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
170
Making the Leap to Tech Lead
cromwellryan
135
9.9k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
210
Claude Code のすすめ
schroneko
67
230k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.7k
We Are The Robots
honzajavorek
0
260
The browser strikes back
jonoalderson
0
1.3k
Transcript
pen4education Vamos falar sobre o futuro da Web: HTTP/2 Gabriell
Nascimento Marcus Barcelos Trilha Web @gabriellhrn @mvlbarcelos
pen4education Sysadmin DevOps Bluesoft Quem somos Gabriell
pen4education Arquiteto de soluções DevOps Bluesoft Quem somos Marcus Barcelos
pen4education Bluesoft
pen4education Bluesoft Labs
pen4education HTTP/0.9 1991 HTTP
pen4education Transferência de texto pela Internet (ASCII) HTTP/0.9 Funcionalidades
pen4education ➔ GET HTTP/0.9 Métodos
pen4education web em 1991 http://www.wired.co.uk/news/archive/2013-04/30/first-web-page http://arstechnica.com/information-technology/2013/04/first-website-ever-goes-back-online-on-the-open-webs-20th-birthday/
pen4education HTTP/0.9 1991 HTTP/1.0 1996 HTTP
pen4education ➔ Transferência de MIME ➔ Cabeçalhos ➔ Status codes
HTTP/1.0 Funcionalidades++
pen4education ➔ GET ➔ HEAD ➔ POST HTTP/1.0 Métodos
pen4education HTTP/0.9 1991 HTTP/1.0 HTTP/1.1 1996 1999 HTTP
pen4education ➔ Conexão persistente (keep alive) ➔ HTTP pipelining HTTP/1.1
Funcionalidades++
pen4education ➔ GET ➔ HEAD ➔ POST ➔ PUT ➔
DELETE HTTP/1.1 Métodos ➔ TRACE ➔ OPTIONS ➔ CONNECT ➔ PATCH
pen4education HTTP/0.9 1991 HTTP/1.0 HTTP/1.1 1996 1999 2009 SPDY SPDY
pen4education ➔ Carregamento 50% menor ➔ Compatibilidade com HTTP SPDY
Principais objetivos
pen4education HTTP/0.9 1991 HTTP/1.0 HTTP/1.1 1996 1999 2015 HTTP/2 HTTP
2009 SPDY
pen4education HTTP/2 (RFC 7540) + HPACK (RFC 7541)
pen4education ➔ Troca de mensagens binária ➔ Multiplexação HTTP/2 Funcionalidades++
pen4education ➔ Priorização de requisições ➔ Server push ➔ Compressão
de cabeçalho HTTP/2 Funcionalidades++
pen4education E por que um HTTP/2?
pen4education E por que um HTTP/2? HTTP/1.x não atende mais
pen4education ➔ Sites complexos ➔ Muitas requisições ➔ Mobile A
web atual
pen4education A web atual https://mobiforge.com/research-analysis/the-web-is-doom
pen4education HTTP/1.1 Boas práticas
pen4education ✓ Concatenação ✓ Sprites ✓ Domain sharding ✓ Cabeçalhos/Cookies
HTTP/1.1 Boas práticas ✓ CSS no topo ✓ JS no final ✓ Minificação ✓ Compressão (gzip)
pen4education HTTP/1.1 Diminuir requisições
pen4education ➔ Concatenar (CSS/JS) ➔ Sprites ➔ Domain sharding ◆
cdn1.bluesoft.com.br ◆ cdn2.bluesoft.com.br HTTP/1.1 Diminuir requisições
pen4education HTTP/1.1 Paralelismo: múltiplas conexões TCP Hi there! I’m HTTP/1.1
only :) https://h1.example.com Cliente Servidor
pen4education HTTP/1.1 Head of line blocking Hi there! I’m HTTP/1.1
only :) https://h1.example.com Cliente Servidor
pen4education HTTP/2 Multiplexação de mensagens
pen4education HTTP/2 Multiplexação de mensagens Hi there! I’m HTTP/2 :D
https://h2.example.com Cliente stream 7 DATA … stream 3 DATA stream 5 HEADERS stream 5 DATA stream 3 DATA Conexão HTTP/2 Servidor
$ nghttp -nv https://h2.example.com ... [ 0.009] recv HEADERS frame
<length=30, flags=0x04, stream_id=39> ; END_HEADERS (padlen=0) ; First response header [ 0.009] recv (stream_id=41) :status: 200 [ 0.009] recv (stream_id=41) content-length: 4864 [ 0.009] recv (stream_id=41) content-type: image/png [ 0.009] recv HEADERS frame <length=30, flags=0x04, stream_id=41> ; END_HEADERS (padlen=0) ; First response header [ 0.010] recv DATA frame <length=7456, flags=0x01, stream_id=39> ; END_STREAM [ 0.010] recv DATA frame <length=4864, flags=0x01, stream_id=41> ; END_STREAM [ 0.010] recv DATA frame <length=16384, flags=0x00, stream_id=43> [ 0.010] recv DATA frame <length=4883, flags=0x00, stream_id=45> ...
pen4education Multiplexação why it matters
pen4education Multiplexação why it matters
pen4education HTTP/1.1 Conexões HTTP 6.23s
pen4education HTTP/1.1 Conexões HTTP: domain sharding 2.17s
pen4education HTTP/2 Conexão com multiplexação 0.99s
pen4education HTTP/1.1 Priorização de requisições
pen4education ➔ CSS no topo ➔ JS no final HTTP/1.1
Priorização de requisições
pen4education HTTP/2 Priorização de requisições
pen4education Árvore de pesos e dependências HTTP/2 Priorização de requisições
pen4education HTTP/2 Priorização de requisições * A 1 B 8
C 8 D 12 E 4 A - main.css B - script.js C - style.css D - substyle.css E - favicon.ico
pen4education HTTP/1.1 Tamanho das requisições
pen4education ➔ Cabeçalhos e cookies HTTP/1.1 Tamanho das requisições
pen4education HTTP/2 Compressão de cabeçalho (HPACK)
pen4education HTTP/2 Compressão de cabeçalho Hi there! I’m HTTP/2 :D
https://h2.example.com Cliente Servidor stream 3 HEADERS 1 :method: GET 2 :path: /login 3 :scheme: https 1 :method: GET 2 :path: /home 3 :scheme: https
pen4education HTTP/2 Server push
pen4education HTTP/2 Server push Hi there! I’m HTTP/2 :D https://h2.example.com
Cliente Servidor
pen4education HTTP/2 Server push HTTP/2 https://blog.cloudflare.com/announcing-support-for-http-2-server-push-2/
pen4education HTTP/2 Server push HTTP/2 HTTP/2 + Server Push https://blog.cloudflare.com/announcing-support-for-http-2-server-push-2/
pen4education HTTP/2 Upgrade
pen4education TCP (HTTP) e TLS (HTTPS) HTTP/2 Mecanismo de upgrade
pen4education Na prática: HTTP/2 é com HTTPS
pen4education Resumindo...
pen4education ✓ Concatenação ✓ Sprites ✓ Domain sharding ✓ Cabeçalhos/Cookies
HTTP/1.1 Boas práticas ✓ CSS no topo ✓ JS no final ✓ Minificação ✓ Compressão (gzip)
pen4education ✗ Concatenação ✗ Sprites ✗ Domain sharding ✗ Cabeçalhos/Cookies
HTTP/2 Boas práticas ✗ CSS no topo ✗ JS no final ✓ Minificação ✓ Compressão (gzip)
pen4education HTTP/2 Suporte
pen4education ✓ Google Chrome ✓ Internet Explorer ✓ Microsoft Edge
✓ Mozilla Firefox ✓ Safari HTTP/2 Navegadores https://github.com/http2/http2-spec/wiki/Implementations https://en.wikipedia.org/wiki/Comparison_of_web_browsers#Protocol_support * Versões mais recentes
pen4education ✓ Apache HTTP Server 2.4.17+ ✓ Apache Tomcat 8.5+
✓ Microsoft IIS WinServer 2016 ✓ Nginx 1.9.5+ HTTP/2 Servidores web https://github.com/http2/http2-spec/wiki/Implementations https://en.wikipedia.org/wiki/HTTP/2#Software_and_services_supporting_HTTP.2F2
pen4education ✓ Akamai ✓ CloudFlare HTTP/2 CDNs https://en.wikipedia.org/wiki/HTTP/2#Software_and_services_supporting_HTTP.2F2
pen4education HTTP/2 To use or not to use?
pen4education Nginx http://labs.bluesoft.com.br/habilite-o-http2-no-seu- site-hoje/ Apache http://labs.bluesoft.com.br/habilite-o-http2-no-seu- site-agora-com-apache/ HTTP/2 Artigos
pen4education $ docker pull bluesoftbr/nginx-h2 $ docker pull bluesoftbr/httpd-h2 https://github.com/bluesoft/dockerfiles
HTTP/2 Imagens Docker
pen4education Obrigado! @gabriellhrn @mvlbarcelos bluesoft bluesoftbr http://labs.bluesoft.com.br