O Que é o HTTP/2 e Como Ele Melhora a Navegação na Web

Introdução

Quando falamos de navegar na internet, por detrás do clique num link ou do endereço introduzido na barra de pesquisa, ocorre um conjunto complexo de comunicações entre o nosso dispositivo e o servidor que aloja o website que queremos visitar. O protocolo responsável por esta comunicação chama-se HTTP (Hypertext Transfer Protocol). Este artigo irá explorar uma versão melhorada deste protocolo, o HTTP/2, explicando o que é e como ele melhora a experiência de navegação na web.


Desvendando Mais Sobre o HTTP

Para compreender melhor o HTTP/2, é crucial entender a sua base, o HTTP/1. Lançado em 1996, o HTTP/1.1 veio como uma revolução na época, permitindo que a web se desenvolvesse em formas que ninguém tinha imaginado até então. As páginas web deixaram de ser estáticas e passaram a ser dinâmicas, com elementos interativos e aplicações web.

Porém, mesmo com todas as suas melhorias e atualizações ao longo dos anos, o HTTP/1.1 tem várias limitações, sendo a mais evidente a forma como lida com as conexões. Como o HTTP/1.1 realiza os pedidos em fila e cada pedido necessita de uma conexão separada, há um grande atraso – também conhecido como latência – que se torna bastante perceptível quando temos um grande número de recursos numa única página web.

Por que o HTTP/2?

Neste contexto, surge o HTTP/2, com o objetivo principal de aumentar a velocidade de carregamento das páginas. A diferença mais significativa entre o HTTP/1.1 e o HTTP/2 é a capacidade deste último de permitir que vários pedidos e respostas sejam enviados em simultâneo na mesma conexão. Esta característica, conhecida como multiplexação, reduz consideravelmente a latência.

Além disso, o HTTP/2 introduziu o conceito de “server push”, uma funcionalidade que permite ao servidor enviar recursos para o navegador antes mesmo deste os pedir. Isso significa que, em vez de esperar que o navegador peça cada recurso de uma página web, o servidor pode prever esses pedidos e “empurrar” os recursos para o navegador mais rapidamente.

O Detalhe da Multiplexação no HTTP/2

A multiplexação no HTTP/2 funciona criando o que são chamados de “streams”, “frames” e “headers”. Um stream é basicamente uma sequência virtual estabelecida dentro de uma conexão, que pode carregar múltiplos pedidos de mensagens, em ambos os sentidos, simultaneamente. Cada mensagem de pedido ou resposta é dividida em frames, que são enviados através do stream.

Cada frame possui um header que identifica o stream ao qual pertence. Com isso, todos os frames de várias solicitações e respostas podem ser misturados juntos na rede, pois no destino, o protocolo HTTP/2 pode reconstruir as mensagens completas com base nos headers.

Entendendo o Server Push

No HTTP/1, o cliente (geralmente, o navegador web) solicita um documento HTML e, depois de analisar esse documento, descobre que precisa de várias outras fontes, como imagens, folhas de estilo (CSS) e JavaScript. Então, tem de fazer pedidos HTTP adicionais para esses recursos. Este processo é muito ineficiente, pois cada pedido introduz latência adicional.

A funcionalidade “server push” do HTTP/2 visa resolver este problema. Com o “server push”, o servidor tem a capacidade de enviar múltiplos recursos para o cliente com uma única resposta. Isso reduz o número de viagens que o navegador precisa fazer para buscar todos os recursos, acelerando o carregamento da página.

HTTP/2 e a Segurança

A segurança na Internet tornou-se uma preocupação crescente nos últimos anos. À medida que as pessoas se tornam mais dependentes da web para todos os aspectos da sua vida – desde as redes sociais até às transações bancárias -, a proteção dos dados e a privacidade online tornaram-se um assunto crítico.

Ao contrário do HTTP/1.1, que foi desenvolvido numa época em que a segurança online não era uma prioridade como é hoje, o HTTP/2 traz a segurança como um de seus principais focos.

Encriptação TLS

O Transport Layer Security (TLS) é um protocolo que garante privacidade e integridade dos dados entre aplicações de comunicação. Ao usar o TLS, as aplicações podem se comunicar de forma a prevenir escutas, manipulação ou falsificação de mensagens. O TLS é a principal razão pela qual podemos fazer compras, transações bancárias e enviar mensagens sensíveis pela Internet sem medo de que essas informações sejam interceptadas.

No HTTP/2, a encriptação TLS não é apenas suportada, mas é também geralmente exigida. A maioria dos navegadores só suporta HTTP/2 com TLS, o que significa que todas as comunicações HTTP/2 são encriptadas. Isso faz uma grande diferença para a segurança, pois garante que a informação trocada entre o cliente e o servidor não possa ser lida ou modificada por terceiros.

Proteção Contra Ataques

O HTTP/2 também introduziu mecanismos para proteger contra vários tipos de ataques que podem ser realizados contra protocolos HTTP. Um desses ataques é o ataque de injeção de conteúdo, onde um atacante pode inserir conteúdo malicioso numa comunicação HTTP. Graças à encriptação TLS no HTTP/2, esse tipo de ataque é muito mais difícil de realizar, pois o atacante não pode ver ou modificar o conteúdo das comunicações.

Outra vantagem do HTTP/2 em termos de segurança é a sua proteção contra ataques de “man-in-the-middle”. Estes ataques ocorrem quando um atacante consegue interceptar e potencialmente alterar a comunicação entre duas partes. A encriptação TLS do HTTP/2 protege contra esses ataques, garantindo que apenas o cliente e o servidor possam ver e interpretar as mensagens que estão a trocar.

Além disso, o HTTP/2 introduziu o conceito de “origin framing”, que permite ao servidor verificar se um pedido é legítimo ou se foi modificado ou injetado por um atacante.

A Adoção do HTTP/2

O HTTP/2 foi lançado oficialmente em 2015, e desde então, a sua adoção tem vindo a crescer a um ritmo estável. Inicialmente, a transição para o HTTP/2 foi um pouco lenta, pois tanto os servidores como os navegadores precisavam ser atualizados para suportar o novo protocolo. No entanto, atualmente, a maioria dos navegadores modernos e muitos servidores web suportam o HTTP/2.

Conclusão

O HTTP/2 veio para superar as limitações inerentes ao HTTP/1, oferecendo uma web mais rápida, segura e eficiente. Com as suas características avançadas de multiplexação e “server push”, juntamente com o suporte para encriptação TLS, o HTTP/2 proporciona uma experiência de navegação mais segura e agradável.

Contudo, ainda que a sua adoção esteja a aumentar, o HTTP/2 ainda não é universal. Continuamos a coexistir num mundo misto onde HTTP/1 e HTTP/2 estão ambos em uso. Mas, a tendência está claramente a mover-se na direção do HTTP/2, preparando o terreno para um futuro onde a navegação na web será ainda mais rápida e segura.