IDN Domain : le nom de domaine internationalisé expliqué
Selon l’union internationale des télécommunications (ITU pour International Telecommunication Union en anglais), plus de trois milliards de gens profitent des possibilités du World Wide Web dans le monde, et de plus en plus souvent dans leur langue maternelle. Ces noms de domaine internationalisés (IDN) sont disponibles pour les internautes depuis 2003. Découvrez leur fonctionnement dans la suite de cet article.
Qu’est-ce qu’un nom de domaine internationalisé (IDN) ?
L’IETF (Internet Engineering Task Force) désigne les IDN comme des noms de domaine qui, au-delà des lettres de l’alphabet latin, contiennent des caractères spéciaux. Il peut par exemple s’agir des trémas ou de caractères d’autres alphabets. Ces noms de domaine ne sont toutefois pas compris par le Domain Name System (DNS), qui est chargé de transformer les URL en adresses IP. Le DNS est basé sur l’ensemble limité de caractères standards ASCII.
Afin de rendre les IDN compréhensibles pour le DNS et les autres protocoles Internet, la norme Internet « Internationalizing Domain Names in Applications » (IDNA) a été créée en 2003. Cette norme définit une traduction standardisée d’Unicode en ASCII et permet ainsi l’utilisation de caractères non ASCII dans les noms de domaine.
- Domaine .eu ou .fr + éditeur de site gratuit pendant 6 mois
- 1 certificat SSL Wildcard par contrat
- Boîte email de 2 Go
![](https://www.ionos.fr/digitalguide/fileadmin/DigitalGuide/IAS/CTAs/SEO_Digital_Guide_Mobile_nur-Nlement_900x750.png)
Mode de fonctionnement de l’IDNA
Pour s’assurer que les noms de domaine internationalisés puissent être aussi utilisés par les nombreux systèmes sur Internet qui ne prennent en charge que les caractères définis par l’ASCII, chaque IDN sous la forme d’Unicode est traduit en ACE-String, modèle qui repose sur les caractères ASCII. Les URLs sont ainsi par exemple affichées avec un tréma dans votre navigateur, tandis que le serveur assimile exclusivement les adresses compatibles avec ASCII. Cette procédure a été spécifiée par le standard Internet IDNA2003 en 2003, retravaillé en 2010 : IDNA2008. La traduction d’UNICODE selon l’ASCII se fait du côté du client (navigateur Web, client email, etc.) en raison d’un processus de codage standardisé appelé Punycode.
Punycode
Punycode est une syntaxe de coding standardisée, développée selon la RFC 3492 dans le but de représenter des séries de caractères Unicode en ASCII, explicitement et sans perte. Pour cela, tous les caractères ne faisant pas partie du standard ASCII sont retirés du nom de domaine, codés puis raccordés séparément par un trait d’union. Cette suite de code nous renseigne sur le caractère spécial en question, tout comme sa position dans le nom de domaine. Chaque ACE-String ainsi créé se verra doté d’un préfixe « xn », caractérisant la suite de code comme comportant des caractères IDN selon l’IDNA et le Punycode. Dans notre article sur le Punycode, vous trouverez une explication détaillée de la procédure de codage ainsi que quelques exemples.
Avec un convertisseur de domaine IDN en ligne, vous pouvez convertir les IDN en leurs chaînes ACE correspondantes selon la méthode punycode.
Différences entre IDNA2003 et IDNA2008
Dans le procédé initial de 2003, les URLs internationalisées avant le codage en Punycode étaient normalisées avec le procédé appelé Nameprep. Les majuscules ont été transformées en minuscules, les caractères de contrôle ont été supprimés et les caractères équivalents ont été uniformisés. Depuis IDNA2008, Nameprep ne fait plus partie du procédé d’interprétation. IDNA ne fixe par conséquent plus aucune normalisation à l’avance, mais recommande cependant un algorithme transformant les majuscules en minuscules.
Environ 8 000 caractères qui étaient utilisables dans les noms de domaine avec IDNA2003 ne sont plus compatibles avec IDNA2008. Quatre caractères sont interprétés différemment suivant les deux procédés, tels que l’eszett allemand (« ß »). Une discussion détaillée sur les différences entre IDNA2003 et IDNA2008 est disponible sur la page Unicode Technical Standard #46. Le tableau suivant résume les principales différences :
IDNA2003 | IDNA2008 |
---|---|
Procédure Nameprep exigée | Pas de normalisation par défaut |
Valable pour Unicode 3.2 | Valable pour les versions Unicode à partir de 5.2 |
Règles strictes pour les polices de caractères en sens inverse | Règles plus claires pour les polices de caractères en sens inverse |
Les majuscules et les minuscules sont considérées comme des caractères différents | Les majuscules sont converties en minuscules |
De nombreux symboles sont interdits, par exemple les symboles graphiques qui n’appartiennent à aucun système d’écriture, ainsi que certains signes de ponctuation | |
Suppression du « remappage » de certains caractères Unicode, qui pouvait entraîner des irrégularités |
Problèmes avec IDNs
Entre-temps, tous les programmes courants d’Internet doivent comprendre et être capables d’interpréter ces IDNs. Le changement entre IDNA2003 et IDNA2008 n’a pas été pris en compte de façon conséquente sur Internet, ce qui a abouti à des problèmes avec les noms de domaine internationalisés. Pour l’espace Web germanophone par exemple, une source d’erreur est l’interprétation différente du « ß », tel qu’IDNA2003 transforme automatiquement en double « s » tandis qu’il est utilisé avec IDNA2008. Un système utilisant l’ancien modèle IDNA2003 ne pourrait ainsi pas trouver le nom de domaine approprié comportant un « ß ». Les administrateurs de sites Web ont pu entre-temps contourner ce problème en proposant une redirection sur une variante du nom de domaine dirigeant l’utilisateur vers la seconde variante, composée de l’écriture de référence.