1001Ferramentas
🔗 Validadores

Validador de URL

Verifique se uma URL é válida e analise suas partes: protocolo, domínio, caminho, parâmetros e hash. Processado no navegador.

Como usar?

Cole ou digite a URL no campo acima. A ferramenta valida o formato e decompõe a URL em todas as suas partes: protocolo, host, porta, caminho, query string e hash.

Anatomia de uma URL e o que significa "válida"

A gramática de uma URL é definida pela RFC 3986. Toda URL segue o mesmo esqueleto: esquema://autoridade/caminho?query#fragmento. A autoridade ainda pode ser dividida em userinfo@host:porta. Esquemas comuns incluem http, https, ftp, mailto, data, file, tel e blob. O host pode ser um nome DNS, um IPv4 em notação pontuada ou um IPv6 literal entre colchetes como [2001:db8::1]. A porta precisa ser um inteiro de 16 bits entre 1 e 65535. Caminho, query e fragmento têm cada um suas próprias regras de codificação por porcentagem.

Esta ferramenta usa o construtor URL nativo do navegador — o mesmo parser da barra de endereços — em vez de uma regex caseira. A maioria das regexes encontradas online falha em pelo menos um caso extremo: IPv6 literal, UTF-8 percent-encoded, nomes de domínio internacionalizados ou ponto final no host. O construtor nativo (disponível no Node 10+ e em todos os navegadores modernos) segue o WHATWG URL Standard, que é um superconjunto levemente mais permissivo da RFC 3986 e bate com o comportamento real dos browsers.

Três níveis de validação de URL

Sintática apenas checa que a string casa com a gramática — esquema presente, host bem formado, porta dentro da faixa. Semântica vai além e pergunta se o host realmente resolve no DNS, se o esquema é permitido pela política do aplicativo ou se a porta é alcançável. Disponibilidade de fato abre uma conexão — tipicamente um HTTP HEAD — para confirmar uma resposta sem erro. A maioria dos casos de validação de formulário para na sintática; verificadores de link e crawlers de SEO chegam até a disponibilidade.

Armadilhas de segurança

Se o seu backend redireciona para uma URL fornecida pelo usuário sem filtrar, você tem um open redirect — um vetor clássico de phishing que transforma o seu domínio confiável em trampolim. Sempre prefira allowlist de domínios em vez de denylist. Fique atento a typosquatting (paypa1.com com o dígito um) e a ataques de homógrafos IDN em que um а cirílico se passa por um a latino. Normalize hosts para Punycode (xn--…) antes de comparar. Para requisições server-side, previna SSRF bloqueando faixas privadas e de loopback (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, 127.0.0.0/8, link-local 169.254.0.0/16 e equivalentes IPv6) e qualquer endpoint de metadados em cloud como 169.254.169.254.

Rejeite esquemas perigosos ao aceitar links de usuários: javascript: executa script no contexto da página (XSS), data: pode contrabandear HTML ou scripts e file: pode vazar recursos locais. Mantenha uma allowlist pequena — tipicamente só http e https.

Dicas práticas e bibliotecas

No Node, o new URL(str) nativo cobre 95% dos casos; para parsing avançado use whatwg-url ou url-parse. valid-url também é popular mas é anterior ao padrão WHATWG. No browser, URL.canParse(str) (2023+) devolve um booleano sem lançar exceção — útil em laços quentes de validação.

function isValidHttpUrl(str) {
  try {
    const u = new URL(str);
    return u.protocol === 'http:' || u.protocol === 'https:';
  } catch { return false; }
}

Perguntas frequentes

Regex ou a API URL? Sempre a API URL. Regexes se afastam do spec, falham em IDN e IPv6 e parecem corretas até o dia em que não são mais. O parser nativo é rápido, testado em batalha e bate com o que os browsers fazem.

http://localhost:3000 é uma URL válida? Sim — é sintaticamente válida. Se você aceita ou não depende do contexto: ferramentas de dev sim, mas um formulário público de envio de links normalmente não.

Qual é o tamanho máximo de uma URL? A RFC 3986 não define limite. Na prática, navegadores aceitam de 2.048 caracteres (IE antigo) até 32.779 (Chrome). Muitos servidores e CDNs limitam a query string a 4–8 KB. Para payloads longos, use POST.

O fragmento #… é enviado para o servidor? Não — o fragmento é processado inteiramente no cliente, e é por isso que hash routers de SPA funcionam sem cooperação do servidor.

Ferramentas Relacionadas

Valide e analise uma URL

Uma URL malformada quebra um link, atrapalha uma integração ou estraga um redirecionamento. Este validador verifica se o endereço é válido e ainda desmonta a URL em suas partes, mostrando claramente cada componente que a compõe.

Você vê separados o protocolo, o domínio, o caminho, os parâmetros da query string e o hash (a âncora). Isso é útil para depurar links com muitos parâmetros, entender uma URL de campanha, conferir um endereço antes de usá-lo em código ou só enxergar o que cada pedaço significa.

Tudo é processado no navegador, sem enviar a URL para fora. Cole o endereço e veja a estrutura completa na hora, ideal para quem trabalha com web e desenvolvimento.