A União In­ter­na­ci­o­nal de Te­le­co­mu­ni­ca­çõ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 in­tro­du­ção de domínios in­ter­na­ci­o­na­li­za­dos, em 2003, con­tri­buiu para o fato. Entenda o que é domínio IDN e como estes endereços funcionam.

O que é domínio in­ter­na­ci­o­na­li­zado (IDN)?

A IETF (Internet En­gi­ne­e­ring Task Force) define IDNs como nomes de domínio que contêm ca­rac­te­res 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), res­pon­sá­vel por trans­for­mar URLs em endereços IP, não é capaz de entender esses ca­rac­te­res e, portanto, esses domínios. É que o DNS baseia-se no conjunto limitado de ca­rac­te­res padrão ASCII.

Para que IDNs pudessem ser en­ten­di­dos pelo DNS e por outros pro­to­co­los de internet, o padrão In­ter­na­ti­o­na­li­zing Domain Names in Ap­pli­ca­ti­ons (IDNA) foi criado, em 2003. Seu papel é converter códigos Unicode em ASCII pa­dro­ni­za­da­mente, pos­si­bi­li­tando o uso de ca­rac­te­res não ASCII por domínios.

Construa sua marca com um ótimo domínio
Registre um nome de domínio
  • SSL Wildcard grátis para mais segurança
  • Registro privado grátis para mais pri­va­ci­dade
  • Domain Connect grátis para con­fi­gu­rar DNS fácil

Como funciona o IDNA?

Grande parte da in­fra­es­tru­tura da internet só oferece suporte ao conjunto de ca­rac­te­res ASCII. Assim, para pos­si­bi­li­tar o pro­ces­sa­mento de domínios in­ter­na­ci­o­na­li­za­dos, cada IDN criado em Unicode deve ser trans­for­mado em string ACE baseada em ASCII. Dessa forma, URLs compostas de ca­rac­te­res como acentos e cedilhas podem ser exibidas. O servidor, por sua vez, continua com o pro­ces­sa­mento de endereços como se estes fossem com­pa­tí­veis com ASCII. O pro­ce­di­mento é es­pe­ci­fi­cado 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 co­di­fi­ca­ção pa­dro­ni­zado chamado Punycode.

Punycode

O protocolo Punycode, pa­dro­ni­zado em RFC 3492, foi de­sen­vol­vido para exibir strings de ca­rac­te­res Unicode como símbolos ASCII, sem perda de qualidade. Ele remove todos os ca­rac­te­res não ASCII de nomes de domínio, co­di­fi­cando-os e separando-os por hífen. A sequência de códigos gerada conterá in­for­ma­çõ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 ca­rac­te­res diz respeito a um IDN co­di­fi­cado em con­for­mi­dade com os padrões IDNA e Punycode. Acesse nosso artigo es­pe­ci­a­li­zado em Punycode para obter in­for­ma­ções de­ta­lha­das sobre o processo de co­di­fi­ca­ção, com exemplos.

Dica

Com um conversor on-line de domínios IDN, você consegue converter IDNs em strings ACE, usando o Punycode.

Di­fe­ren­ças entre o IDNA2003 e o IDNA2008

No pro­ce­di­mento original de 2003, antes do Punycode ser inventado, URLs in­ter­na­ci­o­na­li­za­das eram nomeadas pelo método nameprep, que trans­for­mava letras maiús­cu­las em mi­nús­cu­las, removia ca­rac­te­res de controle e trans­fe­ria ca­rac­te­res equi­va­len­tes a uma forma unificada. Contudo, onameprep foi removido do pro­ce­di­mento com a in­tro­du­ção do IDNA2008, que não es­pe­ci­fica nenhum tipo de nor­ma­li­za­ção. Ele apenas recomenda um algoritmo de conversão de letras maiús­cu­las em mi­nús­cu­las.

A revisão abrange línguas como a alemã, que faz uso do caractere Unicode “ß” (Eszett). Ori­gi­nal­mente, no IDNA2003, o Eszett ganhava equi­va­lên­cia ao “ss”. Assim, domínios como fußball.com (futebol.com) eram au­to­ma­ti­ca­mente nor­ma­li­za­dos para fussball.com pelo processo nameprep. O mesmo deixou de ocorrer com o lan­ça­mento do IDNA2008. Desde 2010, o “ß” é in­ter­pre­tado como tal, uma “letra latina minúscula, cor­res­pon­dente aos dois ‘s’”, e pode ser re­gis­trado como parte de um domínio IDN.

Cerca de 8 mil ca­rac­te­res que podiam ser usados em nomes de domínio, de acordo com o IDNA2003, deixaram de encontrar suporte no IDNA2008. Ainda, quatro ca­rac­te­res (entre eles o “ß”) ganharam in­ter­pre­ta­ções di­fe­ren­tes desde que o padrão foi revisado. Consulte o Padrão Técnico Unicode #46 para acom­pa­nhar uma detalhada discussão sobre as di­fe­ren­ças entre o IDNA2003 e o IDNA2008. A tabela abaixo resume os prin­ci­pais pontos:

IDNA2003 IDNA2008
Pro­ce­di­mento nameprep obri­ga­tó­rio Sem nor­ma­li­za­Ã§Ã£o es­pe­cí­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ús­cu­las e mi­nús­cu­las, que são con­si­de­ra­das ca­rac­te­res di­fe­ren­tes Letras maiús­cu­las são con­ver­ti­das em mi­nús­cu­las
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
“Re­ma­pe­a­mento” removido de alguns ca­rac­te­res Unicode, por risco de ir­re­gu­la­ri­da­des

Prin­ci­pais desafios de IDNs

Atu­al­mente, a maior parte dos programas de internet consegue com­pre­en­der IDN. No entanto, domínios in­ter­na­ci­o­na­li­za­dos ainda enfrentam di­fi­cul­da­des, pois a mudança do IDNA2003 para o IDNA2008 ainda não foi to­tal­mente im­ple­men­tada. Voltando ao caso alemão, o Eszett é in­ter­pre­tado de di­fe­ren­tes maneiras no mundo on-line. Já que o IDNA2003 converte “ß” em “ss” au­to­ma­ti­ca­mente, domínios in­ter­na­ci­o­na­li­za­dos contendo “ß” (re­gis­tra­dos de acordo com o IDNA2008) muitas vezes não podem ser des­co­ber­tos por sistemas que ainda realizam con­ver­sões de acordo com o padrão antigo. Assim, usuários continuam sendo re­di­re­ci­o­na­dos a domínios contendo “ss”. O problema pode ser con­tor­nado da seguinte forma: re­gis­trando ambas as variantes e re­di­re­ci­o­nando o domínio se­cun­dá­rio ao domínio com a or­to­gra­fia de pre­fe­rên­cia. Isso pode ser feito por re­di­re­ci­o­na­mento de domínio.

Consulta de Domínio
Ir para o menu principal