Codificador de URL

5 de 2 avaliações

O Codificador de URL é uma ferramenta gratuita que converte uma cadeia de caracteres na representação codificada usada nos parâmetros de consulta de um URL e noutros dados Web baseados em texto.

O que é a codificação de URL e para que serve?

A codificação de URL substitui os caracteres com significado especial num URL por um sinal de percentagem seguido de algarismos hexadecimais. Desta forma, o texto pode passar por sistemas que apenas aceitam um conjunto restrito de caracteres.

Por exemplo, o "e" comercial separa parâmetros de consulta. Assim, quando faz parte de um valor, tem de ser codificado como %26. Os espaços também exigem um tratamento específico. Esta ferramenta usa a função urlencode do PHP, que converte os espaços em sinais de mais.

Antes: tea and cake

Depois: tea+and+cake

Podes encontrar texto codificado para URL em:

  • cadeias de consulta enviadas por formulários Web;
  • URIs de dados que contenham texto que não possa ser incluído literalmente;
  • ligações incluídas em mensagens de correio eletrónico;
  • valores de URL guardados em dados JSON;
  • parâmetros de redirecionamento e de callback usados por aplicações Web;
  • URLs associados a domínios internacionalizados, embora o próprio nome de domínio possa exigir Punycode em vez de codificação por percentagem.

A codificação de URL não é encriptação e não oferece qualquer confidencialidade. Qualquer pessoa que consiga ver um valor de URL codificado por percentagem pode descodificá-lo.

Como uso o Codificador de URL?

Introduz a cadeia de caracteres que pretendes codificar, executa a ferramenta e consulta o valor convertido no campo de resultado URL codificado. Codifica apenas o valor, sem incluir aspas ou texto explicativo à volta.

O processamento é efetuado no servidor. Os dados introduzidos são enviados para o servidor através de HTTPS e não são armazenados. Ainda assim, evita incluir palavras-passe, tokens de sessão ou dados pessoais privados em URLs, pois os endereços Web podem ficar registados no histórico do navegador, em sistemas de análise e nos registos dos servidores.

Para inverter a operação, usa o Decodificador de URL. Se forem usadas a mesma codificação de caracteres e as mesmas regras de codificação de formulários nos dois sentidos, o valor corretamente descodificado deverá corresponder ao texto original.

Devo codificar o URL completo ou apenas o valor do parâmetro?

Normalmente, deves codificar cada valor de parâmetro, e não o URL completo. Se codificares o endereço inteiro, também serão substituídos caracteres estruturais como os dois-pontos, as barras, o ponto de interrogação e o sinal de igual.

Imagina que o valor de pesquisa é green tea & coffee. A forma codificada é green+tea+%26+coffee e pode ser colocada depois do nome de um parâmetro. Codificar o endereço completo ocultaria os separadores de que o navegador precisa para reconhecer o esquema, o anfitrião, o caminho e a cadeia de consulta.

A função urlencode usada por esta ferramenta é adequada para parâmetros de consulta ao estilo dos formulários HTML. No entanto, algumas APIs e alguns segmentos de caminhos seguem as convenções da RFC 3986, segundo as quais um espaço é representado por %20 em vez de +. Confirma se o sistema de destino espera a codificação de formulários com + ou a representação %20 da RFC 3986.

Exemplos práticos de codificação de URL

As letras e os algarismos ASCII permanecem legíveis. Os espaços tornam-se sinais de mais, enquanto a pontuação reservada e o texto não ASCII são representados por bytes codificados.

  • hello world passa a hello+world.
  • tea & cake passa a tea+%26+cake.
  • email=test@example.com passa a email%3Dtest%40example.com.
  • 100% ready passa a 100%25+ready.
  • café passa a caf%C3%A9 quando o texto de origem usa UTF-8.

As letras acentuadas e os alfabetos não latinos são primeiro representados como bytes através de uma codificação de caracteres, geralmente UTF-8 na Web. Cada byte que não pertença ao conjunto permitido recebe depois a sua própria sequência de escape com percentagem. Por isso, um único carácter visível pode gerar vários grupos começados por %.

Os números não exigem qualquer tratamento especial. Uma entrada vazia não produz conteúdo codificado. Uma entrada muito longa pode aumentar consideravelmente, porque cada byte codificado ocupa três caracteres.

Porque falha a descodificação de URL ou aparecem caracteres sem sentido?

A descodificação costuma falhar porque os dados foram codificados segundo regras diferentes, foram codificados mais do que uma vez ou não representam texto no conjunto de caracteres esperado.

  • Tratamento diferente dos espaços. Um descodificador de formulários interpreta + como um espaço, enquanto um descodificador estrito de sequências com percentagem pode mantê-lo como sinal de mais.
  • Codificação dupla. O sinal de percentagem em %26 pode ser novamente codificado como %25, dando origem a %2526. Uma única descodificação devolve então %26, e não o "e" comercial original.
  • Codificação de caracteres incorreta. Se os bytes UTF-8 forem descodificados como outro conjunto de caracteres, podem surgir símbolos de substituição ou letras ilegíveis.
  • Dados binários em vez de texto. Os bytes descodificados podem corresponder a uma imagem, a um arquivo ou a outro ficheiro. Se forem apresentados como texto, o resultado será ilegível.
  • Formato ou alfabeto incorreto. Base64 seguro para URL, Base64 padrão e codificação por percentagem são formatos diferentes. Aplicar um descodificador de URL a texto em Base64 não recupera o valor pretendido.

A codificação de URL não usa caracteres de preenchimento. Se um descodificador indicar que falta preenchimento, é provável que os dados estejam em Base64 ou noutro formato com preenchimento, e não em texto codificado por percentagem.

Perguntas frequentes

As sequências com percentagem podem usar maiúsculas ou minúsculas?

Sim. As letras hexadecimais nas sequências de escape com percentagem não distinguem maiúsculas de minúsculas. Assim, %2F e %2f representam ambos uma barra. Recomenda-se o uso de algarismos hexadecimais em maiúsculas para manter uma representação consistente.

A codificação de URL converte nomes de domínio internacionais?

Não. Os elementos de um domínio, como um nome que contenha é, exigem normalmente o processamento de Nomes de Domínio Internacionalizados e uma forma Punycode em ASCII começada por xn--. A codificação por percentagem é usada noutros componentes do URL e não deve ser considerada um substituto dessa conversão.

O que acontece às quebras de linha e às tabulações?

Os bytes das tabulações e das quebras de linha são codificados por percentagem, porque não podem aparecer literalmente num valor de URL convencional. Uma tabulação é normalmente representada por %09, enquanto os finais de linha dependem de a origem usar caracteres LF ou CRLF.

Porque continua um URL codificado a falhar quando o colo numa aplicação?

A aplicação pode esperar um valor não codificado e aplicar a sua própria codificação, provocando uma codificação dupla. Também pode rejeitar o URL devido a um limite de comprimento total ou porque foi codificado um carácter reservado numa parte estrutural do endereço. Antes de o codificares, confirma qual é o componente específico pedido pela aplicação.

É seguro partilhar dados codificados numa cadeia de consulta?

Não. A codificação de URL por percentagem apenas altera a representação dos dados, e os navegadores e as ferramentas de programação podem revelar o valor original. Antes de partilhares uma ligação, verifica se os respetivos parâmetros de consulta contêm endereços de correio eletrónico, referências de contas, tokens de acesso ou outros dados que não devam ser divulgados.

Ferramentas Similares

Decodificador de URL

Decodifique a entrada de URL de volta ao seu formato de string original com nossa ferramenta de decodificação de URL para fácil recuperação de dados.

4,611
60

Ferramentas Populares