Toda resposta HTTP começa com uma linha de status e um bloco de headers (os cabeçalhos), e os headers de que o navegador precisa são poucos e conhecidos: o tipo de conteúdo, o tamanho, as regras de cache, a política de segurança. Nada impede o servidor de acrescentar outros. O protocolo ignora um header que não reconhece, e durante décadas a convenção para um header privado foi começar o nome com X- (a 6648 aposentou a convenção em 2012, mas não os headers). Nesse espaço que ninguém vigia, operadores colocaram coisas que não têm nada a ver com protocolo. Este artigo reúne as que vale a pena conhecer, com a fonte primária de cada uma, porque a graça do gênero está justamente em poder conferir: rode curl -I e lá está.
A homenagem: X-Clacks-Overhead
Terry Pratchett morreu em 12 de março de 2015. No romance Going Postal (2004), a comunicação a longa distância do Discworld é feita pelos clacks, uma cadeia de torres de semáforo que repassam as mensagens de uma para a outra, e o overhead de uma mensagem pode levar códigos de controle: G, mande para a próxima torre; N, não registre; U, no fim da linha, dê meia-volta e mande de volta. Um nome enviado como GNU circula pelas torres para sempre e nunca é anotado, e é assim que os operadores do livro mantêm vivo o nome de um colega que morreu. A ideia é que um homem não está morto enquanto o nome dele ainda é pronunciado.
Poucos dias depois da notícia, leitores do subreddit do Discworld se perguntaram qual seria o overhead da internet e chegaram a um header de resposta HTTP: uma informação de controle que vai junto com toda resposta e que só as máquinas, e quem se dá ao trabalho de olhar, chegam a ver. O header é X-Clacks-Overhead e o valor é GNU Terry Pratchett. Trechos de configuração para Apache (Header set) e Nginx (add_header) foram publicados em 15 de março de 2015; depois veio um plugin de WordPress e, em seguida, extensões de navegador que mostram um pequeno marcador quando o site envia o header. O próprio acrescentou o header. A wiki L-Space, a enciclopédia dos fãs do Discworld, mantém a lista de quem aderiu, e ela chega até o Minecraft, onde GNU Terry Pratchett é o texto de abertura número 338 a partir da Java Edition 1.8.5.
O header não faz nada. Os navegadores o ignoram e os caches o deixam passar; ele custa algumas dezenas de bytes por resposta. A ideia é exatamente essa: uma homenagem que não custa nada a quem lê e que só é encontrada por quem foi procurar. É com esse modelo que o resto do artigo compara os outros casos.
A piada: as citações de Futurama no Slashdot
Durante anos, toda resposta do slashdot.org trazia um header a mais, chamado X-Fry, X-Bender ou X-Lrrr, como os personagens de Futurama, e o valor era uma fala da série, sorteada a cada requisição. Não havia outro propósito além do próprio público: um site lido por gente que roda curl em tudo, mandando uma piada exatamente para essa gente. O levantamento de headers escondidos do How-To Geek começava por ele, e havia no commandlinefu um comando de uma linha só para buscar uma citação nova. É a forma mais pura do gênero, sem segundas intenções.
Os convites: X-hacker e X-Hi-Human
Duas empresas usaram o mesmo canal para recrutar. A Automattic, que opera o WordPress.com e a hospedagem WordPress usada pelos seus clientes maiores, já enviou um header X-hacker com vários textos. O mais conhecido convida a visitar a página de vagas da empresa e a se candidatar "to join the fun, mention this header"; o mais curto diz "Want root? Visit join.a8c.com and mention this header". Os engenheiros da Wikimedia viram o header no próprio blog, que era hospedado no VIP, e abriram um ticket para perguntar do que se tratava. A equipe de Production Infrastructure do Airbnb enviava X-Hi-Human: The Production Infrastructure team added this header. Come work with us! junto com o endereço de um engenheiro para candidaturas, o que Troy Hunt registrou em março de 2015 num texto sobre mensagens de recrutamento escondidas em sites.
A lógica faz sentido e é até um pouco lisonjeira. Quem inspeciona os headers de resposta de uma plataforma de blogs é justamente o tipo de pessoa que a plataforma pode querer contratar, e o "mention this header" permite saber por onde o candidato chegou. O mais simpático dos dois ainda começa dizendo oi.
O diagnóstico bem-humorado: x-nananana
O Batcache é o cache de página inteira da Automattic para WordPress, apoiado no memcached. O arquivo-fonte dele começa com o comentário nananananananananananananananana BATCACHE!!!, e as instalações em produção respondem com um header chamado x-nananana, cujo valor informa o estado do cache: Batcache-Hit quando a página saiu do cache. A Pressable, uma empresa de hospedagem montada sobre a mesma stack, orienta os clientes a procurar exatamente esse header para confirmar que o cache está funcionando. É um header de diagnóstico de verdade que, por acaso, também é uma piada, o tipo mais raro de todos: ele merece o lugar que ocupa na resposta.
Os códigos de status: 418 e 451
A tradição chegou duas vezes ao próprio padrão. A RFC 2324, o Hyper Text Coffee Pot Control Protocol, foi publicada em 1º de abril de 1998 por Larry Masinter; a seção 2.3.2 diz que qualquer tentativa de fazer café num bule de chá deve resultar no código de erro 418 "", e que o corpo da resposta pode ser baixinho e atarracado (short and stout). O código nunca fez parte do HTTP de verdade, mas frameworks web o implementaram por diversão. Quando o chair (o coordenador) do grupo de trabalho do HTTP questionou se valia a pena mantê-lo, em agosto de 2017, veio a campanha Save 418: Node.js, Go, ASP. e a biblioteca Requests mantiveram o código, e alguém apresentou uma proposta para reservar o 418, para que nada mais pudesse usar esse número. O verbete 418 do glossário conta a história completa.
A é a séria. Publicada em fevereiro de 2016 e escrita por Tim Bray, ela define o código de status 451 "Unavailable For Legal Reasons", para quando o acesso a um recurso é negado por causa de uma exigência legal; assim, um bloqueio determinado por um tribunal ou por um governo pode ser diferenciado de um 403 comum. O número é uma homenagem proposital a Fahrenheit 451, o romance de Ray Bradbury sobre a queima de livros, e os agradecimentos da RFC terminam com "Thanks also to Ray Bradbury." É um código oficial, da standards track (a trilha de padronização), com uma função real; a referência literária ficou escrita no próprio documento.
O que os bons exemplos têm em comum
Três coisas. Não custam nada a quem lê: alguns bytes no overhead, nenhuma mudança na página, nenhum pop-up. São verdadeiros: uma homenagem real, uma vaga real, um cache hit real, um código de status real. E são feitos para quem vai olhar, o que, na web, quer dizer quem lê headers e que, por isso, ganha uma pequena recompensa por um hábito que vale a pena ter. Uma mensagem escondida que falha em qualquer um desses três pontos (um banner que ninguém pediu, uma credencial falsa, uma piada mirada em quem nunca vai vê-la) não faz parte dessa tradição, por mais esperta que seja.
Como ler os headers
Qualquer cliente HTTP que mostre os headers de resposta serve. O curl -I https://example.com/ mostra a linha de status e os headers de uma requisição HEAD; o curl -sD - -o /dev/null https://example.com/ faz o mesmo com um GET, o que faz diferença nos servidores que respondem ao HEAD de outro jeito. No navegador, o painel de rede das ferramentas de desenvolvedor lista os headers de todas as respostas. O analisador de headers de segurança deste site lê um bloco de headers que você cola e explica os que importam para a segurança; o resto do bloco é onde ficam os easter eggs. O construtor de comandos curl monta as formas com -I e com -D, com cada flag explicada.
Os headers deste site
Desde outubro de 2026, toda resposta deste site traz duas linhas nessa tradição: X-Clacks-Overhead: GNU Terry Pratchett, porque vale a pena aderir à homenagem e ela não custa nada, e um segundo header, X-Collective, cujo valor afirma um fato sobre como o site é feito: aqui, boas ideias são assimiladas, com as suas fontes. O segundo é uma piada sobre o método, e o método existe de verdade: o changelog registra de onde veio cada ideia adotada, e o colofão diz isso com todas as letras. Os dois headers são definidos na configuração do host estático, ao lado dos headers de segurança, e por isso saem com toda página e todo arquivo. A resistência é inútil; a atribuição é obrigatória.
Desde 5 de outubro de 2026 há uma terceira linha, e ela muda a cada requisição. Toda página HTML deste site traz um header com o nome de um personagem e uma fala dele como valor: X-Fry, X-Bender, X-Farnsworth, X-Hypnotoad e X-Lrrr, de Futurama, na tradição do próprio Slashdot; X-Doh, X-Cowabunga, X-Eat-My-Shorts, X-Excellent, X-Okily-Dokily e X-Worst-Ever, de Os Simpsons; X-Tegridy, X-Chef, X-Authoritah, X-Mmkay, X-Timmy e X-Underpants-Gnomes, de South Park, entre uns quarenta e seis nomes e cinquenta e seis falas. O conjunto de falas é um pequeno arquivo JSON no repositório, em que cada entrada identifica o personagem e a série, e a fala é sorteada a cada resposta pelo Worker que roda na edge e serve as páginas. É por isso que ela aparece nas páginas, e não nas folhas de estilo nem nas imagens: uma piada feita para quem roda curl -I em tudo não tem leitores entre os arquivos de fonte. Pergunte duas vezes e você recebe duas respostas diferentes, que era todo o mecanismo do Slashdot, refeito em quarenta linhas. No build, o conjunto passa por uma verificação da única coisa que importa: o nome do header precisa ser um token e o valor precisa ser puro; senão, a piada quebraria a página que a carrega.
Fontes
- A wiki L-Space, "GNU Terry Pratchett": os códigos dos clacks G, N e U de Going Postal, a origem no Reddit de esconder o texto GNU em cabeçalhos de sites, e os adotantes incluindo o texto de abertura 338 do Minecraft (Java Edition 1.8.5)
- Boing Boing, 15 de março de 2015, "Sending Terry Pratchett home with HTTP headers": as configurações de Apache e Nginx transmitindo X-Clacks-Overhead: GNU Terry Pratchett
- IT Pro, 17 de março de 2015, "How Reddit ensured Sir Terry Pratchett's name lives on": administradores acrescentando o cabeçalho, a extensão de Chrome e o plugin de WordPress
- How-To Geek, "Stupid Geek Tricks: Find Hidden Messages in Web Site Headers": as citações de Futurama em X-Fry, X-Bender e X-Lrrr do Slashdot e outros cabeçalhos escondidos
- commandlinefu, "slashdot.org webserver adds an X-Bender or X-Fry HTTP header to every response"
- http.dev, "X-Hacker": o cabeçalho de recrutamento da Automattic e suas redações
- Wikimedia Phabricator T70982: o cabeçalho X-hacker visto em blog.wikimedia.org
- Troy Hunt, 31 de março de 2015, "Deconstruct websites, get hired": o cabeçalho X-Hi-Human do Airbnb e o gênero das mensagens de recrutamento
- Base de conhecimento da Pressable, "How does Batcache page caching work": o cabeçalho de resposta x-nananana Batcache-Hit
- Automattic/batcache, advanced-cache.php: o comentário no código-fonte que dá nome ao cabeçalho
- RFC 2324, Hyper Text Coffee Pot Control Protocol (HTCPCP/1.0), 1 de abril de 1998, seção 2.3.2
- save418.com: a proposta de agosto de 2017, os frameworks que mantiveram o 418 e a proposta de reserva
- RFC 7725, An HTTP Status Code to Report Legal Obstacles, fevereiro de 2016, com seu agradecimento a Ray Bradbury
- RFC 6648, Deprecating the "X-" Prefix and Similar Constructs in Application Protocols, junho de 2012