Exception Sem Handle

Porque sempre tem um bug escondido no código

HTTP: O Protocolo Que Construiu a Web (E Nos Trouxe Todos os Memes e Gatos da Internet)

Explore a evolução do protocolo HTTP, do HTTP/0.9 até o HTTP/3. Entenda as melhorias de performance, segurança e como fazer requisições HTTP com `curl` para ver tudo de perto (ou pelo menos, mais perto do que talvez você gostaria).

Correção do Mês
ProtocoloWebHTTP
26devs visualizaram este post
Publicado em:27/10/2024
HTTP: O Protocolo Que Construiu a Web (E Nos Trouxe Todos os Memes e Gatos da Internet)

Introdução:

HTTP, o famoso Hypertext Transfer Protocol, é praticamente a cola que mantém a internet funcionando. Este protocolo define como os navegadores e servidores se comunicam para transferir dados — desde o HTML puro e simples até vídeos e aqueles pop-ups irritantes. Desde sua criação, HTTP evoluiu, passando por várias versões para lidar com as necessidades cada vez mais exageradas da web. Prepare-se para uma viagem nostálgica e levemente caótica através das versões de HTTP, das mais lentas e sofridas até as mais modernas e aceleradas.

O Que é HTTP?

HTTP é aquele sistema de "pedido e entrega" que acontece cada vez que você digita um endereço na barra do navegador. Funciona assim: o navegador faz uma solicitação e o servidor responde (ou pelo menos tenta). Isso é a essência do protocolo HTTP. E o mais divertido? É que ele sempre te surpreende com erros 404 e carregamentos eternos.

Breve História do HTTP

HTTP/0.9 – O Início (1991)

Principais Características

Limitações

diagram-export-27-10-2024-12_31_26.png

HTTP/1.0 – Mais Flexibilidade (1996)

HTTP/1.0 trouxe uma "revolução". Ou algo perto disso.

Principais Características

Limitações

diagram-export-27-10-2024-12_42_16.png

HTTP/1.1 – A Evolução da Conexão Persistente (1997)

HTTP/1.1 foi a versão que trouxe um pouco de estabilidade para a loucura.

Principais Melhorias

Limitações

diagram-export-27-10-2024-13_06_45.png

HTTP/2 – Mais Velocidade e Confiabilidade (2015)

HTTP/2 chega para tentar resolver o caos com um pouco de ordem e multiplexação.

Principais Inovações

Impacto no Desempenho

HTTP/3 – O Protocolo com QUIC (2018)

HTTP/3 abandona o TCP e adota o QUIC, criando uma conexão rápida e confiável.

Por Que QUIC?

QUIC foi criado pelo Google para resolver os problemas do TCP. Porque, vamos ser sinceros, o TCP foi ótimo, mas seu tempo já passou.

Principais Diferenciais

Vantagens para Usuários e Desenvolvedores

Comparação Entre as Versões

CaracterísticaHTTP/1.0HTTP/1.1HTTP/2HTTP/3
Conexões PersistentesNãoSimSimSim (baseado em QUIC)
MultiplexaçãoNãoNão (pipelining)SimSim
Server PushNãoNãoSimSim
Bloqueio de CabeçaSimSimSim (limitado)Não
CriptografiaOpcionalOpcionalObrigatório (na prática)Integrado

Como Fazer Requisições HTTP com curl (Modo Nostálgico)

Pronto para ver o HTTP em ação? Vamos fazer isso da forma antiquada, com curl, porque nada diz "sou um programador hardcore" como linhas de comando.

  1. Requisição Simples

    1curl http://seusitefavorito.com

    Só o HTML cru. Nada de CSS ou JavaScript. É a web como ela era nos anos 90.

  2. Exibindo Apenas os Cabeçalhos

    1curl -I http://seusitefavorito.com

    Quem precisa do conteúdo? Vamos só ver os cabeçalhos. Dá até para imaginar que é interessante.

  3. HTTP/2 e HTTP/3

    1curl -I --http2 https://seusitefavorito.com 2curl -I --http3 https://seusitefavorito.com

    Porque, se

você está em 2024, o mínimo é que o site suporte HTTP/3, certo?

  1. Modo Verbose

    1curl -v http://seusitefavorito.com

    Mostra cada detalhe da conversa. Como um reality show de requisições e respostas.

  2. Aceitando JSON

    1curl -H "Accept: application/json" http://seusitefavorito.com/api

    Ah, JSON, o que seríamos sem você?

E aí está! Desde o HTTP/0.9, que nem headers tinha, até o HTTP/3 com QUIC, que manda pacotes como um carro de Fórmula 1. Essa evolução do HTTP é a prova de que, com tempo e pressão, até o protocolo mais simples pode se transformar numa máquina complexa e cheia de recursos. Que bom que chegamos até aqui, mas vamos sempre ter um espaço no coração para aquelas conexões perdidas do HTTP/1.1.