Introdução
As requisições HTTP (Hypertext Transfer Protocol) são o pilar da comunicação na internet. Elas representam a forma como clientes (nesse contexto, navegadores web, aplicativos móveis ou até mesmo outros servidores) solicitam recursos a um servidor web, e como o servidor responde a essas solicitações. Cada vez que você acessa uma página da internet, envia um formulário ou interage com uma API, uma ou mais requisições HTTP são realizadas nos bastidores. Compreender o funcionamento dessas requisições é fundamental para qualquer profissional de TI que trabalhe com desenvolvimento web, redes ou integração de sistemas, garantindo a comunicação eficiente e segura entre os sistemas.
Estrutura essencial de uma requisição HTTP
Uma requisição HTTP possui uma estrutura bem definida, permitindo que cliente e servidor interpretem corretamente as informações trocadas. De forma resumida, ela é composta por:
- A linha de requisição, que inclui:
- o método HTTP (GET, POST, PUT, DELETE, etc.);
- o caminho do recurso solicitado (ex: uma URL); e
- a versão do protocolo (ex: HTTP/1.1).
- Os cabeçalhos (headers), que são pares chave-valor fornecendo metadados sobre a requisição. Essa lista possui chaves de livre escrita. Algumas das chaves mais utilizadas são:
Accept
: o tipo de conteúdo aceito;User-Agent
: o agente do usuário (navegador); e, crucialmente,Authorization
: informações de autorização para que o servidor possa autenticar e autorizar a origem.
- O corpo (body), opcionalmente, que contém os dados a serem enviados ao servidor, geralmente utilizado em métodos como POST e PUT para enviar formulários ou dados JSON.
![]() |
![]() |
Convenções do cabeçalho Authorization
e códigos de retorno
Dois pontos cruciais na estrutura das requisições HTTP são o cabeçalho Authorization
e os códigos de retorno.
O cabeçalho Authorization
é amplamente utilizado para autenticação e autorização, permitindo que o cliente envie credenciais (como tokens JWT, chaves de API ou dados de autenticação básica) para provar sua identidade ou permissão de acesso a um recurso. Sua formatação geralmente segue um esquema “<tipo> <valor>
” (ex: Bearer <token>
).
Já os códigos de retorno (status codes), presentes na resposta do servidor, indicam o resultado da requisição. Eles são categorizados em faixas: 1xx (informativo), 2xx (sucesso) como 200 OK ou 201 Created; 3xx (redirecionamento) como 301 Moved Permanently; 4xx (erro do cliente) como 400 Bad Request, 401 Unauthorized ou 404 Not Found; e 5xx (erro do servidor) como 500 Internal Server Error. Conhecer esses códigos é essencial para depuração e para a criação de sistemas robustos que lidem adequadamente com diferentes cenários de comunicação.