Header parser online: cabeçalhos em tabela e JSON
Este header parser online transforma cabeçalhos HTTP brutos, ou o bloco de cabeçalhos de um email, em uma tabela ordenada e filtrável, com uma linha por cabeçalho. Cabeçalhos repetidos, como Set-Cookie, ficam em uma única linha com cada valor listado separadamente, e o conjunto todo pode ser copiado como JSON. A ferramenta só organiza o texto que você cola: nada é consultado, verificado ou decodificado.
Como usar o parser de cabeçalhos passo a passo
- Copie os cabeçalhos: da aba Rede das ferramentas de desenvolvedor do navegador, da saída de
curl -iou do início do código-fonte de um email. Cole apenas as linhas de cabeçalho, sem o corpo que vem depois. - Cole-os em Cabeçalhos brutos. O campo aceita até 5 MB (5.000.000 de caracteres).
- Em Modo de análise, escolha E-mail / RFC 5322 (o padrão) ou HTTP estrito. A diferença está explicada mais abaixo.
- Clique em Analisar cabeçalhos. A tela Cabeçalhos analisados abre com uma tabela de Nome e Valor, ordenada de A a Z pelo nome, sem diferenciar maiúsculas de minúsculas. Valores longos, como uma assinatura DKIM, rolam para o lado dentro da tabela.
- Digite em Filtrar por nome ou valor para reduzir as linhas. A contagem abaixo muda de, por exemplo, "12 cabeçalhos" para "3 de 12 cabeçalhos", e o filtro ignora maiúsculas e minúsculas.
- Clique em Copiar como JSON para levar todos os cabeçalhos analisados para a área de transferência. Editar cabeçalhos volta ao texto colado, que continua lá, então você pode corrigir uma linha e analisar de novo.
Analisar cabeçalho de email: exemplo de entrada e saída
O bloco de exemplo tem uma linha de status de resposta (HTTP/1.1 200 OK), três cabeçalhos comuns, duas linhas Set-Cookie (uma escrita em minúsculas) e um cabeçalho Received dobrado em uma segunda linha.
No modo padrão "E-mail / RFC 5322", o resultado são quatro linhas. Os dois cookies dividem uma linha, o valor dobrado de Received é unido em uma só linha e a linha de status aparece como ignorada, porque não tem nome antes dos dois-pontos. "Copiar como JSON" entrega:
{"Cache-Control": "no-store", "Content-Type": "text/html; charset=utf-8", "Received": "from mail.example.com by mx.example.net; Tue, 1 Oct 2024 09:00:00 +0000", "set-cookie": ["id=a3fWa; Path=/", "theme=dark"]}
A linha unida mantém a primeira grafia que apareceu, set-cookie, e vira uma lista porque o cabeçalho apareceu duas vezes. Um cabeçalho que aparece uma única vez é um texto simples.
HTTP estrito ou E-mail / RFC 5322: qual modo escolher
Os modos só diferem no que fazem com uma linha que começa com espaço ou tabulação.
- E-mail / RFC 5322: a linha é unida à de cima com um único espaço. Serve para cabeçalhos de email, em que valores longos como Received e DKIM-Signature são quebrados em várias linhas.
- HTTP estrito: a linha é rejeitada e listada como ignorada, sem ser unida. Serve para requisições e respostas HTTP, em que uma linha recuada não é continuação e você quer vê-la sinalizada.
Se não tiver certeza, deixe o padrão. Ele é o mais tolerante dos dois.
O que o parser ignora, une e deixa como está
- A divisão acontece nos primeiros dois-pontos. O nome é tudo o que vem antes e o valor é tudo o que vem depois, então um valor com dois-pontos dentro, como uma data ou uma URL, permanece inteiro.
- Linhas ignoradas: uma linha sem nome antes dos dois-pontos não é um cabeçalho. Isso vale para uma linha de status HTTP (
HTTP/1.1 200 OK), uma linha de requisição (GET /index.html HTTP/1.1) e texto solto. Um aviso acima da tabela conta as linhas ignoradas e mostra as cinco primeiras. - Pseudocabeçalhos: nomes do HTTP/2 que começam com dois-pontos, como
:authoritye:method, são aceitos e ficam no topo. - Nomes repetidos: são comparados sem diferenciar maiúsculas de minúsculas. Cada valor mantém sua própria linha na tabela, na ordem em que apareceu.
- Valores vazios: um cabeçalho sem nada depois dos dois-pontos aparece como "(vazio)".
- Linhas em branco são ignoradas, mas não encerram os cabeçalhos. Qualquer linha posterior com nome e dois-pontos, mesmo do corpo de um email, vira uma linha da tabela, então copie só o bloco de cabeçalhos.
Como ver o cabeçalho do email: o que este parser não faz
Ele só estrutura texto. Não rastreia a rota de uma mensagem, não verifica SPF, DKIM nem DMARC, não julga se um email é spam ou legítimo e não decodifica valores: palavras codificadas como =?UTF-8?B?…?= e strings em Base64 aparecem do jeito que você colou. Se quiser ler de um email o remetente, os resultados de autenticação e a rota de servidor em servidor, use "Analisador de cabeçalho de e-mail".
A análise roda no seu navegador, e os cabeçalhos colados não são enviados nem salvos. Isso importa aqui, porque blocos de cabeçalhos costumam conter cookies de sessão, chaves de API e endereços de email.
Perguntas frequentes
Como copiar os cabeçalhos da requisição no Chrome?
Abra as ferramentas de desenvolvedor, vá até a aba Rede e recarregue a página. Clique com o botão direito na requisição e escolha no menu a opção de copiar os cabeçalhos da requisição (ou da resposta). Cole o resultado em "Cabeçalhos brutos" e clique em "Analisar cabeçalhos". O Firefox tem o mesmo menu de copiar em uma requisição da aba Rede. Com curl -i, cole só as linhas de cabeçalho, sem o corpo da resposta que vem depois.
Os cabeçalhos HTTP diferenciam letras maiúsculas e minúsculas?
Os nomes não: Content-Type, content-type e CONTENT-TYPE são o mesmo cabeçalho, então o parser os une em uma linha com a grafia que apareceu primeiro. Os valores ficam como foram escritos, exceto os espaços no começo e no fim, porque alguns valores, como os de cookies e tokens, diferenciam maiúsculas de minúsculas.
Uma resposta pode ter mais de um Set-Cookie?
Pode. Uma resposta envia uma linha Set-Cookie por cookie, e Set-Cookie é o exemplo clássico de cabeçalho que não pode ser unido com vírgulas com segurança. O parser lista cada valor de Set-Cookie na sua própria linha dentro de uma única linha da tabela, e "Copiar como JSON" transforma essa linha em uma lista. Cabeçalhos Received em emails se repetem do mesmo jeito, um por servidor.
O que são pseudocabeçalhos do HTTP/2, como :authority?
São os campos da requisição que o HTTP/2 escreve como cabeçalhos cujo nome começa com dois-pontos: :method, :scheme, :authority e :path, mais :status nas respostas. :authority carrega o host, como o cabeçalho Host no HTTP/1.1. O parser trata os dois-pontos iniciais como parte do nome, então eles aparecem como linhas comuns, ordenadas antes dos demais cabeçalhos.
Como obter os cabeçalhos HTTP em JSON?
Cole os cabeçalhos, clique em "Analisar cabeçalhos" e depois em "Copiar como JSON". Você recebe um objeto JSON com os nomes dos cabeçalhos como chaves. Um cabeçalho que apareceu uma vez é um texto; um que se repetiu, como Set-Cookie, é uma lista de textos na ordem em que apareceram. O JSON sempre traz todos os cabeçalhos analisados, mesmo que o filtro esteja escondendo algumas linhas.
Qual modo usar para ler cabeçalho de email?
Use "E-mail / RFC 5322", que é o padrão. Ele une à linha de cima as que começam com espaço ou tabulação, como nos valores longos de Received ou DKIM-Signature. Para respostas HTTP em que você quer ver sinalizadas as linhas recuadas, escolha "HTTP estrito".
É seguro colar cookies e tokens em um parser de cabeçalhos online?
A análise roda no seu navegador e nada do que você cola é enviado ou salvo, então esta página não manda para lugar nenhum os cookies e tokens de um bloco de cabeçalhos. Mesmo assim, trate um cookie de sessão ativo ou um cabeçalho Authorization como uma senha: troque o valor antes de compartilhar os cabeçalhos ou o JSON com alguém.