Learning Center
Rede

Entendendo as solicitações HTTP: estrutura, métodos e exemplos

1 dez. 2025
Hostman Team
Hostman Team

HTTP é a chave para a comunicação na internet. Os métodos do protocolo HTTP permitem que clientes enviem solicitações aos servidores e que os servidores retornem respostas. Todos os sites da World Wide Web utilizam solicitações HTTP, portanto é fundamental entendê-las. Este artigo explora o conceito de solicitações HTTP, sua estrutura, métodos comuns e exemplos práticos — ajudando você a compreender como a web funciona.

O que é uma solicitação HTTP?
Copiar link

Uma solicitação HTTP é uma mensagem em que um cliente — como um navegador — solicita ao host em um servidor um recurso específico. Os clientes usam URLs nas solicitações HTTP para indicar quais recursos desejam acessar.

Componentes de uma solicitação HTTP
Copiar link

Cada solicitação HTTP é composta por três partes:

  • Request Line (linha de solicitação)

  • Headers (cabeçalhos)

  • Message Body (corpo da mensagem)

Request Line
Copiar link

A request line é a primeira linha de uma solicitação HTTP. Ela inicia uma ação no servidor. Indica o método HTTP e a versão do protocolo utilizada. Além disso, inclui uma URI ou URL.

Exemplo de Request Line:

GET /index.html HTTP/1.1

Headers
Copiar link

Os cabeçalhos vêm logo após a request line e fornecem informações adicionais do cliente ao servidor. Eles incluem dados como host, user agent, preferências de idioma, codificação e muito mais.

O servidor usa essas informações para identificar o navegador e o sistema operacional do cliente. Os headers HTTP são case-sensitive e possuem o formato Nome: Valor.

Exemplo de cabeçalhos HTTP:

Host: example.com

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36

Accept: application/json, text/plain, */*

Accept-Language: en-US,en;q=0.9

Accept-Encoding: gzip, deflate, br

Connection: keep-alive

Message Body
Copiar link

O corpo da mensagem é usado para enviar dados ao servidor. Ele é opcional — nem todas as solicitações HTTP o possuem. Requests com corpo de mensagem geralmente usam POST. O servidor usa o body para processar os dados enviados.

Métodos HTTP mais comuns
Copiar link

Uma solicitação HTTP conecta um cliente ao servidor por diferentes razões:

  • recuperar um recurso

  • enviar dados

  • atualizar informações

  • excluir recursos

Aqui estão os métodos mais usados:

GET – Recuperar recursos
Copiar link

O método GET solicita dados ao servidor. Sempre que um usuário acessa uma página, o navegador faz uma solicitação GET para obter seu conteúdo.

Características do GET:

  • cacheável

  • seguro (safe)

  • idempotente

GET apenas lê dados e não altera nada no servidor.

POST – Enviar dados
Copiar link

POST é utilizado quando o cliente precisa enviar informações ao servidor — formulários, uploads, etc.

O body contém os dados enviados. Múltiplas solicitações POST idênticas podem criar vários recursos no servidor.

PUT – Atualizar recursos
Copiar link

PUT também envia dados, mas serve para substituir informações existentes.

Diferença:

  • POST = cria

  • PUT = atualiza

PUT é idempotente — várias solicitações iguais resultam no mesmo estado.

DELETE – Excluir recursos
Copiar link

DELETE instrui o servidor a remover um recurso específico.

Se o recurso for excluído com sucesso, o servidor retorna uma confirmação. DELETE também é idempotente.

O que é uma resposta HTTP?
Copiar link

Ao responder uma solicitação HTTP, o servidor envia uma HTTP response. Assim como uma solicitação, ela possui três partes:

  • Status Line

  • Headers

  • Body

Status Line
Copiar link

Mostra:

  • versão HTTP

  • código de status

  • mensagem associada

Headers
Copiar link

Podem incluir:

  • data e hora

  • tipo de conteúdo (Content-Type)

  • detalhes do servidor

  • políticas de cache

Body
Copiar link

É o conteúdo real retornado ao cliente:

  • HTML

  • JSON

  • XML

  • imagens

  • arquivos

Códigos de status e seus significados
Copiar link

Os códigos de status HTTP mostram o resultado de uma solicitação. Eles têm três dígitos — o primeiro indica a categoria:

Grupo

Descrição

1xx

Informacional — processamento continua

2xx

Sucesso — solicitação concluída

3xx

Redirecionamento — ação adicional necessária

4xx

Erro do cliente — problema na solicitação

5xx

Erro do servidor — falha ao processar

Cabeçalhos HTTP e sua importância
Copiar link

Headers fornecem informações essenciais para a comunicação entre cliente e servidor.

Identificação do host
Copiar link

Indicam qual domínio o servidor está atendendo.

Cache
Copiar link

Headers como Cache-Control e Expires controlam por quanto tempo o conteúdo deve ser armazenado.

Gerenciamento de cookies
Copiar link

Set-Cookie e Cookie gerenciam sessões e estados do usuário.

Segurança
Copiar link

Exemplos importantes:

  • Authorization — autenticação

  • Content-Security-Policy — proteção contra XSS

Controle da resposta
Copiar link

Headers informam se a solicitação teve sucesso ou falhou.

Exemplos práticos de solicitações HTTP
Copiar link

Todos os exemplos usam Python com a biblioteca requests.

GET
Copiar link

import requests

response = requests.get("https://api.example.com/data",

                        params={"param1": "value1", "param2": "value2"})

print(response.status_code)

print(response.json())

POST
Copiar link

import requests

url = "https://api.example.com/users"

data = {

    "username": "newuser",

    "email": "newuser@example.com",

    "password": "securepassword"

}

response = requests.post(url, json=data)

if response.status_code == 201:

    print("User created successfully:", response.json())

else:

    print("Error:", response.status_code, response.text)

PUT
Copiar link

import requests

url = "https://api.example.com/users/123"

data = {

    "username": "updateduser",

    "email": "updateduser@example.com"

}

response = requests.put(url, json=data)

if response.status_code == 200:

    print("User updated successfully:", response.json())

else:

    print("Error:", response.status_code, response.text)

DELETE
Copiar link

import requests

url = "https://api.example.com/users/123"

response = requests.delete(url)

if response.status_code == 204:

    print("User deleted successfully.")

else:

    print("Error:", response.status_code, response.text)

Conclusão
Copiar link

As solicitações HTTP desempenham um papel crítico nas interações da web. Portanto, é essencial entender os diferentes métodos e como eles funcionam. Escolher o método certo garante uma comunicação fluida entre cliente e servidor e melhora a eficiência das aplicações web.