Identificador de recursos internacionalizado | |
Abreviatura | IRI |
---|---|
Estado | Norma propuesta |
Año iniciado | 22 de abril de 2002 (2002-04-22) |
Primera publicación | 22 de abril de 2002 (2002-04-22) |
Última versión | 21 de enero de 2020 (2020-01-21) |
Organización | Federación Internacional de Fútbol Americano (IETF) |
Autores |
|
Normas básicas |
|
Dominio | Codificación de caracteres |
Sitio web | RFC 3987 |
El Identificador de recursos internacionalizado ( IRI ) es un estándar de protocolo de Internet que se basa en el protocolo Identificador uniforme de recursos (URI) al expandir en gran medida el conjunto de caracteres permitidos. [1] [2] [3] Fue definido por el Grupo de trabajo de ingeniería de Internet (IETF) en 2005 en RFC 3987. Si bien los URI están limitados a un subconjunto del conjunto de caracteres US-ASCII (los caracteres fuera de ese conjunto deben asignarse a octetos de acuerdo con alguna codificación de caracteres no especificada, y luego codificarse en porcentaje ), los IRI pueden contener adicionalmente la mayoría de los caracteres del Conjunto de caracteres universal (Unicode/ ISO 10646 ), [4] [5] incluidos caracteres chinos , japoneses , coreanos y cirílicos .
Los IRI amplían los URI mediante el uso del conjunto de caracteres universal , donde los URI estaban limitados a ASCII , con muchos menos caracteres. Los IRI pueden representarse mediante una secuencia de octetos, pero por definición se definen como una secuencia de caracteres, porque los IRI pueden ser hablados o escritos a mano. [6]
Los IRI se asignan a URI para mantener la compatibilidad con versiones anteriores de sistemas que no admiten el nuevo formato. [6]
Para las aplicaciones y protocolos que no permiten el consumo directo de IRI, el IRI debe convertirse primero a Unicode mediante la normalización de composición canónica (NFC) , si aún no está en formato Unicode.
A continuación, todos los puntos de código no ASCII en el IRI deben codificarse como UTF-8 y los bytes resultantes deben codificarse en porcentaje para producir un URI válido.
Ejemplo: El IRI https://en.wiktionary.org/wiki/Ῥόδος se convierte en el URI https://en.wiktionary.org/wiki/%E1%BF%AC%CF%8C%CE%B4%CE%BF%CF%82
Los puntos de código ASCII que son caracteres URI no válidos pueden codificarse de la misma manera, dependiendo de la implementación. [6]
Esta conversión es fácilmente reversible; por definición, convertir un IRI en un URI y viceversa producirá un IRI que es semánticamente equivalente al IRI original, aunque pueda diferir en la representación exacta. [7]
Algunos protocolos pueden imponer transformaciones adicionales; por ejemplo, Punycode para etiquetas DNS .
Existen razones para que las URI se muestren en diferentes idiomas; principalmente, para facilitar el trabajo a los usuarios que no están familiarizados con el alfabeto latino (A-Z). Suponiendo que no sea demasiado difícil para cualquiera replicar un código Unicode arbitrario en su teclado, esto puede hacer que el sistema URI sea más accesible. [8]
La combinación de IRI y URI ASCII puede facilitar mucho la ejecución de ataques de phishing que engañen a alguien para que crea que está en un sitio diferente al que está realmente. Por ejemplo, se puede reemplazar una "a" ASCII por una " α " similar a Unicode para indicar que ese IRI apunta a un sitio malicioso. Esto se conoce como ataque homógrafo de IDN .www.myfictionalbank.com
www.myfictionαlbank.com
Si bien un URI no ofrece a las personas una manera de especificar recursos web utilizando sus propios alfabetos, un IRI no aclara cómo se puede acceder a los recursos web con teclados que no son capaces de generar los caracteres internacionalizados necesarios. Esto significa que los IRI se manejan ahora de una manera muy similar a muchos otros programas que podrían requerir el uso de un método de entrada que no sea el teclado cuando se trabaja con textos en varios idiomas.
Nótese que se supone que los IRI (identificadores de recursos internacionales) [11] reemplazarán a los URI en el futuro próximo.
Este documento define un nuevo elemento de protocolo, el Identificador de recursos internacionalizado (IRI), como complemento del Identificador uniforme de recursos (URI). Un IRI es una secuencia de caracteres del Conjunto de caracteres universal (Unicode/ISO 10646). Se define una asignación de IRI a URI, lo que significa que se pueden utilizar IRI en lugar de URI, cuando sea apropiado, para identificar recursos. Se eligió el enfoque de definir un nuevo elemento de protocolo en lugar de extender o cambiar la definición de URI.
Este documento define un nuevo elemento de protocolo llamado Identificador de recursos internacionalizado (IRI) al extender la sintaxis de los URI a un repertorio de caracteres mucho más amplio. También define versiones "internacionalizadas" correspondientes a otras construcciones de [RFC3986], como las referencias URI. La sintaxis de los IRI se define en la sección 2 y la relación entre los IRI y los URI en la sección 3.
{{cite book}}
: CS1 maint: multiple names: authors list (link)