Nesta apresentação são abordados os principais aspectos do HTTP 2, passando por tópicos como: SPDY, Internet Working Group, HTTP/1.1, HTTP/2 Binário, HTTP/2 Multiplex, HTTP/2 Header Compression, HTTP/2 Server Push, HTTP/2 Connection, Segurança do HTTP/2, TLS, suporte, implementação e ferramentas do HTTP/2.
HTTP/2: evolução do HTTP trazendo melhorias na performance e segurança
1. HTTP/2
O que você precisa saber!
Waldyr Felix
CTO da Orange Founders
Head de Tecnologia da FCamara
ȗ
2. 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
5. 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
9. 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
10. 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
11. 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
13. 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
14. 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
15. 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