As mudanças do HTTP nos últimos 16 anos

![APIs JSON são o futuro da web](/content/images/2015/03/json_api.png)

Há uma mudança gradual e silenciosa acontecendo no mundo do desenvolvimento web. O protocolo HTTP pode não ter mudado muito nos últimos 16 anos, mas seu uso evoluiu bastante. No início, ele era apenas um protocolo em modo texto para o envio de conteúdo estático. O próprio Tim Bernes Lee, criador da web, relatou em seu livro "Weaving the Web" (ainda sem tradução no Brasil) que sua criação foi concebida como "um formato universal para documentação".

Com o passar do tempo, passamos a utilizar linguagens de script como Perl e ASP para manipular código fonte HTML e criar páginas com conteúdo "personalizado": a aplicação inseria o conteúdo recuperado de uma base de dados no código HTML e entregava para o servidor web que, por sua vez, enviava a página para o navegador do cliente.

Com a inclusão do XMLHttpRequest no ECMAScript, foi possível transferir dados também no formato XML e JSON ao navegador. Com isso surgiu o Ajax e, a partir dos verbos originais do HTTP (como GET, POST e PATCH e DELETE) dar origem ao modelo REST.

Até pouco tempo atrás era comum ver um desenvolvedor ser responsável tanto pelo frontend quanto pelo backend de uma aplicação web. Esses mundos evoluiram de tal maneira que ficou difícil acompanhar duas áreas de conhecimento com especificidades cada vez maiores entre si. Neste contexto é cada vez mais frequente nos depararmos com arquiteturas onde há uma clara separação entre backend e frontend.

O rápido crescimento das plataformas móveis aumentou a necessidade de consumir dados através de REST e o número de APIs explodiu. Já que há uma API entregando esses dados aos dispositivos móveis, por que não utilizá-los também no frontend?

Projetos como Angular e Ember tornam muito mais fácil consumir APIs no lado do cliente e inserir estes dados em uma página web. Como não há a necessidade de renderizar HTML no lado do servidor, é possível enviar uma quantidade muito menor de bytes e de forma assíncrona, o que torna o tráfego mais rápido, melhorando o desempenho e aumentando a sensação de responsividade por quem faz uso do aplicativo.

Ferramentas como o Meteor (um web framework em NodeJS) já trazem esse conceito para dentro do processo de desenvolvimento de forma nativa, o que provavelmente justifica parte de sua rápida popularidade.

Muitas dessas mudanças não passaram de "hacks" com a finalidade de tirar do HTTP mais do que os fins para os quais ele havia sido concebido originalmente. Meu palpite é que há uma tendência cada vez menor de se renderizar HTML e enviá-lo ao browser. Ao invés disso, vamos consumir JSON e renderizar tudo no lado do cliente. Resta saber como o HTTP 2.0 influenciará essa evolução. O futuro porém, nem mesmo o Google pode te dizer.

Texto publicado originalmente na revista Locaweb #51