1001Ferramentas
🔗 Dev

Parser de Link Header

Decompõe um header Link (RFC 8288) listando cada URI com seus parâmetros (rel, type, title). Útil para APIs paginadas e Web Linking.

Link header: relações no cabeçalho em vez do HTML

O cabeçalho Link expressa no HTTP a mesma coisa que o elemento link expressa no HTML: uma relação entre o recurso atual e outro. A vantagem é que ele funciona para resposta que não é HTML — uma API JSON pode declarar as páginas seguinte e anterior sem inventar campo no corpo, e é exatamente o que a API do GitHub faz.

O parse tem uma armadilha que a página trata: as entradas são separadas por vírgula, mas vírgula também aparece dentro de URL e dentro de parâmetro entre aspas. Dividir o cabeçalho por vírgula sem considerar isso corta uma entrada no meio, e o resultado é um link truncado que parece válido. A separação correta ignora vírgula dentro dos sinais de menor e maior e dentro de aspas.

Os parâmetros mais usados são rel, que nomeia a relação; type, que antecipa o tipo de mídia do destino; e title. O rel é o único obrigatório na prática, e seus valores vêm de um registro da IANA — next, prev, first, last para paginação; preload e preconnect para desempenho; canonical e alternate para SEO.

Perguntas frequentes

Link no cabeçalho ou no HTML?
Para resposta HTML os dois funcionam e valem igual, mas o cabeçalho chega antes: o navegador o lê sem esperar o corpo, o que faz diferença em preload e preconnect. Para resposta que não é HTML, o cabeçalho é a única opção.
Como funciona a paginação com Link?
O servidor devolve as relações next, prev, first e last apontando para as URLs completas, e o cliente só as segue — sem montar parâmetro nem saber o esquema de paginação. É a forma que evita cliente quebrar quando a API muda de deslocamento para cursor, porque a URL vem pronta.
Dá para declarar canonical pelo cabeçalho?
Dá, e é a maneira de fazer isso em PDF, imagem e qualquer arquivo sem HTML onde não existe onde pôr a tag. Os buscadores respeitam. Só não use os dois com valores diferentes na mesma resposta, porque aí o comportamento depende de quem lê.

Ferramentas Relacionadas