Интернационализированный идентификатор ресурса ( IRI ) — это стандарт интернет-протокола , который основан на протоколе унифицированного идентификатора ресурса ( URI ) за счет значительного расширения набора разрешенных символов. [1] [2] [3] Он был определен рабочей группой по проектированию Интернета ( IETF ) в 2005 году в RFC 3987. В то время как URI ограничены подмножеством набора символов US-ASCII (символы вне этого набора должны быть сопоставлены с октетами в соответствии с некоторой неуказанной кодировкой символов, а затем закодированы процентом ), IRI могут дополнительно содержать большинство символов из универсального набора символов ( Unicode/ ISO 10646 ), [4] [5] включая китайские , японские , корейские и кириллические символы.
IRI расширяют URI, используя универсальный набор символов , где URI были ограничены ASCII , с гораздо меньшим количеством символов. IRI могут быть представлены последовательностью октетов, но по определению определяются как последовательность символов, поскольку IRI могут быть произнесены или написаны вручную. [6]
IRI сопоставляются с URI для сохранения обратной совместимости с системами, которые не поддерживают новый формат. [6]
Для приложений и протоколов, не допускающих прямого использования IRI, IRI следует сначала преобразовать в Unicode с помощью канонической нормализации композиции (NFC) , если он еще не находится в формате Unicode.
Все не-ASCII кодовые точки в IRI затем должны быть закодированы как UTF-8 , а полученные байты закодированы процентами , чтобы создать действительный URI.
Пример: IRI https://en.wiktionary.org/wiki/Internationalized_resource_identifier/Ῥόδος становится URI https://en.wiktionary.org/wiki/Internationalized_resource_identifier/%E1%BF%AC%CF%8C%CE%B4%CE%BF%CF%82
Кодовые точки ASCII, которые являются недопустимыми символами URI, могут кодироваться таким же образом, в зависимости от реализации. [6]
Это преобразование легко обратимо; по определению, преобразование IRI в URI и обратно даст IRI, который семантически эквивалентен исходному IRI, даже если он может отличаться в точном представлении. [7]
Некоторые протоколы могут предусматривать дополнительные преобразования, например Punycode для меток DNS .
Есть причины видеть URI, отображаемые на разных языках; в основном, это облегчает работу пользователям, незнакомым с латинским алфавитом (A–Z). Если предположить, что для кого-то не составит большого труда воспроизвести произвольный Unicode на своей клавиатуре, это может сделать систему URI более доступной. [8]
Смешение IRI и ASCII URI может значительно облегчить выполнение фишинговых атак, которые обманывают кого-либо, заставляя его поверить, что он находится на другом сайте, чем на самом деле. Например, можно заменить ASCII "a" на www.myfictionalbank.com
подобие Unicode " α ", чтобы указать www.myfictionαlbank.com
и направить этот IRI на вредоносный сайт. Это известно как атака с использованием омографа IDN .
В то время как URI не предоставляет людям способ указывать веб-ресурсы, используя их собственные алфавиты, IRI не проясняет, как можно получить доступ к веб-ресурсам с помощью клавиатур, которые не способны генерировать требуемые интернационализированные символы. Это означает, что IRI теперь обрабатываются способом, очень похожим на многие другие программы, которые могут потребовать использования неклавиатурного метода ввода при работе с текстами на разных языках.
Обратите внимание, что IRI (Internationalized Resource Identifier) [11] должны заменить URI в будущем.
В этом документе определяется новый элемент протокола, Internationalized Resource Identifier (IRI), как дополнение к Uniform Resource Identifier (URI). IRI — это последовательность символов из универсального набора символов (Unicode/ISO 10646). Определено отображение IRI в URI, что означает, что IRI можно использовать вместо URI, где это уместно, для идентификации ресурсов. Был выбран подход определения нового элемента протокола вместо расширения или изменения определения URI.
Этот документ определяет новый элемент протокола, называемый Internationalized Resource Identifier (IRI), путем расширения синтаксиса URI на гораздо более широкий репертуар символов. Он также определяет "internationalized" версии, соответствующие другим конструкциям из [RFC3986], таким как ссылки URI. Синтаксис IRI определен в разделе 2, а связь между IRI и URI — в разделе 3.
{{cite book}}
: CS1 maint: multiple names: authors list (link)