IDN: O que é domínio internacionalizado?
A União Internacional de Telecomunicações (UIT) afirma que mais de três bilhões de pessoas acessam a internet, navegando, na maioria das vezes, em sites de suas línguas nativas. A introdução de domínios internacionalizados, em 2003, contribuiu para o fato. Entenda o que é domínio IDN e como estes endereços funcionam.
O que é domínio internacionalizado (IDN)?
A IETF (Internet Engineering Task Force) define IDNs como nomes de domínio que contêm caracteres especiais, que não fazem parte do alfabeto latino (por exemplo, acentos e letras de outros alfabetos). Contudo, o sistema de nomes de domínio (DNS), responsável por transformar URLs em endereços IP, não é capaz de entender esses caracteres e, portanto, esses domínios. É que o DNS baseia-se no conjunto limitado de caracteres padrão ASCII.
Para que IDNs pudessem ser entendidos pelo DNS e por outros protocolos de internet, o padrão Internationalizing Domain Names in Applications (IDNA) foi criado, em 2003. Seu papel é converter códigos Unicode em ASCII padronizadamente, possibilitando o uso de caracteres não ASCII por domínios.
Construa sua própria marca com um grande domínio, que inclui SSL e consultor pessoal!
- Registro privado
- Suporte 24 horas
Como funciona o IDNA?
Grande parte da infraestrutura da internet só oferece suporte ao conjunto de caracteres ASCII. Assim, para possibilitar o processamento de domínios internacionalizados, cada IDN criado em Unicode deve ser transformado em string ACE baseada em ASCII. Dessa forma, URLs compostas de caracteres como acentos e cedilhas podem ser exibidas. O servidor, por sua vez, continua com o processamento de endereços como se estes fossem compatíveis com ASCII. O procedimento é especificado no padrão de internet IDNA2003 e na revisão IDNA2008, aprovada em 2010. A conversão de Unicode em ASCII ocorre no lado do cliente (navegador, programa de e-mail etc.) e se baseia em um processo de codificação padronizado chamado Punycode.
Punycode
O protocolo Punycode, padronizado em RFC 3492, foi desenvolvido para exibir strings de caracteres Unicode como símbolos ASCII, sem perda de qualidade. Ele remove todos os caracteres não ASCII de nomes de domínio, codificando-os e separando-os por hífen. A sequência de códigos gerada conterá informações sobre os símbolos Unicode em questão, bem como suas posições no nome de domínio. Ainda, cada string ACE criada é marcada com o prefixo xn–, para que fique claro a todos que a sequência de caracteres diz respeito a um IDN codificado em conformidade com os padrões IDNA e Punycode. Acesse nosso artigo especializado em Punycode para obter informações detalhadas sobre o processo de codificação, com exemplos.
Com um conversor on-line de domínios IDN, você consegue converter IDNs em strings ACE, usando o Punycode.
Diferenças entre o IDNA2003 e o IDNA2008
No procedimento original de 2003, antes do Punycode ser inventado, URLs internacionalizadas eram nomeadas pelo método nameprep, que transformava letras maiúsculas em minúsculas, removia caracteres de controle e transferia caracteres equivalentes a uma forma unificada. Contudo, onameprep foi removido do procedimento com a introdução do IDNA2008, que não especifica nenhum tipo de normalização. Ele apenas recomenda um algoritmo de conversão de letras maiúsculas em minúsculas.
A revisão abrange línguas como a alemã, que faz uso do caractere Unicode “ß” (Eszett). Originalmente, no IDNA2003, o Eszett ganhava equivalência ao “ss”. Assim, domínios como fußball.com (futebol.com) eram automaticamente normalizados para fussball.com pelo processo nameprep. O mesmo deixou de ocorrer com o lançamento do IDNA2008. Desde 2010, o “ß” é interpretado como tal, uma “letra latina minúscula, correspondente aos dois ‘s’”, e pode ser registrado como parte de um domínio IDN.
Cerca de 8 mil caracteres que podiam ser usados em nomes de domínio, de acordo com o IDNA2003, deixaram de encontrar suporte no IDNA2008. Ainda, quatro caracteres (entre eles o “ß”) ganharam interpretações diferentes desde que o padrão foi revisado. Consulte o Padrão Técnico Unicode #46 para acompanhar uma detalhada discussão sobre as diferenças entre o IDNA2003 e o IDNA2008. A tabela abaixo resume os principais pontos:
IDNA2003 | IDNA2008 |
---|---|
Procedimento nameprep obrigatório | Sem normalização específica |
Válido para Unicode 3.2 | Válido para Unicode versão 5.2 ou posterior |
Regras rigorosas para fontes da direita para a esquerda | Regras mais claras para fontes da direita para a esquerda |
Distingue letras maiúsculas e minúsculas, que são consideradas caracteres diferentes | Letras maiúsculas são convertidas em minúsculas |
Vários símbolos são proibidos, incluindo símbolos gráficos que não pertencem a nenhum alfabeto e alguns sinais de pontuação | |
“Remapeamento” removido de alguns caracteres Unicode, por risco de irregularidades |
Principais desafios de IDNs
Atualmente, a maior parte dos programas de internet consegue compreender IDN. No entanto, domínios internacionalizados ainda enfrentam dificuldades, pois a mudança do IDNA2003 para o IDNA2008 ainda não foi totalmente implementada. Voltando ao caso alemão, o Eszett é interpretado de diferentes maneiras no mundo on-line. Já que o IDNA2003 converte “ß” em “ss” automaticamente, domínios internacionalizados contendo “ß” (registrados de acordo com o IDNA2008) muitas vezes não podem ser descobertos por sistemas que ainda realizam conversões de acordo com o padrão antigo. Assim, usuários continuam sendo redirecionados a domínios contendo “ss”. O problema pode ser contornado da seguinte forma: registrando ambas as variantes e redirecionando o domínio secundário ao domínio com a ortografia de preferência. Isso pode ser feito por redirecionamento de domínio.