NetTool1

HTTP Headers Explained: Request, Response & Security Headers

Os cabeçalhos HTTP são os heróis não reconhecidos da comunicação web. Toda vez que você carrega uma página web, transmite um vídeo ou envia um formulário, dezenas de cabeçalhos trabalham nos bastidores para fazer isso acontecer. Eles carregam metadados críticos sobre requisições e respostas, controlam o comportamento de cache, aplicam políticas de segurança e habilitam recursos web modernos.

Entender cabeçalhos HTTP não é mais apenas para desenvolvedores backend. Engenheiros frontend precisam deles para integração de API, equipes de DevOps dependem deles para otimização de desempenho, e profissionais de segurança os usam para proteger aplicações contra ataques. Este guia detalha tudo o que você precisa saber sobre cabeçalhos HTTP, desde conceitos básicos até implementações avançadas de segurança.

Índice

O Que São Cabeçalhos HTTP?

Cabeçalhos HTTP são pares chave-valor enviados entre clientes e servidores durante a comunicação HTTP. Eles fornecem contexto essencial sobre a requisição ou resposta, incluindo tipo de conteúdo, codificação, credenciais de autenticação, diretivas de cache e políticas de segurança.

Os cabeçalhos seguem um formato simples: Header-Name: value. Cada cabeçalho aparece em sua própria linha, e uma linha em branco separa os cabeçalhos do corpo da mensagem. Enquanto o HTTP/1.1 usa cabeçalhos em texto simples, o HTTP/2 e HTTP/3 os comprimem usando os algoritmos HPACK e QPACK respectivamente.

Os cabeçalhos se dividem em quatro categorias principais:

Aplicações web modernas normalmente trocam 20-40 cabeçalhos por ciclo de requisição-resposta. Alguns são obrigatórios (como Host no HTTP/1.1), enquanto outros são opcionais mas altamente recomendados para segurança e desempenho.

Dica profissional: Use a aba Network do DevTools do seu navegador para inspecionar cabeçalhos em tempo real. Isso é inestimável para depurar problemas de API e entender como serviços de terceiros se comunicam com sua aplicação.

Cabeçalhos de Requisição: O Que os Navegadores Enviam

Cabeçalhos de requisição informam ao servidor o que o cliente quer e o que ele pode manipular. Eles incluem informações sobre tipos de conteúdo aceitos, idiomas preferidos, credenciais de autenticação e as capacidades do cliente.

Aqui estão os cabeçalhos de requisição mais importantes que você encontrará:

Cabeçalho Propósito Exemplo
Host Especifica o nome de domínio do servidor Host: example.com
User-Agent Identifica o software cliente User-Agent: Mozilla/5.0...
Accept Tipos de mídia que o cliente pode processar Accept: application/json
Accept-Language Idiomas preferidos para a resposta Accept-Language: en-US,en;q=0.9
Accept-Encoding Algoritmos de compressão suportados Accept-Encoding: gzip, br
Authorization Credenciais de autenticação Authorization: Bearer token123
Cookie Cookies armazenados para o domínio Cookie: session=abc123
Referer URL da página anterior Referer: https://google.com

Entendendo o Cabeçalho Accept

O cabeçalho Accept usa valores de qualidade (valores-q) para indicar preferência quando múltiplos formatos são aceitáveis. Os valores variam de 0 a 1, sendo 1 a prioridade mais alta:

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Isso informa ao servidor: "Eu prefiro HTML ou XHTML, mas aceitarei XML com 90% de preferência, e qualquer outra coisa com 80% de preferência." Os servidores usam isso para realizar negociação de conteúdo e retornar o formato mais apropriado.

O Cabeçalho User-Agent

O cabeçalho User-Agent identifica o software cliente, sistema operacional e tipo de dispositivo. Embora útil para análises e servir conteúdo específico para dispositivos, também é notoriamente não confiável devido à falsificação de user-agent.

A melhor prática moderna é usar detecção de recursos em vez de detecção de user-agent. No entanto, o cabeçalho permanece valioso para registro, depuração e detecção de bots.

Dica rápida: Teste seus endpoints de API com diferentes strings User-Agent para garantir que não quebrem para clientes legítimos. Alguns servidores bloqueiam incorretamente requisições com user agents desconhecidos.

Cabeçalhos de Resposta: O Que os Servidores Retornam

Cabeçalhos de resposta fornecem metadados sobre a resposta do servidor, incluindo tipo de conteúdo, instruções de cache, políticas de segurança e informações do servidor. Eles são cruciais para renderização adequada de conteúdo, otimização de desempenho e segurança.

Os principais cabeçalhos de resposta incluem:

Cabeçalho Propósito Exemplo
Content-Type Tipo de mídia do corpo da resposta Content-Type: text/html; charset=utf-8
Content-Length Tamanho do corpo da resposta em bytes Content-Length: 1234
Content-Encoding Algoritmo de compressão usado Content-Encoding: gzip
Set-Cookie Envia cookies para o cliente Set-Cookie: id=a3; Secure; HttpOnly
Location URL para redirecionamentos Location: https://example.com/new
Server Informações sobre o software do servidor Server: nginx/1.18.0
Date Data e hora em que a resposta foi enviada Date: Mon, 31 Mar 2026 12:00:00 GMT
ETag Identificador único para versão do recurso ETag: "33a64df551425fcc55e"

Content-Type e Codificação de Caracteres

O cabeçalho Content-Type é crítico para renderização adequada de conteúdo. Ele informa ao navegador como interpretar o corpo da resposta. Sempre inclua a codificação de caracteres (geralmente UTF-8) para prevenir problemas de codificação:

Content-Type: application/json; charset=utf-8
Content-Type: text/html; charset=utf-8
Content-Type: image/png

Cabeçalhos Content-Type ausentes ou incorretos fazem com que os navegadores adivinhem o tipo de conteúdo (MIME sniffing), o que pode levar a vulnerabilidades de segurança e problemas de renderização.

O Cabeçalho Set-Cookie

O cabeçalho Set-Cookie cria cookies no lado do cliente. Cookies modernos devem sempre incluir atributos de segurança:

Set-Cookie: sessionId=abc123; Secure; HttpOnly; SameSite=Strict; Max-Age=3600

Cabeçalhos de Segurança: Protegendo Sua Aplicação

Cabeçalhos de segurança são sua primeira linha de defesa contra vulnerabilidades web comuns. Eles instruem os navegadores a aplicar políticas de segurança que protegem os usuários de ataques como XSS, clickjacking e ataques man-in-the-middle.

Toda aplicação em produção deve implementar estes cabeçalhos de segurança essenciais:

Content-Security-Policy (CSP)

CSP previne ataques XSS controlando quais recursos o navegador pode carregar. É um dos cabeçalhos de segurança mais poderosos, mas requer configuração cuidadosa:

Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline' https://cdn.example.com; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; font-src 'self' https://fonts.gstatic.com

Comece com uma política restritiva e relaxe-a gradualmente conforme necessário. Use Content-Security-Policy-Report-Only para testar políticas sem quebrar seu site.

Strict-Transport-Security (HSTS)

HSTS força os navegadores a usar HTTPS para todas as requisições futuras ao seu domínio, prevenindo ataques de downgrade de protocolo:

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

A diretiva preload permite que você submeta seu domínio à lista de preload HSTS, que é codificada diretamente nos navegadores. Isso forneceexample.com # Send custom headers curl -H "