Quando você passa informações por meio de um URL, a string deve usar apenas caracteres permitidos específicos. Esses caracteres permitidos incluem caracteres alfabéticos, números e alguns caracteres especiais que têm significado na sequência de URL. Quaisquer outros caracteres que precisem ser adicionados a um URL devem ser codificados para que não causem problemas durante a viagem do navegador para localizar as páginas e recursos que você está procurando.
Codificando um URL
A codificação simplesmente pega um caractere especial e o substitui por sua alternativa codificada. A string parece confusa, mas o resultado é fácil para os computadores lerem e você não correrá o risco de erros de direcionamento de URL.
Por exemplo, vinculando a um arquivo intitulado meu currículo.pdf requer codificação de URL para acomodar o espaço entre minha e retomar. O resultado é meu% 20resume.pdf. Sem a codificação para o símbolo de espaço, o navegador da web assumirá que o URL termina no final da palavra
minha, com resume.pdf sendo descartados como dados supérfluos. Em tal situação, você nunca encontrará seu arquivo!O que deve ser codificado?
Qualquer caractere que não seja alfabético, um número ou um caractere especial que esteja sendo usado fora de seu contexto normal deve ser codificado em sua página. Abaixo está uma tabela de caracteres comuns em URLs e sua codificação:
Codificação de URL de caracteres reservados
Personagem | Objetivo no URL | Codificação |
: | Protocolo separado (http) do endereço | % 3B |
/ | Domínio e diretórios separados | % 2F |
# | Âncoras separadas | %23 |
? | Sequência de consulta separada | % 3F |
& | Elementos de consulta separados | %24 |
@ | Separe o nome de usuário e a senha do domínio | %40 |
% | Indica um caractere codificado | %25 |
+ | Indica um espaço | % 2B |
Não recomendado em URLs | % 20 ou + |
Esses exemplos codificados são diferentes do que você encontra com Caracteres especiais HTML. Por exemplo, para codificar um URL com um caractere e comercial, use %24. No entanto, em HTML, use & ou &, ambos escreveriam o "e" comercial na página HTML.
Esses diferentes esquemas de codificação não são tão contraditórios quanto parecem. Um conjunto controla os URLs, enquanto o outro controla o conteúdo da página para a qual o URL aponta.