Como criar um encurtador de URLs
Um encurtador de URLs guarda um endereço web longo sob um código curto e redireciona quem visita a ligação curta. O núcleo é minúsculo — uma tabela e uma rota de redirecionamento —, por isso é um primeiro projeto clássico. O que torna um encurtador real útil é o resto: um domínio curto, slugs personalizados, contagem de cliques, edição do destino de uma ligação e impedir que spammers usem o seu domínio para esconder ligações de phishing. Decida cedo se é para si e para a sua equipa ou aberto ao público, porque os encurtadores públicos atraem abusos rapidamente.
O que um encurtador de URLs precisa
Dados
| Tabela | Campos |
|---|---|
| Ligações | Código curto, URL de destino, proprietário, título, data de criação, indicador de ativo, validade opcional |
| Cliques | Ligação, hora, referenciador, país, tipo de dispositivo |
| Domínios (opcional) | Domínios curtos personalizados e os respetivos proprietários |
Coloque um índice único no código curto. Duas ligações com o mesmo código é o único erro que tem de ser impossível.
Páginas e rotas
- A rota de redirecionamento —
/{código}procura o código e redireciona. É a única rota que a maioria dos visitantes alguma vez toca, por isso tem de ser rápida e nunca mostrar a interface da sua app. - Criar ligação — cole um URL, escolha opcionalmente um slug personalizado e obtenha a ligação curta com um botão de copiar.
- Lista de ligações — as suas ligações com contagem de cliques, pesquisa e interruptores de ativar/desativar.
- Detalhe da ligação — cliques ao longo do tempo, principais referenciadores, países, dispositivos. Edite o destino.
- Página de não encontrado para códigos desconhecidos ou desativados.
- Código QR para cada ligação — barato de acrescentar e muitas vezes pedido.
Decisões e compromissos
Tipo de redirecionamento. Um redirecionamento 301 (permanente) pode ser guardado em cache pelos navegadores, por isso os visitantes que voltam saltam o seu servidor: perde cliques e não consegue mudar o destino para eles. Use 302 ou 307 se registar cliques ou permitir edição. É o que fazem a maioria dos encurtadores com rastreio.
Códigos curtos. Códigos aleatórios de seis ou sete caracteres (letras e dígitos) são difíceis de adivinhar e têm bastante espaço. Evite caracteres confusos (0/O, 1/l) se as pessoas vão escrever as ligações à mão. Os códigos sequenciais revelam quantas ligações tem e permitem que qualquer pessoa as percorra.
Slugs personalizados. /lancamento vale mais do que /x7Kp2q. Reserve as palavras que a sua app usa (login, api, admin), bloqueie slugs ofensivos se a ferramenta for pública e decida se os slugs distinguem maiúsculas de minúsculas. Não os distinguir é mais simpático.
Velocidade. Um encurtador acrescenta um salto antes de cada visita. Mantenha a rota de redirecionamento numa única pesquisa indexada, e registe o clique depois de enviar o redirecionamento (ou em segundo plano), para que o rastreio nunca abrande o visitante. As apps em alojamentos que entram em repouso quando estão inativas podem demorar um pouco mais na primeira visita após um período sem uso; para uma ferramenta pessoal ou de equipa, isso costuma ser aceitável.
Análise de cliques e privacidade. Contar cliques, referenciadores e um país aproximado é normal. Guardar endereços IP completos e construir perfis de pessoas é onde a lei de privacidade começa a aplicar-se. Guarde o que vai realmente consultar e agregue sempre que possível. Veja como acrescentar análise de dados à sua app.
O domínio. A ligação só é tão curta quanto o seu domínio. Compre um domínio curto e aponte-o para a app; veja como ligar um domínio personalizado. Muitos alojamentos preferem um subdomínio (go.a-sua-marca.com) a um domínio raiz simples, o que é mais fácil de ligar.
Abusos. Se qualquer pessoa puder criar ligações, os spammers vão usar o seu domínio para disfarçar phishing e malware, e o seu domínio pode acabar em listas de bloqueio. Para um encurtador público: exija contas, limite a criação por frequência, verifique os destinos contra uma lista de URLs maliciosos como o Google Safe Browsing, bloqueie ligações para o próprio encurtador (ciclos de redirecionamento) e crie um interruptor de administração para desativar qualquer ligação de imediato. Um encurtador privado, só para a equipa, evita a maior parte disto.
Um primeiro prompt que funciona
Crie uma app web de encurtador de URLs para a minha equipa. Os utilizadores com login colam um URL de destino e recebem uma ligação curta com um código aleatório de 7 caracteres (sem 0, O, 1 nem l), ou escolhem um slug personalizado. Os slugs são únicos e não distinguem maiúsculas de minúsculas; reserve login, api, admin, app e settings. A rota pública /{código} procura o código com uma única consulta indexada e devolve um redirecionamento 302; registe o clique (hora, referenciador, país, tipo de dispositivo — sem endereço IP completo) sem atrasar o redirecionamento. Códigos desconhecidos ou desativados mostram uma página simples de não encontrado. Os utilizadores veem uma lista das suas ligações com contagem de cliques, podem editar o destino, desativar uma ligação, descarregar um código QR e abrir uma página de detalhe com cliques por dia, principais referenciadores e países. Valide que os destinos são URLs http ou https e não ligações para este encurtador. Guarde tudo numa base de dados.
Passos de construção
- Criar e redirecionar. Crie uma ligação e abra-a numa janela privada. Confirme que a resposta é um 302, e não uma página que depois redireciona com JavaScript.
- Códigos e slugs. Experimente um slug duplicado, uma palavra reservada, maiúsculas e minúsculas misturadas e um URL muito longo.
- Rastreio de cliques. Clique a partir de alguns dispositivos e confirme as contagens e os referenciadores.
- Editar e desativar. Altere um destino e confirme que a ligação curta antiga aponta agora para o novo local; desative uma e confirme que deixa de funcionar.
- Validação. Experimente ligações
javascript:, ligações para o próprio encurtador e URLs malformados. Todas devem ser recusadas no servidor. - Domínio. Ligue o seu domínio curto e teste as ligações nele.
- Controlo de abusos, se a ferramenta for pública: limites de frequência, verificação de destinos e uma vista de administração das ligações recentes.
Erros comuns
- Redirecionamentos 301 com rastreio de cliques. Os navegadores guardam-nos em cache e os seus números ficam errados.
- Redirecionar dentro da página. Carrega-se a app e só depois se redireciona com JavaScript, e cada clique parece lento. Redirecione a partir do servidor.
- Nenhuma restrição de unicidade nos códigos. As colisões acabarão por acontecer.
- Um encurtador público aberto sem controlos. Vai ser abusado, e a reputação do seu domínio vai com ele.
- Aceitar qualquer esquema de URL. Aceite apenas destinos http e https.
- Perder ligações ao mudar. Seja o proprietário do domínio curto para que as ligações sobrevivam a uma mudança de alojamento.
Quando um produto pronto é a melhor escolha
Os serviços estabelecidos de gestão de ligações oferecem domínios de marca, análise detalhada, funcionalidades de equipa, códigos QR, integrações e tratamento de abusos já incluídos. Se as ligações são centrais no seu marketing e não quer manutenção, pague por um deles.
Construa o seu próprio quando quiser um encurtador simples para a equipa, no seu próprio domínio, sem preço por utilizador, ou quando quiser ligações integradas no seu produto (ligações de partilha, ligações de indicação, ligações rastreadas em emails), ou controlo total dos dados de cliques. Também é um bom primeiro projeto de backend. Combine-o com uma página de link na bio, e percorra a lista de verificação de segurança para apps criadas com IA antes de o abrir a qualquer pessoa.
Como fazer isto com a Mythex
Na Mythex descreve o encurtador no chat e testa os redirecionamentos na pré-visualização em direto. A Mythex acrescenta uma base de dados dedicada para ligações e cliques quando a app precisa de uma. As apps publicadas e as suas bases de dados entram em repouso quando estão inativas e acordam na visita seguinte, o que mantém um encurtador pouco usado barato de correr. Publique numa ligação mythex.ai e, no plano Pro, ligue o seu próprio domínio curto ou compre-o dentro da Mythex; veja domínios personalizados. O modelo de encurtador de URLs é um prompt inicial pronto, com slugs personalizados e análise de cliques.
Perguntas
Um encurtador de URLs deve usar um redirecionamento 301 ou 302?
Um 301 indica aos navegadores que a mudança é permanente, por isso podem guardá-lo em cache e saltar o seu servidor da próxima vez, o que significa cliques perdidos e ligações que já não pode alterar. A maioria dos encurtadores que registam cliques ou permitem edição usa redirecionamentos temporários 302 ou 307.
Como são gerados os códigos curtos?
Ou como cadeias aleatórias de letras e números, verificadas contra os códigos existentes, ou codificando um ID da base de dados em base 62. Os códigos aleatórios são mais difíceis de adivinhar; os sequenciais revelam quantas ligações existem. Seis ou sete caracteres aleatórios dão biliões de combinações.
Preciso de um domínio curto?
Não para funcionar, mas o objetivo de um encurtador é ter uma ligação curta e de confiança. Um domínio curto e personalizado que seja seu também garante que as ligações continuam a funcionar se mudar de alojamento.
Como impeço que abusem de um encurtador de URLs público?
Exija registo para criar ligações, limite a criação de ligações por frequência, verifique os destinos contra uma lista de URLs maliciosos, como o Google Safe Browsing, bloqueie o seu próprio domínio como destino e tenha uma forma rápida de desativar ligações.