Sobre o básico de HTTP

Willyan Guimarães
Jul 27, 2017 · 3 min read

Hoje vou esquecer os códigos e dar uma atenção a algo muito importante para todo desenvolvedor: compreender o protocolo HTTP.

Afinal, o que é HTTP?

HTTP é o protocolo sobre o qual roda requisições e respostas no mundo Web. É através dele que abrimos páginas nos browsers, interagimos com amigos em aplicativos, fazemos uma compra e escrevemos conversas num blog. Tecnicamente, é um protocolo da camada de aplicação no Modelo OSI por ser responsável por prover serviços para aplicações.

Como funciona ?

O HTTP funciona no modelo cliente-servidor, ou seja, requisição-resposta. O cliente (browser, como exemplo) envia uma requisição e o servidor a responde. HTTP é Stateless, ou seja, não guarda estado das requisições que recebe. Você pode ver as requisições pela aba “Network” quando pressiona F12 no seu browser pra depurar uma navegação a uma página web:

Aba “Network” da ferramenta de depuração do Chrome, exibindo as requisições HTTP realizadas ao acessar a home Google

Quando um endereço é digitado e você pressiona “Enter” uma cadeia de requisições é feita pelo navegador para montar a página, uma a uma, buscando o html, os scripts js, os arquivos (gif, png, jpg…) e demais conteúdos.

Endereços

Para que um endereço seja válido deve seguir certos padrões. No caso de abrir a página do Google estamos digitando na barra de endereços do navegador uma URL, que tem o seguinte padrão:

protocolo://domínio:porta/caminho/recurso?query_string

  • Protocolo é a forma de comunicação, nesse caso, http ou https;
  • Domínio é o nome que você conhece como “google.com”, “globo.com”, “gmail.com”. Há um serviço prestado por servidores DNS para que esses nomes sejam traduzidos em endereços IPs, referenciando o servidor que hospeda aquele site.
  • Porta lógica de comunicação com o computador por trás do domínio. É uma parte opcional já que geralmente se usa desde que os padrões sejam mantidos (HTTPS = 443/HTTP = 80).
  • Caminho é um esquema de diretórios para chegar a um recurso, por exemplo “sistema.com.br/menu/gestao/acessoonde “menu/gestao” são diretórios do sistema daquele servidor;
  • Recurso é uma funcionalidade ou arquivo que será acessado;
  • Query string são conjunto de parâmetros/argumentos usados para determinadas requisições, geralmente pesquisas, por exemplo:

sistema/gestao/pesquisa_produtos?tipo=limpeza”;

Requisições

A partir do momento que um endereço seguindo o padrão acima é acessado, várias requisições HTTP são realizadas, e respostas são recebidas do servidor. Da mesma forma que com endereços as requisições também seguem padrões e tem informações importantes:

Exemplo de requisição HTTP com método POST

Uma requisição HTTP contém:

  • Request line
  • Header(s)
  • CRLF
  • Body

Somente request line é obrigatório. Em requisições do tipo GET o body não é necessários. Headers seguem o padrão chave: valor. O interessante é sempre verificar os métodos HTTP.

Métodos

Os métodos do HTTP vão descrever conceitualmente a operação que será realizada:

  • GET: Obtenção de recurso;
  • POST: Geralmente quando dados são submetidos a um servidor;
  • DELETE: Exclusão de recurso;

Respostas das requisições

Códigos de resposta

Do lado servidor, requisições que chegam serão respondidas. O mesmo realiza a operação solicitada de acordo com o verbo (nome alternativo a requisição) e devolve uma resposta com um código de resposta. Tais códigos possuem um número que identifica um determinado status de resposta para aquela solicitação, que são:

  • 200: OK
  • 300: Redirecionamento: Quando um recurso está num outro diretório
  • 400: Recurso não encontrado
  • 500: Erro interno do servidor

Valeu !

Finalizei um curso na Alura a respeito do assunto e curti bastante a abordagem. Além de procurar explicar os conceitos de forma simples, a ementa é suficiente para o que o desenvolvedor precisa. Vai desde o que é HTTP a nova versão do protocolo e arquitetura REST.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade