IDN: nomes de domínio internacionalizados
De acordo com a União Internacional de Telecomunicações (UIT), mais de três mil milhões de pessoas utilizam atualmente as possibilidades oferecidas pela rede mundial de computadores, ou seja, a World Wide Web (WWW), e é cada vez mais comum que esses utilizadores as utilizem na sua própria língua materna. Isto é possível graças aos nomes de domínio internacionalizados, conhecidos pela sigla IDN, que estão à disposição dos utilizadores da Internet desde 2003. Descubra como funcionam estes IDN.
O que é um nome de domínio internacionalizado (IDN)?
A IETF (Internet Engineering Task Force) denomina nomes de domínio internacionalizados (IDN) aos nomes de domínio que incluem caracteres especiais, como o acento circunflexo, caracteres não incluídos no alfabeto latino básico ou caracteres de outros alfabetos. No entanto, o DNS, que se encarrega de traduzir as URL em endereços IP e se baseia num conjunto limitado de caracteres ASCII, não é capaz de compreender estes nomes de domínio internacionalizados.
Para que os IDN sejam compreensíveis tanto para o DNS como para outros protocolos da Internet, foi criado em 2003 o protocolo**«Nomes de domínio internacionalizados em aplicações»**(IDNA), que estabelece uma tradução padronizada de Unicode para ASCII, graças à qual é possível utilizar caracteres não ASCII nos nomes de domínio.
Como funcionam os IDNAs?
Para garantir que os nomes de domínio internacionalizados também possam ser utilizados pelos inúmeros sistemas na Internet que suportam apenas o conjunto de caracteres ASCII, cada IDN em Unicode pode ser traduzido para o formato ACE, que se baseia em caracteres ASCII. Desta forma, embora no navegador sejam apresentados endereços URL com trema, por exemplo, o servidor transforma-os de modo a torná-los compatíveis com ASCII. Este processo está especificado tanto na norma da Internet IDNA2003 como na revisão IDNA2008, aprovada em 2010. A conversão de Unicode para ASCII é realizada do lado do cliente (no navegador web, no software de e-mail, por exemplo) com base num procedimento de codificação padronizado denominado Punycode.
Punycode
O Punycode, padronizado na RFC 3492, foi desenvolvido para representar sequências Unicode em caracteres ASCII de forma clara e sem perdas. Para tal, todos os caracteres que não sejam ASCII são removidos do nome de domínio, codificados e anexados separados por um hífen. Esta sequência de códigos contém a informação sobre o tipo de caracteres Unicode em questão, bem como a sua posição no nome de domínio. Além disso, em cada ACE criado, é anteposto o prefixo xn–, que identifica inequivocamente a sequência de caracteres como IDN, codificada de acordo com os protocolos IDNA e Punycode. No nosso artigo sobre Punycode, pode encontrar mais informações sobre este procedimento, bem como alguns exemplos.
Com um conversor de IDN online como o Cyberneticos, pode converter IDNs em cadeias ACE utilizando punycode.
Diferenças entre o IDNA2003 e o IDNA2008
Nos seus primórdios, em 2003, os endereços URL internacionalizados eram normalizados com o algoritmo Nameprep antes da codificação em Punycode. Para tal, as letras maiúsculas eram convertidas em minúsculas, os caracteres de controlo eram eliminados e os caracteres equivalentes eram uniformizados. Desde o advento da implementação do IDNA2008, o Nameprep já não faz parte do processo de tradução. O IDNA, por sua vez, já não impõe qualquer normalização, embora recomende a utilização de um algoritmo que transforme as maiúsculas em minúsculas.
Para ler uma análise detalhada sobre as diferenças entre o IDNA2003 e o IDNA2008, pode consultar a Norma Técnica Unicode n.º 46. Na tabela seguinte, apresentamos um resumo com as principais diferenças:
| IDNA2003 | IDNA2008 |
|---|---|
| Normalização com Nameprep | Normalização não especificada |
| Válido para Unicode 3.2 | Válido a partir do Unicode 5.2 |
| Regras rigorosas para tipos de letra de escrita da direita para a esquerda | Regras mais claras para tipos de escrita da direita para a esquerda |
| As maiúsculas e minúsculas são consideradas caracteres separados | As maiúsculas são convertidas diretamente em minúsculas |
| Existem símbolos proibidos, por exemplo, símbolos gráficos que não pertencem a nenhum sistema de escrita, bem como alguns sinais de pontuação | |
| Eliminação do remapeamento de alguns caracteres Unicode, uma vez que isso poderia causar irregularidades |
Problemas com os IDN
Atualmente, todos os programas da Internet deveriam ser capazes de reconhecer os IDN. No entanto, uma vez que a conversão de IDNA2003 para IDNA2008 na Internet ainda não foi implementada de forma consistente, podem surgir problemas com os nomes internacionais. Além disso, pode acontecer que os utilizadores não consigam introduzir o caractere especial que compõe o domínio internacional e, em vez disso, introduzam outro semelhante (o que resultaria numa URL diferente que redirecionaria para uma página web distinta). Por exemplo, um utilizador cujo teclado não estivesse configurado para o espanhol poderia escrever dominio-de-ejemplo-con-n.es em vez de dominio-de-ejemplo-con-ñ.es, o que o levaria a uma página web diferente.
Para evitar este tipo de dificuldades, os administradores de sites podem registar ambas as variantes e redirecionar o segundo domínio para a grafia com maior prioridade, utilizando os métodos de redirecionamento de um site.