Fundamentos & Web
24/07/2026
5 min read

MÓDULO 0 — Fundamentos de HTTP e Web: Entendendo o HTTP e HTTPS

Team Hacking78

Especialistas em Red Teaming

Resumo Executivo (TL;DR)

Entenda o funcionamento do protocolo HTTP, o ciclo requisição-resposta, verbos HTTP na prática, códigos de status, cabeçalhos cruciais e como o TLS/HTTPS garante confidencialidade, integridade e autenticidade.

MÓDULO 0 — Fundamentos de HTTP e Web: Entendendo o HTTP e HTTPS

O HTTP (Hypertext Transfer Protocol) é um protocolo da camada de aplicação utilizado para a transferência de dados na web. Ele opera em um modelo cliente-servidor, sendo um protocolo stateless (sem estado), o que significa que cada requisição é tratada de forma independente pelo servidor.

Neste Módulo 0, abordamos os conceitos fundamentais sobre como a comunicação web funciona, desde a troca de pacotes básica até os mecanismos de criptografia com TLS/HTTPS.

1. O Ciclo Requisição-Resposta

O ciclo básico de comunicação na web segue três etapas principais:

  • 1. Estabelecimento de Conexão: O cliente (geralmente um navegador) abre uma conexão TCP/IP com o servidor (usualmente na porta 80 para HTTP ou 443 para HTTPS).
  • 2. Requisição HTTP (Request): O cliente envia uma mensagem estruturada contendo um método, um caminho (path), cabeçalhos (headers) e, opcionalmente, um corpo (body).
  • 3. Resposta HTTP (Response): O servidor processa o pedido e retorna um código de status, cabeçalhos de resposta e o corpo (dados como HTML, JSON ou imagens). A conexão pode ser encerrada ou mantida aberta (keep-alive).

2. Métodos HTTP e Exemplos Práticos

Os métodos HTTP (ou verbos) indicam a ação que o cliente deseja realizar no recurso especificado:

  • GET: Solicita a representação de um recurso. Não deve alterar o estado do servidor nem enviar dados no corpo.
  • POST: Envia dados para o servidor criar um novo recurso ou processar informações (ex: formulários, login).
  • PUT: Substitui completamente um recurso existente pelos dados enviados na requisição.
  • PATCH: Aplica modificações parciais a um recurso existente.
  • DELETE: Remove um recurso específico do servidor.
  • OPTIONS: Retorna os métodos HTTP suportados pelo servidor para a URL solicitada (usado em checagens de CORS).

Exemplos de Requisição e Resposta

GET — Buscar um usuário

http
Hacking78 Snippet
GET /api/v1/users/42 HTTP/1.1
Host: api.exemplo.com
User-Agent: Mozilla/5.0
Accept: application/json
json
Hacking78 Snippet
// Resposta do Servidor: HTTP/1.1 200 OK
{
  "id": 42,
  "nome": "Ana Silva",
  "email": "ana@exemplo.com"
}

POST — Criar um usuário

http
Hacking78 Snippet
POST /api/v1/users HTTP/1.1
Host: api.exemplo.com
Content-Type: application/json
Content-Length: 52
json
Hacking78 Snippet
{
  "nome": "Carlos Souza",
  "email": "carlos@exemplo.com"
}

PUT vs PATCH — Atualizar recurso

  • PUT (substituição total):
http
Hacking78 Snippet
PUT /api/v1/users/42 HTTP/1.1
Host: api.exemplo.com
Content-Type: application/json
json
Hacking78 Snippet
{
  "nome": "Ana Silva",
  "email": "ana.nova@exemplo.com"
}
  • PATCH (atualização parcial):
http
Hacking78 Snippet
PATCH /api/v1/users/42 HTTP/1.1
Host: api.exemplo.com
Content-Type: application/json
json
Hacking78 Snippet
{
  "email": "ana.nova@exemplo.com"
}

DELETE — Deletar recurso

http
Hacking78 Snippet
DELETE /api/v1/users/42 HTTP/1.1
Host: api.exemplo.com
Authorization: Bearer token_exemplo_123

OPTIONS — Verificar métodos permitidos

http
Hacking78 Snippet
OPTIONS /api/v1/users HTTP/1.1
Host: api.exemplo.com
http
Hacking78 Snippet
// Resposta do Servidor: HTTP/1.1 204 No Content
Allow: GET, POST, OPTIONS

3. Códigos de Status (Status Codes)

Os códigos de status indicam o resultado do processamento da requisição e são divididos em 5 classes principais:

  • 1xx (Informativo): A requisição foi recebida e o processo continua (ex: 100 Continue).
  • 2xx (Sucesso): A ação foi recebida, entendida e aceita com êxito (ex: 200 OK, 201 Created, 204 No Content).
  • 3xx (Redirecionamento): Ações adicionais são necessárias para completar a requisição (ex: 301 Moved Permanently, 302 Found).
  • 4xx (Erro do Cliente): A requisição contém sintaxe incorreta ou não pode ser processada (ex: 400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found).
  • 5xx (Erro do Servidor): O servidor falhou ao processar uma requisição válida (ex: 500 Internal Server Error, 502 Bad Gateway, 503 Service Unavailable).

4. Cabeçalhos Importantes (Headers)

Os cabeçalhos transmitem metadados essenciais sobre a requisição ou a resposta:

  • Host: Obrigatório no HTTP/1.1. Indica o nome do domínio de destino (essencial para servidores virtuais hospedando múltiplos sites na mesma IP).
  • Cookie: Envia ao servidor os cookies armazenados localmente associados ao domínio (geralmente contendo identificadores de sessão).
  • User-Agent: Identifica a aplicação, navegador, sistema operacional e versão de quem está fazendo a requisição.
  • Content-Type: Indica o formato do corpo da mensagem (ex: application/json, text/html, multipart/form-data).
  • Authorization: Transporta credenciais para autenticação (ex: Authorization: Bearer ou Authorization: Basic).

5. HTTP vs HTTPS & Como o TLS Funciona

  • HTTP: Transmite dados em texto claro (porta 80). Qualquer pessoa no caminho da rede pode interceptar e ler o tráfego (ataque Man-in-the-Middle / MitM).
  • HTTPS: É o HTTP rodando sobre uma camada de criptografia fornecida pelo TLS (Transport Layer Security) (porta 443). Garante três pilares:
  • 1. Confidencialidade: Tráfego criptografado.
  • 2. Integridade: Garante que os dados não foram alterados no trajeto.
  • 3. Autenticidade: Valida a identidade do servidor via certificados digitais.

Como o TLS Funciona (Simplificado — TLS Handshake)

text
Hacking78 Snippet
Cliente                                         Servidor
   |                                               |
   | ------------- 1. Client Hello ---------------> | (Versões TLS, ciphers suportados)
   | <------------ 2. Server Hello --------------- | (Cipher escolhido + Certificado Digital)
   |                                               |
   | [ Valida Certificado / CA ]                   |
   |                                               |
   | ------------- 3. Troca de Chaves -----------> | (Estabelece segredo compartilhado)
   |                                               |
   | ===== 4. Canal Criptografado Estabelecido ===== | (Troca de chaves simétricas de sessão)
  • 1. Client Hello: O cliente informa as versões de TLS e os algoritmos criptográficos (cipher suites) que suporta.
  • 2. Server Hello + Certificado: O servidor escolhe o algoritmo e envia seu certificado digital público (assinado por uma Autoridade Certificadora / CA).
  • 3. Validação & Troca de Chaves: O cliente verifica se o certificado é válido. Em seguida, ambos utilizam criptografia assimétrica (chaves pública/privada) para negociar uma chave simétrica de sessão.
  • 4. Comunicação Simétrica: A partir desse ponto, todo o tráfego é criptografado usando essa chave simétrica (muito mais rápida para processamento).
📌
Resumo Prático: O HTTP estrutura a conversa entre cliente e servidor, e o TLS veste essa conversa com uma camada de proteção contra interceptação.

Perguntas Frequentes (FAQ)

O que é o protocolo HTTP e qual seu modo de operação?

O HTTP (Hypertext Transfer Protocol) é um protocolo da camada de aplicação utilizado para a transferência de dados na web. Ele opera em um modelo cliente-servidor e é stateless (sem estado), onde cada requisição é tratada de forma independente pelo servidor.

Qual a diferença entre os métodos PUT e PATCH no HTTP?

O método PUT realiza a substituição total de um recurso existente pelos dados enviados na requisição, enquanto o PATCH aplica modificações parciais a um recurso.

Como o TLS/HTTPS protege a comunicação entre cliente e servidor?

O HTTPS executa o HTTP sobre uma camada criptográfica TLS/SSL na porta 443, garantindo confidencialidade (criptografia), integridade (dados não alterados) e autenticidade (validação via certificados digitais).