Verificador de Cabeçalhos HTTP

Um verificador de cabeçalhos HTTP consulta uma URL e mostra os cabeçalhos de resposta que o servidor devolve: o código de status, os campos de cache e de cookies e os cabeçalhos de segurança que o navegador aplica. Este acrescenta uma pontuação de 0 a 100 calculada a partir de sete deles: HSTS, CSP, X-Content-Type-Options, X-Frame-Options, X-XSS-Protection, Referrer-Policy e Permissions-Policy. Para github.com devolve 200 OK em cerca de 60 ms, 17 cabeçalhos e 90/100, nota A+.

🌐
Testar:

O que este verificador de cabeçalhos HTTP mostra?

Digite um domínio: a ferramenta envia do nosso servidor uma requisição HEAD para esse endereço e depois mostra o código de status, o tempo de ida e volta em milissegundos, a lista completa de cabeçalhos de resposta e uma pontuação de segurança de 0 a 100 baseada em HSTS, Content-Security-Policy, X-Content-Type-Options, X-Frame-Options, X-XSS-Protection, Referrer-Policy e Permissions-Policy. Ela relata o que o servidor enviou: não segue redirecionamentos e não lê o corpo da página.

Incorporar esta ferramenta no seu site

× px

                        

💡 Dica de integração

Copie o código de incorporação e cole no HTML do seu site. A versão responsiva se adapta automaticamente a todos os tamanhos de tela.

0 avaliação
✓

Ferramentas populares

Não há mais ferramentas
Explorar todas as ferramentas

Se o status for 3xx, a página redireciona: siga cada salto com o verificador de redirecionamentos para descobrir onde a URL finalmente vai parar.

Sobre Verificador de Cabeçalhos HTTP

Este verificador de cabeçalhos HTTP recebe uma URL, envia para ela uma requisição HEAD a partir do nosso servidor e mostra o que voltou: o código de status com a frase de status, o tempo de ida e volta em milissegundos e cada cabeçalho de resposta enviado pelo servidor. Para github.com são 200 OK em cerca de 60 ms e 17 campos de cabeçalho, de content-type e etag até o valor completo de content-security-policy.

O cartão Pontuação de Segurança avalia sete cabeçalhos numa escala até 100. Strict-Transport-Security e Content-Security-Policy valem 20 pontos cada, X-Content-Type-Options e X-Frame-Options 15 cada, e X-XSS-Protection, Referrer-Policy e Permissions-Policy 10 cada. A partir de 90 pontos a nota é A+, 80 dá A, 70 B, 60 C, 40 D e abaixo disso F. github.com fica com 90/100 porque falta Permissions-Policy; example.com não envia nenhum dos sete e fica com 0.

A pontuação mede a presença, não a qualidade. O valor x-xss-protection: 0 desliga esse filtro e mesmo assim soma os dez pontos, enquanto um cabeçalho content-security-policy-report-only não soma nenhum: leia os valores exibidos sob cada linha marcada como Present em vez de confiar apenas na nota. Redirecionamentos não são seguidos: google.com responde 301 com location: https://www.google.com/, e é preciso colar esse endereço para avaliar o destino. A requisição é do tipo HEAD, portanto nenhum HTML, meta tag ou texto da página é analisado; ela desiste após dez segundos e vinte verificações por minuto são aceitas de um mesmo endereço.

A URL que você digita é enviada ao servidor deste site, que faz a requisição por você com o agente de usuário FreeWebTools Header Checker/1.0 e sem nenhum dos seus cookies ou sessão, de modo que você vê o que um visitante anônimo recebe. Faixas de IP privadas e reservadas, localhost, endpoints de metadados de nuvem e portas administrativas como 22, 3306 e 6379 são recusadas.

Casos de uso

Uma desenvolvedora que está implantando uma Content-Security-Policy verifica o domínio de homologação após cada publicação para confirmar que content-security-policy realmente aparece, e não apenas content-security-policy-report-only, que a pontuação ignora de propósito.
Um profissional de SEO que audita uma migração de domínio cola uma URL antiga, lê o 301 e o valor location devolvido, e cola esse destino de volta no campo para percorrer a cadeia salto a salto, já que a ferramenta nunca segue um redirecionamento por você.
Um administrador de sistemas que acabou de ativar o HSTS confirma que strict-transport-security traz um max-age longo mais includeSubDomains e preload antes de submeter o domínio à lista de precarga; github.com devolve max-age=31536000; includeSubdomains; preload.
Um analista de suporte atrás de conteúdo desatualizado lê cache-control, etag, age e cf-cache-status na tabela Todos os Cabeçalhos de Resposta para separar cache de borda de cache do navegador: example.com responde com cf-cache-status: HIT e um age de vários milhares de segundos.
Um estudante que está aprendendo HTTP clica nos exemplos google.com, github.com, cloudflare.com e stackoverflow.com em sequência e compara conjuntos reais de cabeçalhos e notas de F a A+ lado a lado, sem instalar o curl nem abrir as ferramentas de desenvolvedor.

Como verificar os cabeçalhos de resposta HTTP de um site

1

Digite um domínio ou um endereço completo no campo de busca, por exemplo example.com; o prefixo https:// é acrescentado para você. Você também pode clicar em um dos exemplos ao lado de Testar: google.com, github.com, cloudflare.com ou stackoverflow.com.

2

Pressione Enter ou clique em Verificar. A requisição sai do nosso servidor como requisição HEAD, então só os cabeçalhos voltam, nunca o corpo da página.

3

Leia os três cartões de resumo: Código de Status com a frase de status, Pontuação de Segurança em 100 com a nota em letra e Tempo de Resposta em milissegundos.

4

Percorra Cabeçalhos de Segurança para ver quais entre HSTS, CSP, X-Content-Type-Options, X-Frame-Options, X-XSS-Protection, Referrer-Policy e Permissions-Policy estão marcados como Present ou Missing, e leia o valor mostrado sob cada um dos presentes.

5

Abra Todos os Cabeçalhos de Resposta para ler o nome e o valor de cada cabeçalho devolvido pelo servidor, incluindo os campos de cache, cookie e CDN que a pontuação não cobre.

6

Clique em Copiar para colocar o relatório inteiro — URL, status, pontuação com a nota e a lista de cabeçalhos — na área de transferência como texto puro.

Dicas Pro

  • Digite só o domínio: o campo acrescenta https:// por você, então github.com é verificado como https://github.com. Escreva http:// explicitamente para ver a resposta em HTTP simples, onde strict-transport-security costuma faltar porque a RFC 6797 manda os navegadores ignorá-lo numa conexão insegura.
  • A pontuação premia a presença, não o valor. github.com envia x-xss-protection: 0, que desliga o filtro, e ainda assim leva os dez pontos completos: leia a linha cinza com o valor sob cada linha marcada como Present antes de confiar na nota.
  • Uma política em modo report-only não pontua. google.com envia content-security-policy-report-only sem política aplicada e perde os 20 pontos de CSP; o selo Present só aparece para o nome de cabeçalho exato content-security-policy.
  • Quando o cartão Código de Status mostra 301 ou 302, copie o valor location da tabela de cabeçalhos e faça uma segunda verificação sobre ele. A própria resposta de redirecionamento quase não traz cabeçalhos de segurança, e é por isso que google.com fica em 25/100.
  • O botão Copiar coloca todo o relatório na área de transferência como texto puro — URL, status, pontuação com a nota e cada cabeçalho —, que é o que você cola num chamado. Distribua o trabalho em série em vinte verificações por minuto; acima disso a API responde 429 e a página mostra uma mensagem de falha genérica.

Solução de problemas

Problema:

A página mostra “Failed to check headers. Please verify the URL is accessible.” mesmo que o site abra normalmente no seu navegador.

Solução:

Essa mensagem genérica aparece quando a resposta voltou inutilizável. A causa mais comum é o limite de requisições: acima de vinte verificações por minuto do mesmo endereço, a API responde 429 Too Many Requests. Espere um minuto e tente de novo. A mesma mensagem aparece quando o servidor leva mais que os dez segundos de tempo limite para responder à requisição HEAD.

Problema:

A linha de erro diz “Connection failed: SSL certificate problem: certificate has expired”.

Solução:

O certificado é verificado em vez de aceito às cegas, então um certificado vencido, autoassinado ou emitido para outro nome de host interrompe a verificação em vez de produzir um relatório enganoso. Renove ou corrija o certificado, ou verifique o endereço em http:// para ler os cabeçalhos que o servidor envia antes de o TLS entrar em cena.

Problema:

A linha de erro diz “Internal URLs not allowed”, “Private IPs not allowed” ou “This port is not allowed”.

Solução:

A ferramenta recusa localhost, faixas de IP privadas e reservadas, endpoints de metadados de nuvem e as portas 22, 23, 25, 3306, 5432, 6379, 11211, 27017, 8080 e 8443, para que não vire um scanner de rede interna. Use um nome de host resolvível publicamente na porta 80 ou 443; para um servidor local, rode curl -I na própria máquina.

Problema:

O cartão Código de Status mostra 301 ou 302, apenas um punhado de cabeçalhos e uma pontuação de segurança baixa.

Solução:

Redirecionamentos não são seguidos de propósito, então o que você está avaliando é a resposta de redirecionamento, não o destino. google.com responde 301 com location: https://www.google.com/ e por isso fica em 25/100. Copie o valor location da tabela de cabeçalhos e faça uma segunda verificação sobre ele para avaliar a página onde os visitantes realmente chegam.

Problema:

A linha de erro diz “Connection failed: Could not resolve host”.

Solução:

Nosso servidor não encontrou nenhum registro DNS público para esse nome de host. Confira a grafia, remova o espaço ou a aspa que entrou junto com o endereço colado e confirme que o domínio resolve fora da sua rede. Um host que só existe no seu arquivo hosts, atrás de uma VPN ou num resolvedor interno não pode ser alcançado daqui.

Perguntas frequentes

Digite o domínio no campo no topo desta página e pressione Enter ou clique em Verificar. Nosso servidor envia uma requisição HEAD para essa URL e a página preenche três cartões — Código de Status, Pontuação de Segurança e Tempo de Resposta — seguidos da análise Cabeçalhos de Segurança e de uma tabela com todos os cabeçalhos recebidos. github.com responde 200 OK em cerca de 60 ms com 17 campos. Não é preciso extensão, comando curl nem ferramentas de desenvolvedor.

Um cabeçalho HTTP é uma linha de nome e valor anexada a uma requisição ou a uma resposta para descrevê-la. content-type: text/html; charset=utf-8 informa o tipo de mídia, cache-control informa por quanto tempo a resposta pode ser reaproveitada e location nomeia o destino de um redirecionamento. A RFC 9110, HTTP Semantics, define a sintaxe dos campos e o registro dos seus nomes. Os cabeçalhos viajam ao lado do corpo, nunca dentro dele; esta página lista apenas cabeçalhos de resposta.

Os sete avaliados aqui são Strict-Transport-Security, Content-Security-Policy, X-Content-Type-Options, X-Frame-Options, X-XSS-Protection, Referrer-Policy e Permissions-Policy. HSTS e CSP pesam 20 pontos cada, X-Content-Type-Options e X-Frame-Options 15 cada e os três restantes 10 cada. A MDN marca X-XSS-Protection como obsoleto e não padronizado e recomenda em seu lugar uma Content-Security-Policy sólida, então trate esses dez pontos como um sinal herdado, não como uma meta.

Faça a verificação e leia a seção Cabeçalhos de Segurança: cada um dos sete traz um selo Present ou Missing, uma descrição de uma linha e, quando presente, o valor exato devolvido pelo servidor. O cartão Pontuação de Segurança traduz isso em 0-100 com uma nota — 90 ou mais é A+, 80 é A, 70 B, 60 C, 40 D e abaixo de 40 F. github.com fica em 90/100, faltando apenas Permissions-Policy.

Pressione F12 para abrir as ferramentas de desenvolvedor, vá para a aba Rede, recarregue a página, clique na requisição do documento e leia o painel de cabeçalhos de resposta. Isso mostra o que o seu próprio navegador recebeu, incluindo cookies e negociação de conteúdo. Esta página é a contraparte neutra: a requisição sai do nosso servidor com o agente de usuário FreeWebTools Header Checker/1.0 e sem cookies, então você vê o que um visitante anônimo recebe.

Os cabeçalhos carregam tudo o que numa mensagem não é o corpo: o resultado da transferência, o tipo de mídia e a codificação, as regras de cache e revalidação, os cookies e as políticas de segurança que o navegador precisa aplicar. Sem content-type o navegador tem de adivinhar o formato; sem strict-transport-security ele pode continuar falando HTTP simples; sem content-security-policy um script injetado roda sem obstáculo. O corpo sozinho não expressa nada disso.

Cada campo ocupa uma linha: nome, dois-pontos, um espaço opcional e o valor, como em x-frame-options: deny. A RFC 9110, seção 5.1, torna os nomes de campo insensíveis a maiúsculas e minúsculas, e o HTTP/2 exige a forma minúscula — por isso a tabela acima mostra content-type e não Content-Type. Um campo pode legitimamente se repetir; nesse caso este verificador mantém o último valor que analisa.

Sim. O TLS criptografa toda a mensagem HTTP, cabeçalhos inclusive, então quem observa a rede vê o endereço IP de destino e o nome do host no SNI, mas não os nomes dos campos, os valores nem os cookies. Em HTTP simples nada é protegido, e é para isso que existe o Strict-Transport-Security: a RFC 6797 obriga o navegador a usar HTTPS com aquele host durante todo o período de max-age, e os navegadores ignoram o cabeçalho se ele chegar por HTTP.

Os nomes de campo não. A RFC 9110, seção 5.1, afirma que nomes de campo são insensíveis a maiúsculas e minúsculas: Content-Type e content-type são o mesmo campo, e o HTTP/2 impõe a forma minúscula. Os valores são outra história: um navegador aceita tanto x-frame-options: DENY quanto deny, mas uma URL de location, um ETag ou um nonce dentro de uma Content-Security-Policy são comparados exatamente como estão escritos.

Não. Esta página relata cabeçalhos de resposta, porque a requisição é feita pelo nosso servidor e não pelo seu navegador. Para ler os cabeçalhos que o seu navegador envia, abra as ferramentas de desenvolvedor, vá à aba Rede e expanda os cabeçalhos de requisição, ou use um serviço que devolva o eco da requisição. Tudo o que aparece aqui — o status, a pontuação e a tabela — descreve o site que você digitou, não o seu cliente.

FreeWebTools AI
Powered by free AI models · Full chat →