Кіріспе
URI протоколындағы таңбалардың кеңейтілген жиынтығы. Интернационалдастырылған ресурс идентификаторы (IRI) – рұқсат етілген таңбалар жиынтығын едәуір кеңейте отырып, Бірыңғай ресурс идентификаторы (URI) протоколына негізделген интернет-протокол стандарты. Ол 2005 жылы RFC 3987 стандартында Интернет-инженерлік жұмыс тобы (IETF) арқылы анықталды. URI-лер АҚШ ASCII таңбалар жиынтығының шектеулі бөлігімен ғана шектелсе (осы жиынтықтан тыс таңбалар белгілі бір таңба кодтамасына сәйкес октеттерге түрлендіріліп, содан кейін проценттік кодтама қолданылады), IRI-лерде Универсалды таңбалар жиынтығының (Unicode/ISO 10646) көптеген таңбаларын, соның ішінде қытай, жапон, корей және кириллица таңбаларын қамтуға болады.
The Internationalized Resource Identifier (IRI) is an internet protocol standard which builds on the Uniform Resource Identifier (URI) protocol by greatly expanding the set of permitted characters. It was defined by the Internet Engineering Task Force (IETF) in 2005 in RFC 3987. While URIs are limited to a subset of the US ASCII character set (characters outside that set must be mapped to octets according to some unspecified character encoding, then percent encoded), IRIs may additionally contain most characters from the Universal Character Set (Unicode/ISO 10646), including Chinese, Japanese, Korean, and Cyrillic characters.
Синтаксисі
IRI-лер Universal Character Set-ті пайдалану арқылы URI-лерді кеңейтеді, URI-лер ASCII-мен шектелген және одан әлдеқайда аз таңбаларды қамтиды. IRI-лер октеттер тізбегі түрінде көрсетілуі мүмкін, бірақ анықтама бойынша олар таңбалар тізбегі ретінде анықталады, себебі IRI-лерді ауызша айтуға немесе қолмен жазуға болады. IRI-лерді тікелей пайдалануға рұқсат бермейтін қолданбалар мен протоколдар үшін, егер ол әлдеден Unicode форматында болмаса, IRI-ді алдымен канондық композиция нормализациясы (NFC) арқылы Unicode-қа түрлендіру қажет. IRI-дегі ASCII емес барлық кодтар UTF-8 ретінде кодталып, нәтижесінде алынған байттар жарамды URI-ді жасау үшін проценттік кодтаудан өткізілуі керек. Мысал: IRI https://en.wiktionary.org/wiki/Ῥόδος URI https://en.wiktionary.org/wiki/%E1%BF%AC%CF%8C%CE%B4%CE%BF%CF%82 болады.
ASCII кодтары жарамсыз URI таңбалары болып табылатын кодтар, жүзеге асыруға байланысты бірдей жолмен кодталуы мүмкін. Кейбір протоколдар қосымша түрлендірулерді талап етуі мүмкін, мысалы, DNS белгілері үшін Punycode.
Артықшылықтар
URI-лерді әр түрлі тілдерде көрсетудің себептері бар; көбінесе, латын (A–Z) әліпбиімен таныс емес пайдаланушылар үшін ыңғайлырақ болады. Егер кез келген адамның пернетақтасында кез келген Unicode символын көшіруі қиын болмаса, бұл URI жүйесін қолжетімдірек ете алады.
Кемшіліктер
IRI және ASCII URI-ді араластыру фишингтік шабуылдарды орындауды жеңілдетеді, бұл адамдарды олар шын мәнінде басқа сайтта екеніне сендіріп алдауға мүмкіндік береді. Мысалы, www.myfictionalbank.com сайтындағы ASCII "a" әрпін Unicode-тің ұқсас "α" әрпімен алмастыру арқылы www.myfictionαlbank.com жасауға болады және осы IRI-ді қаушамды сайтқа бағыттауға болады. Бұл IDN гомографиялық шабуыл деп аталады. URI адамдарға өз әліпбилерін пайдаланып веб-ресурстарды көрсетуге мүмкіндік бермесе, IRI қажетті халықаралықтандырылған символдарды шығара алмайтын пернетақталармен веб-ресурстарға қалай қол жеткізуге болатынын нақты көрсетпейді. Демек, IRI енді көптеген басқа бағдарламалық құралдар сияқты қолданылады, әртүрлі тілдердегі мәтіндермен жұмыс істегенде пернетақтадан басқа енгізу әдісін пайдалану қажет болуы мүмкін.