| Internationalized Resource Identifier | |
|---|---|
| Internationalized Resource Identifier | |
| Abbreviation | IRI |
| Status | Proposed Standard |
| Year started | 22 April 2002 (2002-04-22) |
| First published | 22 April 2002 (2002-04-22) |
| Latest version | 21 January 2020 (2020-01-21) |
| Organization | IETF |
| Authors |
|
| Base standards |
|
| Domain | Character encoding |
| Website | RFC 3987 |
TheInternationalized Resource Identifier (IRI) is aninternet protocol standard which builds on theUniform Resource Identifier (URI) protocol by greatly expanding the set of permitted characters.[1][2][3] It was defined by theInternet Engineering Task Force (IETF) in 2005 in RFC 3987. While URIs are limited to a subset of theUS-ASCII character set (characters outside that set must be mapped to octets according to some unspecified character encoding, thenpercent-encoded), IRIs may additionally contain most characters from theUniversal Character Set (Unicode/ISO 10646),[4][5] including Chinese,Japanese,Korean, andCyrillic characters.
IRIs extend URIs by using theUniversal Character Set, where URIs were limited toASCII, with far fewer characters. IRIs may be represented by a sequence of octets but by definition are defined as a sequence of characters, because IRIs may be spoken or written by hand.[6]
IRIs are mapped to URIs to retain backwards-compatibility with systems that do not support the new format.[6]
For applications and protocols that do not allow direct consumption of IRIs, the IRI should first be converted to Unicode usingcanonical composition normalization (NFC), if not already in Unicode format.
All non-ASCII code points in the IRI should next be encoded asUTF-8, and the resulting bytespercent-encoded, to produce a valid URI.
Example: The IRIhttps://en.wiktionary.org/wiki/Ῥόδος becomes the URIhttps://en.wiktionary.org/wiki/%E1%BF%AC%CF%8C%CE%B4%CE%BF%CF%82
ASCII code points that are invalid URI charactersmay be encoded the same way, depending on implementation.[6]
This conversion is easily reversible; by definition, converting an IRI to an URI and back again will yield an IRI that is semantically equivalent to the original IRI, even though it may differ in exact representation.[7]
Some protocols may impose further transformations; e.g.Punycode forDNS labels.
There are reasons to see URIs displayed in different languages; mostly, it makes it easier for users who are unfamiliar with the Latin (A–Z) alphabet. Assuming that it isn't too difficult for anyone to replicate arbitrary Unicode on their keyboards, this can make theURI system more accessible.[8]
Mixing IRIs andASCIIURIs can make it much easier to executephishing attacks that trick someone into believing they are on a different site than they really are. For example, one can replace an ASCII "a" inwww.myfictionalbank.com with the Unicode look-alike "α" to givewww.myfictionαlbank.com and point that IRI to a malicious site. This is known as anIDN homograph attack.
While a URI does not provide people with a way to specify web resources using their own alphabets, an IRI does not make clear how web resources can be accessed with keyboards that are not capable of generating the requisite internationalized characters. This means that IRIs are now handled in a way very similar to many other software which might require the use of a non-keyboardinput method when dealing with texts in various languages.
Notice that IRIs (Internationalized Resource Identifier) [11] are supposed to replace URIs in next future.
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.
This document defines a new protocol element called Internationalized Resource Identifier (IRI) by extending the syntax of URIs to a much wider repertoire of characters. It also defines "internationalized" versions corresponding to other constructs from [RFC3986], such as URI references. The syntax of IRIs is defined in section 2, and the relationship between IRIs and URIs in section 3.
{{cite book}}: CS1 maint: multiple names: authors list (link)