IRI è l'acronimo di Internationalized Resource Identifier ed è attualmente uno standard proposto IETF[1].
Un IRI è una forma generale di Uniform Resource Identifier costituita, a differenza di una URI, da una sequenza di caratteri appartenenti all'Universal Character Set (Unicode/ISO 10646), e ciò significa che al suo interno possono occorrere caratteri non appartenenti all'insieme ASCII[2].
Un IRI può essere convertita in URI seguendo delle precise regole[3][4][5].
Descrizione
[modifica | modifica wikitesto]Sebbene gli URI siano limitati a un sottoinsieme del set di caratteri US-ASCII (i caratteri al di fuori di tale set devono essere mappati a ottetti in base a una codifica di caratteri non specificata, quindi codificata in percentuale), gli IRI possono inoltre contenere la maggior parte dei caratteri dell'Universal Character Set (Unicode/ISO 10646), compresi i caratteri cinesi, giapponesi, coreani e cirillici[6][7].
Gli IRI estendono gli URI usando l'Universal Character Set, dove gli URI erano limitati ad ASCII, con molti meno caratteri. Gli IRI possono essere rappresentati da una sequenza di ottetti ma per definizione sono definiti come una sequenza di caratteri, perché gli IRI possono essere pronunciati o scritti a mano[8].
Compatibilità
[modifica | modifica wikitesto]Gli IRI sono mappati agli URI per mantenere la compatibilità con le versioni precedenti con i sistemi che non supportano il nuovo formato[8].
Mappatura di IRI in URI
[modifica | modifica wikitesto]La mappatura ha due scopi[8]:
Sintattico. Molti schemi e componenti URI definiscono particolari restrizioni sintattiche. Le restrizioni specifiche dello schema vengono applicate agli IRI convertendo gli IRI in URI e verificando gli URI rispetto alle restrizioni specifiche dello schema stesso.
Identificazione delle risorse. Quando l'IRI viene utilizzato esclusivamente a fini identificativi, non è necessario mappare l'IRI su un URI. Tuttavia, quando un IRI viene utilizzato per una risorsa rappresentata come una sequenza di caratteri indipendente dai caratteri dell'UCS normalizzata secondo il modulo di normalizzazione C (NFC).
Per applicazioni e protocolli che non consentono il consumo diretto di IRI, l'IRI deve essere prima convertito in Unicode utilizzando la normalizzazione della composizione canonica (NFC), se non già in formato Unicode.
Tutti i punti di codice non ASCII nell'IRI devono essere successivamente codificati come UTF-8 e i byte risultanti codificati in percentuale per produrre un URI valido.
Esempio
[modifica | modifica wikitesto]L'IRI
https://en.wiktionary.org/wiki/Ῥόδος
diventa l'URI
https://en.wiktionary.org/wiki/%E1%BF%AC%CF%8C%CE%B4%CE%BF%CF%82
I punti di codice ASCII che sono caratteri URI non validi possono essere codificati allo stesso modo, a seconda dell'implementazione[8].
Questa conversione è facilmente reversibile; per definizione, convertire un IRI in un URI e viceversa produrrà un IRI che è semanticamente equivalente all'IRI originale, anche se può differire nella rappresentazione esatta[9].
Alcuni protocolli possono imporre ulteriori trasformazioni, ad esempio Punycode per le etichette DNS[10].
Vantaggi
[modifica | modifica wikitesto]Ci sono motivi per vedere gli URI visualizzati in lingue diverse; per lo più, lo rende più facile per gli utenti che non hanno familiarità con l'alfabeto latino (A–Z). Supponendo che non sia troppo difficile per chiunque replicare Unicode arbitrario sulle proprie tastiere, questo può rendere il sistema URI più accessibile[11].
Svantaggi
[modifica | modifica wikitesto]La combinazione degli IRI e gli URI ASCII può rendere molto più semplice eseguire attacchi di phishing che inducono qualcuno a credere di trovarsi su un sito diverso da quello che realmente sono. Ad esempio, si può sostituire un ASCII "a" www.myfictionalbank.com
con il sosia Unicode "α" per ottenere www.myfictionαlbank.com
e puntare quell'IRI a un sito dannoso. Questo è noto come attacco omografo IDN[8].
Sebbene un URI non fornisca alle persone un modo per specificare le risorse Web utilizzando i propri alfabeti, un IRI non chiarisce come è possibile accedere alle risorse Web con tastiere che non sono in grado di generare i caratteri internazionalizzati richiesti. Ciò significa che gli IRI sono ora gestiti in un modo molto simile a molti altri software che potrebbero richiedere l'uso di un metodo di input non tramite tastiera quando si tratta di testi in varie lingue[8].
Note
[modifica | modifica wikitesto]- ^ Internationalized Resource Identifiers (IRIs), su w3.org. URL consultato il 28 ottobre 2021.
- ^ Il W3C sostiene lo standard URI e lo standard proposto IRI, su w3c.it. URL consultato il 28 ottobre 2021.
- ^ Aldo Gangemi e Valentina Presutti, The bourne identity of a web resource (PDF), in Proceedings of Identity Reference and the Web Workshop (IRW), Laboratory for Applied Ontology, 2006, p. 3.«Notice that IRIs (Internationalized Resource Identifier) [11] are supposed to replace URIs in next future.»
- ^ (EN) Michel Suignard, Internationalized Resource Identifiers (IRIs), su tools.ietf.org. URL consultato il 9 giugno 2018.«This document defines a new protocol element, the Internationalized Resource Identifier (IRI), as a complement to the Uniform Resource Identifier (URI). An IRI is a sequence of characters from the Universal Character Set (Unicode/ISO 10646). A mapping from IRIs to URIs is defined, which means that IRIs can be used instead of URIs, where appropriate, to identify resources. The approach of defining a new protocol element was chosen instead of extending or changing the definition of URIs.»
- ^ (EN) Michel Suignard, Internationalized Resource Identifiers (IRIs), su tools.ietf.org. URL consultato il 9 giugno 2018.
- ^ (EN) Michel Suignard, Internationalized Resource Identifiers (IRIs), su tools.ietf.org. URL consultato il 9 giugno 2018.
- ^ (EN) Michel Suignard, Internationalized Resource Identifiers (IRIs), su tools.ietf.org. URL consultato il 9 giugno 2018.
- ^ a b c d e f M. Duerst, RFC 3987, in Network Working Group, Standards Track, 2005. URL consultato il 12 ottobre 2014.
- ^ Hrsg. Dieter Fensel; Hrsg. John Domingue; Hrsg. James A. Hendler, Handbook of Semantic Web Technologies, 1. Aufl., Berlin, Springer-Verlag GmbH, 2010, ISBN 978-3-540-92912-3. URL consultato il 12 ottobre 2014.
- ^ Punycode, su IONOS Digitalguide. URL consultato il 28 ottobre 2021.
- ^ Kendall Clark, Internationalizing the URI, su xml.com, O’Reilly Media, Inc., 7 maggio 2003. URL consultato il 12 ottobre 2014.
Bibliografia
[modifica | modifica wikitesto]- RFC 3987 (in inglese)