Verificador de headers HTTP
Verifique os headers HTTP de qualquer site: os headers de resposta exatamente como o servidor os enviou, em ordem e com os duplicados, com uma nota de segurança pelos testes do Mozilla HTTP Observatory, além de cache, cookies, servidor e protocolo.
Seguimos os redirecionamentos até a página final e avaliamos essa página. Os cabeçalhos de cada salto ficam em Redirecionamentos.
O que são headers HTTP?
Headers HTTP são as linhas que um servidor envia antes da própria página: uma linha de status, depois um campo nome: valor por linha, depois uma linha vazia e o corpo (RFC 9110). Os nomes não diferenciam maiúsculas de minúsculas; os valores são do próprio servidor.
Os headers de resposta dizem ao navegador o que é o conteúdo, por quanto tempo ele pode guardar uma cópia, quais cookies armazenar e quais regras de segurança aplicar. Este verificador os mostra exatamente como enviados, em ordem e com todos os duplicados, e colore cada linha pelo que ela faz.
Como verificar os headers HTTP de um site?
Digite a URL acima e selecione Verificar headers: o verificador a requisita do nosso servidor, segue qualquer redirecionamento até a página final e mostra o cabeçalho de resposta dessa página linha a linha, com a nota de segurança ao lado. Escolha HEAD na caixa de método para pedir só o cabeçalho.
Selecione qualquer linha para ver o que ela faz e o que seu valor significa. As visões abaixo organizam os resultados: Segurança com a correção por servidor, Cache, Cookies, Servidor e protocolo e Redirecionamentos.
Verificador de headers: a resposta exatamente como enviada
Maiúsculas e ordem originais, duplicados mantidos, lido por HTTP/1.1; valores longos são quebrados, valores de cookies nunca aparecem. Um site atrás da Cloudflare é lido pela rede da Cloudflare, e o resultado informa isso.
Verifique os headers de segurança com os testes do Mozilla Observatory
Os mesmos 12 testes e pontos do código do Observatory, as duas rodadas calculadas na coluna de pontuação e um link para a análise do próprio Mozilla do host.
Verificador do header Server: software, CDN e protocolo
Server e X-Powered-By com qualquer versão que revelem, a CDN e seu status de cache, a versão do TLS, HTTP/2 e HTTP/3.
Verificador de HSTS e prontidão para preload
max-age, includeSubDomains e preload lidos contra as regras do hstspreload.org, como informação: o preload é opcional.

A nota e o vereditoA nota e os pontos do Observatory para a página final, com as correções que mais valem primeiro.Uma linha de header, como enviadaCada linha com as maiúsculas e a ordem do próprio servidor; a marca na margem é o resultado do teste desse header.A rodada de bônusOs bônus só contam quando a pontuação ainda é 90 ou mais depois de todas as penalidades: as duas rodadas do Observatory.As visõesSegurança com a correção por servidor, depois cache, cookies, servidor e protocolo, e os redirecionamentos.Quais headers de segurança todo site deve enviar?
Comece por quatro: Content-Security-Policy, Strict-Transport-Security, proteção contra enquadramento (X-Frame-Options ou o frame-ancestors do CSP) e X-Content-Type-Options: nosniff. A falta deles custa mais pontos na nota do Mozilla HTTP Observatory.
Referrer-Policy e as políticas de origem cruzada (COOP, COEP e CORP) rendem pontos de bônus quando o básico está certo. Vale configurar o Permissions-Policy, mas só os navegadores Chromium o leem, e o Observatory não o pontua.
| Header | Impede | Ausente | Bem configurado | Funciona em |
|---|---|---|---|---|
| Content-Security-Policy | scripts injetados | −25 | +5 / +10 | |
| Strict-Transport-Security | um downgrade para http:// | −20 | +5 em preload | |
| X-Frame-Options · frame-ancestors | clickjacking em um frame oculto | −20 | +5 | |
| X-Content-Type-Options | arquivos executados com o tipo errado | −5 | 0 | |
| Referrer-Policy | URLs completas vazando para outros sites | 0 | +5 | |
| Cross-Origin-Opener-Policy | outras janelas acessando a sua | 0 | +10 | |
| Cross-Origin-Embedder-Policy | carregar o que não aceitou | 0 | +10 | |
| Cross-Origin-Resource-Policy | outros sites incorporando seus arquivos | 0 | +10 | |
| Permissions-Policy | embeds usando câmera, microfone, localização | — | não pontuado | só |
Como a nota de segurança é calculada?
Seguimos o método do Mozilla HTTP Observatory teste a teste: começar em 100, subtrair cada penalidade e, só se o resultado ainda for 90 ou mais, somar os bônus. A pontuação então vira uma nota de F a A+ (documentação de pontuação do Observatory).
Essa segunda rodada surpreende: um site com um erro caro não mantém nenhum dos seus bônus. Com COOP e COEP adicionados em 2026, o código do Observatory permite até 165 pontos, enquanto a documentação ainda dizia 145 em 24 de outubro de 2026; seguimos o código. Cada resultado leva à análise do próprio Mozilla do host, para você comparar.
github.comA+
- Início100
- Sem SRI em scripts externos−595
- 90 ou mais: a rodada de bônus conta
- Cookies: Secure, HttpOnly, SameSite+5
- Referrer-Policy+5
- HSTS em preload+5
- Enquadramento via CSP+5
- Pontuação115
www.mozilla.orgB+
- Início100
- O CSP permite 'unsafe-inline'−2080
- abaixo de 90: a rodada de bônus é ignorada
- COOP com same-origin+10
- Referrer-Policy+5
- Enquadramento via CSP+5
- Pontuação80
O que é HSTS, e você deve fazer o preload?
O Strict-Transport-Security diz aos navegadores para usar só https:// em um host por max-age segundos, e includeSubDomains estende isso a todos os subdomínios (RFC 6797). Os navegadores o ignoram em http:// puro, e só o primeiro header desse tipo conta. O Observatory tira 20 pontos quando ele falta e 10 quando o max-age é menor que seis meses.
O preload é opcional: o hstspreload.org agora diz que o HSTS é recomendado, mas o preload não, porque Chrome e Safari já atualizam as navegações para HTTPS e sair da lista leva meses. Para enviar mesmo assim, você precisa de um max-age de pelo menos um ano, includeSubDomains, preload e HTTPS em todos os subdomínios; aumente o max-age em etapas antes.
github.comna lista de preload
- Certificado válido
- http:// para https:// primeiro no mesmo hosthttp://github.com → https://github.com/
- www também em HTTPS
- max-age de 31536000 ou maismax-age=31536000
- diretiva includeSubDomains
- diretiva preload
- HSTS também no seu redirecionamento para https://
mozilla.orgfora da lista
- Certificado válido
- http:// para https:// primeiro no mesmo host302 → https://mozilla.org:443/
- www também em HTTPS
- max-age de 31536000 ou maismax-age=60
- diretiva includeSubDomains
- diretiva preload · não enviado
- HSTS também no seu redirecionamento para https://
Aumentando o max-age, como o hstspreload.org sugere
- 3005 min · para testar
- 6048007 dias
- 259200030 dias
- 31536000365 dias · o mínimo do preload
Nenhum dos resultados é uma falha: o hstspreload.org diz que o preload não é recomendado para a maioria dos sites, e o HSTS sem ele protege todo visitante depois da primeira visita.
O que faz um Content-Security-Policy?
Um Content-Security-Policy lista de onde uma página pode carregar scripts, estilos, imagens e frames, para que um script injetado por um invasor de qualquer outro lugar não seja executado. Sua diretiva frame-ancestors também diz quem pode enquadrar a página e substitui o X-Frame-Options (CSP Level 3).
'unsafe-inline' em script-src desfaz a maior parte dessa proteção, e por isso o Observatory tira 20 pontos por ele; use nonces ou hashes (com um deles na lista, os navegadores ignoram 'unsafe-inline'). Um header Content-Security-Policy-Report-Only não bloqueia nada, só relata, o que o torna a forma segura de testar uma nova política primeiro.
github.com
default-srctudo que não está listado abaixo'none'base-urio <base href> da página'self'script-srcde onde os scripts podem carregargithub.githubassets.com 'sha256-6AKuI+cDd1MoUL1u4eqrA9PXmnPAkOB4h7421hPUUm0='style-srcfolhas de estilo'unsafe-inline' github.githubassets.comimg-srcimagens'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com …frame-ancestorsquem pode enquadrar esta página'none'form-actionpara onde os formulários podem enviar'self' github.com gist.github.com copilot-workspace.githubnext.com …script-src em www.mozilla.org'self' 'unsafe-eval' 'unsafe-inline' *.google-analytics.com *.googletagmanager.com google-analytics.com …default-src 'none' e permite cada fonte pelo nome. Com um nonce ou um hash na lista, os navegadores ignoram 'unsafe-inline'; o Observatory então também não o conta.Cache-Control explicado: por quanto tempo uma cópia pode ser reutilizada?
Pelo número de segundos que o seu max-age indica: o Cache-Control diz aos navegadores e às CDNs por quanto tempo podem reutilizar uma resposta sem consultar o servidor de novo, e o s-maxage define uma duração separada para caches compartilhados, como as CDNs (RFC 9111).
no-cache não significa "não guarde em cache": significa guarde, mas consulte o servidor antes de cada reutilização; no-store mantém a resposta fora de todo cache. O header Age diz quão velha já é a cópia de uma CDN, e sem nenhum Cache-Control um navegador pode estimar uma duração de cerca de 10% do tempo desde o Last-Modified.
Cache-Control: s-maxage=86400, must-revalidate, max-age=3600
Caches compartilhados (CDN)s-maxage=86400 · 24 hrestam 21 h e 39 min
Navegadoresmax-age=3600 · 1 hvencida
| no-store | nunca gravar em nenhum cache |
|---|---|
| no-cache | guardar, mas consultar o servidor antes de cada reutilização |
| max-age=N | fresca por N segundos (o Expires é então ignorado) |
| s-maxage=N | o mesmo, só para caches compartilhados |
| private | só navegadores, nunca uma CDN |
| immutable | não revalidar ao recarregar (o Chrome ignora) |
Quais headers HTTP estão obsoletos?
X-XSS-Protection, Expect-CT, Public-Key-Pins, Feature-Policy e P3P não fazem mais nada útil nos navegadores atuais. O X-XSS-Protection deve ser 0 ou ausente, porque o antigo filtro podia abrir brechas por si só (OWASP).
Números de versão no Server e qualquer header X-Powered-By não estão obsoletos, mas a RFC 9110 e a OWASP desaconselham ambos: eles dizem aos invasores quais bugs conhecidos tentar (RFC 9110 §10.2.4).
X-XSS-Protection: 1; mode=blockenvie 0, ou nada
O Chrome 78 e o Safari 15.4 removeram seus filtros XSS; o Firefox nunca teve um. github.com e www.google.com enviam 0.
Expect-CTremova
Obsoleto desde o Chrome 107: o Certificate Transparency é exigido de qualquer forma.
ChromePublic-Key-Pinsremova
Removido no Chrome 72; nenhum navegador atual o suporta.
ChromeFeature-Policytroque por Permissions-Policy
Renomeado: o header antigo está obsoleto.
ChromeP3Premova
Um padrão de privacidade morto que nenhum navegador atual lê; www.youtube.com ainda envia um.
YouTubeServer: Apache/2.4.62 (Ubuntu)
X-Powered-By: PHP/8.3.12tire a versão
Um exemplo fictício: a RFC 9110 e a OWASP dizem que esse detalhe só ajuda os invasores.
ApacheComo ver os headers HTTP no Chrome ou com curl?
No Chrome, abra o DevTools (F12), escolha Rede, recarregue, clique na primeira linha e abra Cabeçalhos. Com o curl, curl -sI https://example.com imprime o cabeçalho de resposta; acrescente --http1.1 para ver a grafia do próprio servidor.
Em HTTP/2 e HTTP/3 todo nome de header fica em minúsculas por regra (RFC 9113 §8.2.1), então o DevTools mostra strict-transport-security onde o servidor pode ter escrito Strict-Transport-Security. Este verificador lê por HTTP/1.1 e mantém o cabeçalho exatamente como enviado.
$ curl -sI --http1.1 https://github.com HTTP/1.1 200 OK Date: Sat, 24 Oct 2026 08:19:43 GMT Content-Type: text/html; charset=utf-8 Vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Reques… content-language: en-US ETag: W/"6995be88733b84f6fb0c35e84ad1df53" Cache-Control: max-age=0, private, must-revalidate Strict-Transport-Security: max-age=31536000; includeSubdomains; preload X-Frame-Options: deny X-Content-Type-Options: nosniff …
DevTools › Rede › a linha do documento › Cabeçalhos. Marque Bruto para ver as linhas como recebidas. Em HTTP/2 todo nome chega em minúsculas; --http1.1 mostra a grafia do próprio servidor.
Verificador de headers HTTP: perguntas frequentes
Qual é uma boa nota de headers de segurança?
Por que minha nota é diferente da do securityheaders.com?
Os headers de segurança podem quebrar meu site?
Posso verificar os headers HTTP com uma requisição HEAD?
O X-XSS-Protection ainda é necessário?
O que faz o X-Content-Type-Options: nosniff?
Por que os nomes dos headers aparecem em minúsculas no Chrome DevTools?
Como adicionar headers de segurança no nginx ou na Cloudflare?
O que é o header Server, e devo escondê-lo?
O verificador de headers guarda os headers ou os cookies?
Sentiu falta de algo?Sugira um recurso ou uma nova ferramenta
Ferramentas de site relacionadas
Verificador de Redirecionamento
Verifique redirecionamentos de URL, cadeias de redirecionamento e códigos de status HTTP para SEO
Verificador de Certificado SSL
Verifique a validade e detalhes de segurança do certificado SSL
Verificador de Site Fora do Ar
Está fora do ar para todos ou só para você? Verifique qualquer site de 11 lugares e da sua conexão, com uma captura de tela ao vivo
Detector de CMS
Qual CMS, tema, plugins e tecnologias um site usa, com a prova de cada um
Analisador de Links
Analise todos os links de uma página com detecção dofollow/nofollow e verificação de status HTTP
Verificador de Hospedagem
Descubra quem hospeda qualquer site: hospedagem, CDN, CMS, provedor de e-mail, registrador e emissor do SSL
Consulta DNS
Todos os registros DNS direto dos servidores do domínio, ao lado do cache do Google e da Cloudflare
Localizador de Subdomínios
Descubra todos os subdomínios de qualquer domínio