Τι είναι ένα διεθνοποιημένο όνομα χώρου (IDN);
Σύμφωνα με τη Διεθνή Ένωση Τηλεπικοινωνιών (ITU), περισσότερα από τρία δισεκατομμύρια άτομα χρησιμοποιούν το Διαδίκτυο, και μάλιστα όλο και περισσότερο στη μητρική τους γλώσσα. Αυτή η αλλαγή οφείλεται εν μέρει στην εισαγωγή των διεθνών ονομάτων χώρου το 2003. Θα εξηγήσουμε πώς λειτουργούν οι τομείς IDN.
Τι είναι ένα διεθνοποιημένο όνομα χώρου (IDN);
Η IETF (Internet Engineering Task Force) ορίζει τα IDN ως ονόματα τομέα που περιέχουν ειδικούς χαρακτήρες που δεν ανήκουν στο λατινικό αλφάβητο, όπως οι διαλυτικές ή χαρακτήρες από άλλα αλφάβητα. Ωστόσο, το Σύστημα Ονομάτων Τομέα (DNS), το οποίο είναι υπεύθυνο για τη μετατροπή των URL σε διευθύνσεις IP, δεν μπορεί να αναγνωρίσει αυτά τα ονόματα τομέα. Το DNS βασίζεται στο περιορισμένο τυποποιημένο σύνολο χαρακτήρων ASCII.
Προκειμένου τα IDN να γίνουν κατανοητά τόσο από το DNS όσο και από άλλα πρωτόκολλα του Διαδικτύου, το 2003 δημιουργήθηκε το πρότυπο του Διαδικτύου «Internationalising Domain Names in Applications» (IDNA). Αυτό ορίζει μια τυποποιημένη μετατροπή από Unicode σε ASCII, επιτρέποντας έτσι τη χρήση χαρακτήρων εκτός ASCII στα ονόματα τομέα.
Πώς λειτουργεί το IDNA;
Μεγάλο μέρος της υποδομής του Διαδικτύου υποστηρίζει μόνο το σύνολο χαρακτήρων ASCII. Προκειμένου να διασφαλιστεί η επεξεργασία των διεθνών ονομάτων τομέα, κάθε IDN που είναι διαθέσιμο σε Unicode μεταφράζεται σε μια συμβολοσειρά ASCII, η οποία βασίζεται στο ASCII. Στη συνέχεια, εμφανίζονται οι διευθύνσεις URL που περιέχουν χαρακτήρες με τόνους ή διαλυτικά. Ο διακομιστής, από την άλλη πλευρά, συνεχίζει να επεξεργάζεται τις διευθύνσεις ως συμβατές με ASCII. Αυτή η διαδικασία καθορίζεται στο πρότυπο διαδικτύου IDNA2003 και στην αναθεώρηση IDNA2008, η οποία εγκρίθηκε το 2010. Η μετάφραση από Unicode σε ASCII πραγματοποιείται από την πλευρά του πελάτη (στο πρόγραμμα περιήγησης, στο πρόγραμμα ηλεκτρονικού ταχυδρομείου κ.λπ.) και βασίζεται σε μια τυποποιημένη διαδικασία κωδικοποίησης που ονομάζεται Punycode.
Punycode
Το Punycode, που τυποποιήθηκε σύμφωνα με το RFC 3492, αναπτύχθηκε για την ευκρινή απεικόνιση συμβολοσειρών χαρακτήρων Unicode ως συμβόλων ASCII χωρίς απώλεια ποιότητας. Όλοι οι μη ASCII χαρακτήρες αφαιρούνται από το όνομα τομέα, κωδικοποιούνται και διαχωρίζονται με παύλα. Αυτή η ακολουθία κώδικα περιέχει πληροφορίες σχετικά με το συγκεκριμένο σύμβολο Unicode καθώς και τη θέση του στο όνομα τομέα. Επιπλέον, κάθε συμβολοσειρά ACE που δημιουργείται με αυτόν τον τρόπο φέρει την ένδειξη xn–. Αυτό διευκρινίζει στον αναγνώστη ότι η ακολουθία χαρακτήρων είναι ένα IDN που έχει κωδικοποιηθεί σύμφωνα με τα πρότυπα IDNA και Punycode. Δείτε το άρθρο μας σχετικά με το Punycode για μια λεπτομερή εξήγηση της διαδικασίας κωδικοποίησης, καθώς και μερικά παραδείγματα.
Με έναν διαδικτυακό μετατροπέα ονομάτων τομέα IDN, μπορείτε να μετατρέψετε τα IDN στις αντίστοιχες συμβολοσειρές ACE χρησιμοποιώντας Punycode.
Διαφορές μεταξύ IDNA2003 και IDNA2008
Στην αρχική διαδικασία του 2003, οι διεθνοποιημένες διευθύνσεις URL κανονικοποιούνταν πριν από την κωδικοποίηση Punycode με τη χρήση της μεθόδου nameprep. Η μέθοδος αυτή μετέτρεπε τα κεφαλαία γράμματα σε πεζά, αφαιρούσε τους χαρακτήρες ελέγχου και μετατρέπονε τους ισοδύναμους χαρακτήρες σε μια ενοποιημένη μορφή. Η μέθοδος nameprep καταργήθηκε από αυτή τη διαδικασία με την εισαγωγή του IDNA2008. Πλέον, το IDNA δεν ορίζει καμία κανονικοποίηση. Αντ’ αυτού, προτείνει έναν αλγόριθμο που μετατρέπει τα κεφαλαία γράμματα σε πεζά.
Αυτή η προσαρμογή εξυπηρετεί επίσης τους χρήστες στον γερμανόφωνο κόσμο, καθώς ο χαρακτήρας Unicode «ß», ο οποίος είναι συνηθισμένος στη Γερμανία, είχε αρχικά οριστεί ως ισοδύναμο του «ss» σύμφωνα με το πρότυπο IDNA2003. Ως εκ τούτου, ονόματα χώρου όπως www.fußball-ergebnisse.de κανονικοποιούνταν αυτόματα σε www.fussball-ergebnisse.de κατά τη διαδικασία nameprep. Αυτό δεν ισχύει πλέον από τη στιγμή που τέθηκε σε εφαρμογή το πρότυπο IDNA2008. Από το 2010, το «ß» ερμηνεύεται σωστά ως «Latin small letter sharp s» και μπορεί να καταχωρηθεί ως μέρος ενός τομέα IDN.
Επιπλέον, περίπου 8.000 χαρακτήρες που επιτρέπονταν στα ονόματα τομέα σύμφωνα με το πρότυπο IDNA2003 δεν υποστηρίζονται πλέον στο IDNA2008. Τέσσερις χαρακτήρες, μεταξύ των οποίων και το «ß», ερμηνεύονται διαφορετικά μετά την αναθεώρηση του προτύπου. Για μια αναλυτική παρουσίαση των διαφορών μεταξύ των προτύπων IDNA2003 και IDNA2008, ανατρέξτε στο Τεχνικό Πρότυπο Unicode #46. Ο παρακάτω πίνακας παρέχει μια σύνοψη των κύριων διαφορών:
| IDNA2003 | IDNA2008 |
|---|---|
| Απαιτείται διαδικασία Nameprep | Δεν έχει καθοριστεί κανονικοποίηση |
| Ισχύει για Unicode 3.2 | Ισχύει για εκδόσεις Unicode από την 5.2 και μετά |
| Αυστηροί κανόνες για γραμματοσειρές από δεξιά προς τα αριστερά | Σαφέστεροι κανόνες για γραμματοσειρές από δεξιά προς τα αριστερά |
| Τα κεφαλαία και τα μικρά γράμματα θεωρούνται ξεχωριστοί χαρακτήρες | Τα κεφαλαία γράμματα μετατρέπονται σε μικρά |
| Πολλά σύμβολα απαγορεύονται, π.χ. γραφικά σύμβολα που δεν ανήκουν σε κανένα αλφάβητο, καθώς και ορισμένα σημεία στίξης | |
| Η «επαναχαρτογράφηση» καταργήθηκε από ορισμένους χαρακτήρες Unicode, καθώς αυτό θα μπορούσε να οδηγήσει σε ανωμαλίες |
Ποια είναι τα προβλήματα με τα IDN;
Πλέον, όλα τα συνηθισμένα προγράμματα διαδικτύου θα πρέπει να είναι σε θέση να αναγνωρίζουν τα IDN. Ωστόσο, μερικές φορές προκύπτουν προβλήματα με τα διεθνοποιημένα ονόματα τομέα, καθώς η μετάβαση από το IDNA2003 στο IDNA2008 δεν έχει ακόμη εφαρμοστεί με συνέπεια. Ένα παράδειγμα που δημιουργεί προβλήματα για τα γερμανικά είναι η διαφορετική ερμηνεία του «ß». Δεδομένου ότι το IDNA2003 μετατρέπει υποχρεωτικά το «ß» σε «ss», ειδικά domain με «ß» που μπορούν να καταχωρηθούν σύμφωνα με το IDNA2008 συχνά δεν είναι ανιχνεύσιμα από συστήματα που πραγματοποιούν μετατροπή σύμφωνα με το ξεπερασμένο πρότυπο. Αντ’ αυτού, οι χρήστες κατευθύνονται στο αντίστοιχο domain που περιέχει «ss». Αυτό το πρόβλημα μπορεί να παρακαμφθεί αν οι διαχειριστές ιστοσελίδων καταχωρήσουν και τις δύο παραλλαγές και ανακατευθύνουν το δεύτερο domain προς την ορθογραφία προτεραιότητας χρησιμοποιώντας μια ανακατεύθυνση domain.