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. Além de checar se o formato está correto, a ferramenta abre a URL em cada um de seus pedaços: 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.

Valide e analise uma URL

Uma URL malformada quebra um link, trava uma integração ou estraga um redirecionamento. Este validador verifica se o endereço é válido e ainda desmonta a URL nas suas partes, mostrando com clareza cada componente que a forma.

Aparecem separados o protocolo, o domínio, o caminho, os parâmetros da query string e o hash, que é a âncora. Isso ajuda a depurar links cheios de parâmetros, decifrar uma URL de campanha, conferir um endereço antes de usá-lo no código ou simplesmente enxergar o que cada pedaço quer dizer.

Nada sai do navegador: a URL é processada ali mesmo. Cole o endereço e a estrutura completa surge na hora, o que cai bem para quem trabalha com web e desenvolvimento.

Perguntas frequentes

Se a ferramenta diz que a URL é válida, o site existe?
Não. A checagem é apenas sintática: o endereço é entregue ao parser de URL do próprio navegador, e válida quer dizer somente que ele casa com a gramática. Nenhuma requisição sai da página, então um domínio que ninguém registrou, um caminho que devolve 404 ou um servidor fora do ar continuam aparecendo como válidos.
Por que endereços de mailto ou javascript aparecem como inválidos?
A validação aceita de propósito quatro esquemas apenas: http, https, ftp e ftps. Qualquer outro é recusado com aviso de esquema incomum em URLs web, mesmo os que a RFC 3986 abençoa, como mailto, tel, data e file. A lista curta reflete o uso mais comum aqui, que é conferir link de página, e mantém esquemas de risco como javascript fora da coluna dos válidos.
E se eu colar o endereço sem o https na frente?
Algo como exemplo.com.br/pagina é marcado como inválido, com a sugestão de incluir o protocolo, e isso é proposital: sem esquema o parser não distingue um domínio de um caminho relativo. Já os parâmetros da query saem decodificados na listagem, então %20 vira espaço e %40 vira arroba, o que ajuda muito a ler URLs de campanha.

Ferramentas Relacionadas