Analisador de URL

5 de 2 avaliações

O Analisador de URL é uma ferramenta gratuita que separa um endereço Web no respetivo esquema, caminho e cadeia de consulta.

Que elementos extrai um analisador de URL?

Um analisador de URL identifica os componentes estruturais de um endereço Web sem teres de dividir o texto manualmente. Esta ferramenta devolve três campos gerados pela função parse_url do PHP.

  • Esquema identifica o protocolo ou esquema de endereçamento, como https ou http.
  • Caminho identifica o componente do caminho, como /account/orders/42.
  • Consulta contém o texto após o ponto de interrogação que inicia o componente de consulta e antes de qualquer sinal de cardinal não codificado, como page=2&sort=date.

Analisar um URL é útil para inspecionar pedidos de API, URLs de callback, registos de aplicações ou dados de terceiros. Permite distinguir as informações de encaminhamento dos parâmetros de consulta antes de depurares, registares ou transformares o endereço.

Os campos devolvidos não incluem separadamente o nome do anfitrião, a porta ou o fragmento. Se precisares desses componentes, utiliza uma biblioteca de análise de URLs mais completa na tua aplicação.

Como utilizo o Analisador de URL?

Introduz o URL completo ou parcial e consulta os valores de esquema, caminho e consulta devolvidos pela ferramenta. Um URL absoluto completo costuma dar o resultado mais claro, porque indica explicitamente o esquema.

  1. Copia o URL do navegador, da resposta da API, do registo do webhook ou do registo do servidor.
  2. Inclui a cadeia de consulta se precisares de inspecionar nomes ou valores de parâmetros.
  3. Compara o caminho devolvido com a rota esperada pela tua aplicação.
  4. Verifica se o esquema e a consulta estão presentes quando a tua integração os exige.

O processamento é feito no servidor. Os dados introduzidos são enviados para o servidor através de HTTPS e não são armazenados. Ainda assim, evita enviar tokens de acesso ativos, ligações de transferência assinadas, identificadores de sessão ou outras credenciais quando um exemplo anonimizado permitir obter a mesma resposta.

Exemplos práticos e interpretação dos resultados

Num URL absoluto de uma API, o analisador separa o protocolo da rota e da cadeia de consulta em bruto.

Entrada https://api.example.co.uk/v1/orders/42?expand=items&currency=GBP

Esquema https

Caminho /v1/orders/42

Consulta expand=items&currency=GBP

A consulta é devolvida como um único componente. De acordo com a convenção habitual dos formulários e das cadeias de consulta, o E comercial separa os campos, enquanto o primeiro sinal de igual de cada campo separa o nome do respetivo valor. A análise do URL, por si só, não confirma que expand ou currency seja um parâmetro reconhecido pela API.

Uma referência relativa também pode conter um caminho e uma consulta sem especificar um esquema.

Entrada /search?q=red%20shoes&page=2

Esquema no scheme component

Caminho /search

Consulta q=red%20shoes&page=2

A ausência de esquema é muitas vezes normal em ligações geradas dentro do mesmo site. Contudo, em dados que devam conter URLs absolutos de callback, o mesmo resultado pode revelar que falta o prefixo https://.

Este analisador não é um validador de URLs. Pode ajudar a detetar uma estrutura suspeita, como a falta do esquema, um caminho inesperado ou texto de consulta no local errado, mas um resultado analisado não prova que o endereço existe, é resolvido no DNS ou devolve uma resposta HTTP bem-sucedida.

O que acontece com espaços, pontuação e entradas pouco comuns?

Os carateres reservados afetam a forma como um URL é dividido, enquanto os carateres codificados permanecem geralmente no componente em que aparecem. O analisador separa os componentes, mas não descodifica nem normaliza o respetivo conteúdo.

  • Um ponto de interrogação não codificado inicia o componente de consulta. Se um ponto de interrogação literal se destinar a representar dados fora de uma consulta existente, deve ser codificado por percentagem caso, de outra forma, fosse interpretado como delimitador da consulta.
  • Um E comercial separa habitualmente os parâmetros de consulta, mas esta ferramenta devolve a cadeia de consulta completa em vez de interpretar cada parâmetro individualmente.
  • Na sintaxe padrão de URLs, um sinal de cardinal (#) não codificado delimita o fragmento. Os dados do fragmento não fazem parte dos campos devolvidos aqui.
  • Normalmente, os espaços devem ser codificados, habitualmente como %20. Um sinal de mais pode representar um espaço em dados de consulta codificados como formulário, mas essa interpretação pertence à descodificação da consulta e não à análise do URL.
  • Quando o sistema de destino assim o exigir, o texto acentuado ou não latino presente no caminho ou na consulta deve utilizar codificação por percentagem em UTF-8. Os nomes de domínio internacionalizados utilizam a respetiva forma compatível com ASCII para assegurar uma ampla compatibilidade entre protocolos.
  • Os números não têm qualquer comportamento especial durante a análise. Permanecem carateres comuns num caminho ou valor de consulta.

Uma entrada vazia não contém uma estrutura de URL útil para inspecionar. Os URLs muito longos também podem estar sujeitos a limites noutros sistemas, incluindo navegadores, servidores Web, proxies e frameworks de aplicações. Esta ferramenta não determina se outro sistema aceitará um URL com um determinado comprimento.

Quando vale a pena analisar um URL?

Vale a pena analisar um URL quando precisas de diagnosticar a estrutura de um endereço antes de o código ou a infraestrutura o processar. Entre os casos mais comuns estão a verificação de endereços de callback de webhooks antes da implementação, a revisão de destinos de redirecionamento, a separação das rotas de API dos filtros e a leitura de URLs copiados dos registos de proxies inversos.

Normalmente, não é necessário fazê-lo quando apenas uma máquina vai consumir um URL conhecido e já estruturado, e a tua aplicação já utiliza uma biblioteca de URLs. Também não é a operação adequada se precisares de testar a disponibilidade, seguir redirecionamentos, descodificar todos os parâmetros de consulta ou verificar se um domínio é fidedigno.

Para tarefas repetidas ou automatizadas, utiliza as funcionalidades de URL nativas do teu ambiente. O PHP inclui parse_url, o JavaScript no navegador disponibiliza a interface URL, o Node.js fornece a classe URL e o Python inclui urllib.parse. Para processar um ficheiro de registo com milhares de endereços, um pequeno script de linha de comandos é mais adequado do que uma análise manual.

Não analises um URL apenas para o reformatar quando este já tem a representação exata exigida pelo sistema de destino. Voltar a codificar ou reconstruir endereços sem um motivo claro pode alterar assinaturas de consulta, parâmetros duplicados ou carateres reservados.

Perguntas frequentes

Posso analisar um URL sem http ou https?

Sim. A função parse_url do PHP consegue interpretar referências relativas e URLs parciais, embora não exista um esquema disponível quando este não é fornecido. Tem cuidado com endereços relativos ao esquema que começam por duas barras, pois o seu significado depende do documento ou da aplicação em que aparecem.

Os parâmetros de consulta repetidos são mantidos?

A consulta é devolvida como um componente em bruto, pelo que os nomes repetidos podem permanecer na sequência original. A conversão de valores como tag=red&tag=blue em arrays ou valores individuais depende do analisador de cadeias de consulta utilizado posteriormente.

É seguro colar um URL assinado?

Os dados introduzidos são enviados através de HTTPS e não são armazenados, mas um URL assinado pode continuar a dar acesso a conteúdo privado enquanto a assinatura for válida. Oculta o token ou substitui o nome do anfitrião e os valores por marcadores representativos sempre que as credenciais exatas não forem necessárias.

Porque é que um URL aparentemente válido se comporta de forma diferente na minha aplicação?

As diferenças podem resultar da descodificação de consultas e da normalização Unicode específicas de cada framework. As aplicações também podem aplicar regras adicionais após a análise, incluindo listas de nomes de anfitrião permitidos e restrições de redirecionamento. Compara o URL em bruto byte a byte e verifica depois o que a tua aplicação descodifica ou reescreve antes de enviar o pedido.

Ferramentas Populares