Люди говорять про URL-адреси , URI-адреси та URN- адреси , ніби вони різні речі, але неозброєним оком вони виглядають однаково.
У чому полягають відмінності між ними?
( URIs ( URLs ) )
Люди говорять про URL-адреси , URI-адреси та URN- адреси , ніби вони різні речі, але неозброєним оком вони виглядають однаково.
У чому полягають відмінності між ними?
( URIs ( URLs ) )
Відповіді:
Від RFC 3986 :
URI може бути додатково класифікований як локатор, ім'я або обидва. Термін "Уніфікований локатор ресурсів" (URL) відноситься до підмножини URI, які, крім ідентифікації ресурсу, забезпечують спосіб розміщення ресурсу шляхом опису його первинного механізму доступу (наприклад, його "локальне розташування"). Термін "Уніфікована назва ресурсу" (URN) історично використовувався для позначення обох URI за схемою "урна" [RFC2141] , які зобов'язані залишатися глобально унікальними та стійкими навіть тоді, коли ресурс припиняє своє існування або стає недоступним, і до будь-якого іншого URI зі властивостями імені.
Отже всі URL-адреси - це URI-адреси (насправді не зовсім - див. Нижче), а всі URN-адреси - URI-адреси, але URN-адреси та URL-адреси різні, тому ви не можете сказати, що всі URI-адреси є URL-адресами.
EDIT: Раніше я вважав, що всі URL-адреси є дійсними URI, але відповідно до коментарів:
Не "всі URL-адреси є URI-адресами". Це залежить від тлумачення RFC. Наприклад , в Java парсер URI не любить
[
або]
і це тому , що специфікація каже «не треба» , а не «не повинен».
Так що, на жаль, каламутить води.
Якщо ви ще не читали відповіді Роджера Пейта , я б радив це зробити також.
[
або ]
і це тому , що специфікація каже «не треба» , а не «не повинен».
java.net.URI
документ говорить: "кожна URL - це URI, абстрактно кажучи, але не кожен URI - це URL". А java.net.URL
чи не дивні речі, такі як перевірка рівності URL-адрес шляхом вирішення імен хостів до IP-адрес (що, здається, суперечить з RFC 3986 сек. 6, в першу чергу, і розбиває віртуальні хости). Я думаю, що це означає лише, що стандартна бібліотека Java має певну непослідовність поведінки класу.
URI S ідентифікувати і URL s місцезнаходження ; однак, локатори також є ідентифікаторами , тому кожна URL-адреса також є URI, але є URI, які не є URL-адресами.
Це моє ім’я, яке є ідентифікатором. Це як URI, але не може бути URL-адресою, оскільки він нічого не говорить про моє місцезнаходження та про те, як зв’язатися зі мною. У цьому випадку також трапляється ідентифікувати принаймні 5 інших людей лише в США.
Це локатор, який є ідентифікатором для цього фізичного місцезнаходження. Це як URL-адреса, так і URI (оскільки всі URL-адреси є URI-адресами), а також опосередковано ідентифікує мене як "резидента ..". У цьому випадку він однозначно ідентифікує мене, але це зміниться, якщо я отримаю сусідку по кімнаті.
Я кажу "як", тому що ці приклади не відповідають необхідному синтаксису.
З Вікіпедії :
Під час обчислень, Уніфікований локатор ресурсів (URL) - це підмножина Уніфікованого ідентифікатора ресурсів (URI), який визначає, де наявний ідентифікований ресурс, і механізм його отримання. У загальноприйнятому використанні, а також у багатьох технічних документах та словесних дискусіях він часто неправильно використовується як синонім URI , ... [наголос мій]
Через цю загальну плутанину багато продуктів і документації неправильно використовують один термін замість іншого, присвоюють власну відмінність або використовують їх синонімічно.
Моє ім’я, Роджер Пейт, могло бути схожим на URN (Уніфікована назва ресурсу), за винятком тих, що є набагато більш регламентованими і мають бути унікальними як у просторі, так і в часі.
Оскільки я зараз ділюся цим ім'ям з іншими людьми, воно не є унікальним у всьому світі і не було б доречним як URN. Однак, навіть якщо жодна інша родина не використовувала цього імені, я названий на честь свого діда-батька, тому воно все одно не буде унікальним протягом часу. І навіть якщо це не було так, можливість називати моїх нащадків після мене робить це непридатним як URN.
URN відрізняються від URL-адрес цим жорстким обмеженням унікальності, навіть якщо вони обидва мають синтаксис URI.
URNs are different from URLs in this rigid uniqueness constraint
Чи означає це, що URL-адреси не ідентифікують однозначно місцеположення?
URI - це стандарт для ідентифікації документів за допомогою короткого рядка цифр, букв та символів. Вони визначаються RFC 3986 - Уніфікований ідентифікатор ресурсу (URI): Загальний синтаксис . URL-адреси, URN та URC - це всі типи URI.
Містить інформацію про те, як отримати ресурс з його місцезнаходження. Наприклад:
http://example.com/mypage.html
ftp://example.com/download.zip
mailto:user@example.com
file:///home/user/file.txt
tel:1-888-555-5555
http://example.com/resource?foo=bar#fragment
/other/link.html
(Відносна URL-адреса, корисна лише в контексті іншої URL-адреси)URL-адреси завжди починаються з протоколу ( http
) і зазвичай містять інформацію, таку як мережеве ім'я хоста ( example.com
) і часто шлях до документа ( /foo/mypage.html
). URL-адреси можуть мати параметри запиту та ідентифікатори фрагментів.
Ідентифікує ресурс за унікальним та стійким іменем, але не обов'язково вказує, як його знайти в Інтернеті. Зазвичай починається з префікса urn:
Наприклад:
urn:isbn:0451450523
ідентифікувати книгу за її номером ISBN.urn:uuid:6e8bc430-9c3a-11d9-9669-0800200c9a66
глобальний унікальний ідентифікаторurn:publishing:book
- Простір імен XML, який ідентифікує документ як тип книги.УРН можуть ідентифікувати ідеї та концепції. Вони не обмежуються ідентифікаційними документами. Коли URN представляє документ, він може бути переведений в URL за допомогою "резолюції". Потім документ можна завантажити з URL-адреси.
Вказує на метадані про документ, а не на сам документ. Приклад URC - це той, який вказує на вихідний HTML код сторінки, наприклад:view-source:http://example.com/
Замість того, щоб розміщувати їх в Інтернеті чи називати їх, дані можна розміщувати безпосередньо в URI. Прикладом може бути data:,Hello%20World
.
Специфікація W3 для HTML говорить, що href
тег прив’язки може містити URI, а не лише URL. Ви повинні мати можливість ввести URN, наприклад <a href="urn:isbn:0451450523">
. Потім ваш веб-переглядач вирішить цю URN-адресу до URL-адреси та завантажить книгу для вас.
Не те, що я знаю, але сучасний веб-браузер реалізує схему URI даних.
Ні. Відносні та абсолютні URL-адреси - це URL-адреси (та URI-адреси).
Ні. Обидва URL-адреси з параметрами запиту та без них є URL-адресами (та URI-адресами).
Ні. І URL-адреси з і без ідентифікаторів фрагментів є URL-адресами (та URI-адресами).
Ні. URL-адреси визначаються як суворий підмножина URI. Якщо аналізатор дозволяє символу в URL-адресі, але не в URI, є помилка в аналізаторі. Технічні характеристики детально розглядають питання про те, які символи дозволено, в яких частинах URL-адрес та URI-адрес. Деякі символи можуть бути дозволені лише в деяких частинах URL-адреси, але самі символи не є різницею між URL-адресами та URI-адресами.
Так. W3C зрозумів, що з цього приводу існує безліч плутанини. Вони видали документ про уточнення URI, в якому сказано, що зараз нормально використовувати терміни URL та URI як взаємозамінні (означати URI). Більше не корисно строго сегментувати URI на різні типи, такі як URL, URN та URC.
Визначення URN зараз слабкіше, ніж те, про що я говорив вище. Останні RFC на URI , каже , що будь-який URI тепер може бути URN (незалежно від того, чи починається з urn:
) до тих пір , як вона є «властивість імені.» Тобто: це глобально унікальний та стійкий навіть тоді, коли ресурс припиняє своє існування або стає недоступним. Приклад: URI, використовувані в HTML-доктіптах, таких як http://www.w3.org/TR/html4/strict.dtd
. Цей URI продовжуватиме називати перехідний документ HTML4, навіть якщо сторінку на веб-сайті w3.org було видалено.
file://
префікс. Хоча браузери, як правило, обробляють шляхи до файлів у форматі без URL-адреси. Mozilla публікує свої тестові справи для URL-адрес файлів .
mailto:user@example.com
як URL-адресу, але інша відповідь нижче говорить, що це URN? Що правильно? Це і URN, і URL?
Підсумовуючи: URI ідентифікує, URL ідентифікує та розміщує.
Розглянемо конкретне видання п’єси Шекспіра « Ромео і Джульєтта» , про яку у вас є домашня мережа в цифровому форматі.
Ви можете визначити текст як urn:isbn:0-486-27557-4
.
Це був би URI, а точніше URN *, оскільки він називає текст .
Ви також можете визначити текст як file://hostname/sharename/RomeoAndJuliet.pdf
.
Це також був би URI, але точніше URL, оскільки він знаходить текст .
* Уніфікована назва ресурсу
(Зауважте, що мій приклад адаптований з Вікіпедії )
ISBN 0486275574
також називає текст і таким чином кваліфікується як URN. Я вибираю формат, який, як я вважав, буде більш відомим читачам.
Це кілька дуже добре написаних, але давно відповідей. Ось різниця , що стосується CodeIgniter :
URL - http://example.com/some/page.html
URI - /some/page.html
Простіше кажучи, URL - це повний спосіб ідентифікувати будь-який ресурс будь-де і може мати різні протоколи, такі як FTP, HTTP, SCP тощо.
URI - це ресурс поточного домену, тому йому потрібно менше інформації.
У кожному випадку, що CodeIgniter використовує слово URL або URI, це різниця, про яку вони говорять, хоча в грандіозній схемі Інтернету це не на 100% правильно.
/some/page.html
це не URI. Це "відносний коефіцієнт", який є своєрідним "URI-посиланням". У поєднанні з базовим контекстом URI він може бути вирішений до URI, але сам по собі не є URI. Дивіться розділ 4.1 RFC 3986 . CodeIgniter, ймовірно, використовує неправильні терміни, і їх слід викликати; Q (як редагується в даний час) не визначено як специфічний CodeIgniter.
Перш за все, звільниться від розгубленості і прийміть це просто, і ви зрозумієте.
URI => Уніфікований ідентифікатор ресурсу Ідентифікує повну адресу ресурсу, тобто місцезнаходження, ім'я або те і інше.
URL => Уніфікований локатор ресурсу Ідентифікує місцезнаходження ресурсу.
URN => Уніфікована назва ресурсу Ідентифікує назву ресурсу
Приклад
У нас є адреса https://www.google.com/folder/page.html де,
URI (Уніфікований ідентифікатор ресурсу) => https://www.google.com/folder/page.html
URL (Уніфікований пошук ресурсів) => https://www.google.com/
URN (Уніфікована назва ресурсу) => / folder/page.html
URI => (URL + URN) або лише URL або лише URN
Невелике доповнення до вже опублікованих відповідей, ось схема Венна для підведення підсумків теорії (з прекрасного пояснення Пратека Джоші ):
І приклад (також з веб-сайту Prateek):
#posts
ідентифікатор фрагмента може бути частиною URL-адреси
Це одна з найбільш заплутаних і, можливо, неактуальних тем, з якими я стикався як веб-професіонал.
Як я розумію, URI - це опис чогось, що відповідає прийнятому формату, який може визначати або унікальну назву (ідентифікацію) чогось, і його місцезнаходження.
Є два основні підмножини - URL-адреси, які визначають розташування (особливо для браузера, який намагається шукати веб-сторінку) та URN, які визначають унікальну назву чогось.
Я схильний вважати, що URN подібні до GUID. Вони просто стандартизована методологія надання унікальних імен для речей. Як і в декларативному просторі імен, який використовує назву компанії - це не так, як десь на сервері сидить ресурс, який відповідає цьому рядку тексту - він просто однозначно ідентифікує щось.
Я також схильний повністю уникати терміна URI і обговорювати речі лише з точки зору URL або URN, якщо це доречно, тому що це викликає стільки плутанини. Питання, на яке ми повинні спробувати відповісти людям, полягає не стільки в семантиці, скільки в тому, як визначити, стикаючись з термінами, чи є в них якась практична різниця, яка змінить підхід до ситуації програмування. Наприклад, якщо хтось виправляє мене в розмові і каже: "о, це не URL-адреса, це URI", я знаю, що вони сповнені цього. Якщо хтось скаже, що "ми використовуємо URN для визначення ресурсу", я, швидше за все, розумію, що ми називаємо його лише однозначно, не розміщуючи його на сервері.
Якщо я буду далеко від бази - будь ласка, повідомте мене!
redirect_url
замість цього використовувався API Google redirect_uri
, хтось би насправді хвилювався?
Ідентифікація = Ім'я з місцеположенням
Кожен URL ( U niform R esource L ocator) є URI ( U niform R esource I dentifier), абстрактно кажучи, але кожен URI не є URL. Існує ще одна категорія URI є URN ( U niform R esource N AME), який є іменованих ресурсом , але не вказується , як знайти їх, як MAILTO, новини, ISBN є URI. Джерело
URN:
urn:[namespace identifier]:[namespace specific string]
arn:partition:service:region:account-id:resource
URL:
[scheme]://[Domain][Port]/[path]?[queryString]#[fragmentId]
Аналогія: Дійти
до людини: керування автомобілем (протокол інших SMS, електронна пошта, телефон), адреса (ім'я хоста, інший номер телефону, emailid) та ім’я особи (ім'я об'єкта з відносним шляхом).
URI => http://en.wikipedia.org/wiki/Uniform_Resource_Identifier
URL-адреси - це підмножина URI (які також містять URN).
В основному, URI - це загальний ідентифікатор, де URL вказує місце розташування, а URN вказує ім'я.
[
і , ]
але не в URI.
Ще один приклад, який я хотів би використовувати під час роздумів про URI, - це атрибут xmlns документа XML:
<rootElement xmlns:myPrefix="com.mycompany.mynode">
<myPrefix:aNode>some text</myPrefix:aNode>
</rootElement>
У цьому випадку com.mycompany.mynode буде URI, який однозначно ідентифікує простір імен "myPrefix" для всіх елементів, які використовують його в моєму документі XML. Це НЕ URL-адреса, оскільки вона використовується лише для ідентифікації, а не для того, щоб знайти щось саме по собі.
Через труднощі чітко розмежувати URI та URL, наскільки я пам’ятаю, W3C більше не робить різниці між URI та URL ( http://www.w3.org/Addressing/ ).
Вони те саме . URI - це узагальнення URL-адреси. Спочатку URI-адреси планувалося розділити на URL-адреси (адреси) та URN-адреси (імена), але тоді була незначна різниця між URL-адресою та URI, а http-URI використовувались як простори імен, хоча вони фактично не знаходили жодних ресурсів.
URI, URL, URN
Як показано на зображенні вище, тут є три чіткі компоненти. Зазвичай найкраще звертатися до джерела, обговорюючи подібні питання, тож ось виступ Тіма Бернерса-Лі та ін. ін. в RFC 3986: Уніфікований ідентифікатор ресурсу (URI): Загальний синтаксис:
Уніфікований ідентифікатор ресурсу (URI) - це компактна послідовність символів, яка ідентифікує абстрактний або фізичний ресурс.
URI може бути додатково класифікований як локатор, ім'я або обидва. Термін "Уніфікований локатор ресурсів" (URL) відноситься до підмножини URI, які, крім ідентифікації ресурсу, забезпечують спосіб розміщення ресурсу, описуючи його первинний механізм доступу (наприклад, його "локальне розташування").
URI - це різновид суперкласу URL-адрес та URN-адрес. У Вікіпедії є чудова стаття про них із посиланнями на потрібний набір RFC.
Вікіпедія надасть всю необхідну інформацію тут. Цитуючи з http://en.wikipedia.org/wiki/URI :
URL-адреса - це URI, який, крім ідентифікації ресурсу, забезпечує засоби дії або отримання представлення ресурсу, описуючи його первинний механізм доступу або мережеве "місцезнаходження".
URL-адреса
URL - це спеціалізація URI, яка визначає мережеве розташування конкретного ресурсу. На відміну від URN, URL визначає, як можна отримати ресурс. Ми використовуємо URL-адреси щодня у формі http://example.com
тощо. Але URL-адреса не повинна бути URL-адресою HTTP, вона може бути ftp://example.com
і т.д.
URI
URI ідентифікує ресурс або за місцем розташування, або за назвою, або з обох. Найчастіше більшість із нас використовує URI, які визначають місцеположення до ресурсу. Те, що URI може ідентифікувати ресурси за назвою та місцеположенням, на мою думку, призвело до великої плутанини. URI має дві спеціалізації, відомі як URL та URN.
Різниця між URL-адресою та URI
URI - це ідентифікатор деякого ресурсу, але URL-адреса дає вам конкретну інформацію щодо отримання цього ресурсу. URI - це URL-адреса, і, як зазначав один із коментаторів, тепер вважається некоректним використовувати URL при описі програм. Як правило, якщо URL описує і місце розташування, і назву ресурсу, термін, який слід використовувати, - це URI. Оскільки це, як правило, трапляється з більшістю з нас щодня, URI - це правильний термін.
Відповідно до RFC 3986 , URI складаються з таких частин:
scheme://authority/path?query
URI описує протокол доступу до ресурсу ( шляху ) або програми ( запиту ) на сервері ( авторитеті ).
Усі URL-адреси - URI-адреси, а всі URN-адреси - URI-адреси, але всі URI-адреси не є URL-адресами.
Будь ласка, зверніться до деталей:
URI ідентифікує ресурс або за місцем розташування, або за назвою, або з обох. Найчастіше більшість із нас використовує URI, які визначають місцеположення до ресурсу. Те, що URI може ідентифікувати ресурси за назвою та місцеположенням, на мою думку, призвело до великої плутанини. URI має дві спеціалізації, відомі як URL та URN.
URL - це спеціалізація URI, яка визначає мережеве розташування конкретного ресурсу. На відміну від URN, URL визначає, як можна отримати ресурс. Ми використовуємо URL-адреси щодня у формі http://stackoverflow.com тощо. Але URL-адреса не повинна бути URL-адресою HTTP, вона може бути ftp://example.com
тощо.
Хоча терміни URI та URL строго визначені, багато хто використовує терміни для інших речей, ніж вони визначені.
Візьмемо для прикладу Apache. Якщо http://example.com/foo запитується з сервера Apache, ви встановите такі змінні середовища:
REDIRECT_URL
: /foo
REQUEST_URI
: /foo
Якщо увімкнено mod_rewrite, у вас також будуть такі змінні:
REDIRECT_SCRIPT_URL
: /foo
REDIRECT_SCRIPT_URI
: http://example.com/foo
SCRIPT_URL
: /foo
SCRIPT_URI
: http://example.com/foo
Це може бути причиною певної плутанини.
Дивіться цей документ . Зокрема,
URL-адреса - це тип URI, який ідентифікує ресурс за допомогою представлення його основного механізму доступу (наприклад, його "розташування" в мережі), а не за допомогою інших атрибутів, які він може мати.
Це не дуже чіткий термін, насправді.
Прочитавши публікації, я знаходжу кілька дуже релевантних коментарів. Коротше кажучи, плутанина між визначеннями URL та URI базується частково на тому, яке визначення залежить від того, яке, а також неформальне використання слова URI в розробці програмного забезпечення.
За визначенням URL - це підмножина URI [RFC2396]. URI містять URN та URL. І URI, і URL мають свій специфічний синтаксис, який надає їм статус URI або URL. URN - це унікальна ідентифікація ресурсу, а URL - для пошуку ресурсу. Зауважте, що ресурс може мати більше однієї URL-адреси, але лише одну URN. [RFC2611]
Як веб-розробники та програмісти ми майже завжди будемо перейматися URL-адресою, а отже, URI. Тепер URL-адреса спеціально визначена, щоб мати всі схеми деталей: конкретна схема-частина, як, наприклад, https://stackoverflow.com/questions . Це URL-адреса, це також URI. Тепер розглянемо відносне посилання, вбудоване в сторінку, наприклад ../index.html. Це вже не URL-адреса за визначенням. Це все ще називається "URI-посиланням" [RFC2396].
Я вважаю, що коли слово URI використовується для позначення відносних шляхів, "URI-посилання" - це насправді те, про що думають. Тому неофіційно програмні системи використовують URI для позначення відносного шляху та URL-адреси для абсолютної адреси. Тож у цьому сенсі відносний шлях - це вже не URL, а все-таки URI.
Ось моє спрощення:
URN: унікальна назва ресурсу, тобто "що" (наприклад, urn: issn: 1234-5678). Це покликане бути унікальним. Оскільки у двох різних документах не може бути однакова урна. Трохи схожий на "uuid"
URL: "де", щоб знайти його (наприклад, https://google.com/pub?issnid=1234-5678 .. або ftp://somesite.com/doc8.pdf )
URI: може бути URN або URL. Це нечітке визначення - завдяки RFC 3986 виробництва W3C та IETF.
Визначення URI змінювалося з роками, тому для більшості людей є сенс плутати. Однак тепер ви можете потішитись тим, що ви можете посилатися на http://somesite.com/something як на URL-адресу чи на URI ... і ви будете мати рацію в будь-якому випадку (принаймні, для того, щоб у будь-якому випадку .. .)
Мені було цікаво те саме, і я знайшов це: http://docs.kohanaphp.com/helpers/url .
Ви можете побачити чіткий приклад за допомогою url::current()
методу. Якщо у вас є ця URL-адреса : http://example.com/kohana/index.php/welcome/home.html?query=string
то використання url:current()
дає вам URI, який, згідно з документацією, є: вітаю / додому
URI виникли через необхідність ідентифікувати ресурси в Інтернеті та інших ресурсах Інтернету, таких як електронні поштові скриньки, рівномірно та узгоджено. Таким чином, можна ввести новий тип віджета: URI для виявлення ресурсів віджетів або використовувати tel: URI для веб-посилань, викликаючи телефонні дзвінки, коли вони викликаються.
Деякі URI надають інформацію для пошуку ресурсу (наприклад, ім'я хоста DNS та шлях на цій машині), а деякі використовують як чисті імена ресурсів. URL зарезервований для ідентифікаторів , які є локатори ресурсів , в тому числі «HTTP» URL , такі як http://stackoverflow.com , який ідентифікує веб - сторінку , на даному шляху на хості. Інший приклад - URL-адреси 'mailto', такі як mailto: fred@mail.org , який ідентифікує поштову скриньку за вказаною адресою.
URN - це URI, які використовуються як чисті назви ресурсів, а не як локатори. Наприклад, URI: mid: 0E4FC272-5C02-11D9-B115-000A95B55BC8@stackoverflow.com - це URN, який ідентифікує повідомлення електронної пошти, що містить його в полі "Message-Id". URI служить для того, щоб відрізняти це повідомлення від будь-якого іншого повідомлення електронної пошти. Але він сам не надає адресу повідомлення в будь-якому магазині.
Щоб відповісти на це, я сперся на відповідь, яку я змінив на інше запитання . Хороший приклад URI - це те, як ви ідентифікуєте ресурс Amazon S3. Давай візьмемо:
s3://www-example-com/index.html
[рис. 1]
яку я створив у кешованій копії
http://www.example.com/index.html
[рис. 2]
в Amazon S3-US-West-2 центрі обробки даних .
Навіть якщо StackOverflow дозволить мені гіперпосилання на схему s3://
протоколів , це не допоможе вам знайти ресурс. Тому що Визначає на ресурс , рис. 1 - дійсний URI. Він також є дійсним URN, оскільки Amazon вимагає, щоб відро (їх термін для authority
частини URI) було унікальним у центрах обробки даних. Це корисно для його розміщення, але він не вказує центр обробки даних. Тому це не працює як URL.
Отже, чим відрізняються URI, URL та URN в цьому випадку?
ПРИМІТКА: RFC 3986 визначає URI якscheme://authority/path?query#fragment
Легко пояснити:
Припустимо наступне
URI - ваше ім’я
URL - це ваша адреса з вашим іменем, щоб спілкуватися з вами.
мене звати Лойола
Лойола - це URI
моя адреса - TN, Chennai 600001.
TN, Chennai 600 001, Loyola - це URL
Сподіваюся, ви зрозуміли,
Тепер давайте подивимося точний приклад
http://www.google.com/fistpage.html
у наведеному вище ви можете спілкуватися зі сторінкою, що називається firstpage.html ( URI ), використовуючи наступну http://www.google.com/fistpage.html ( URL ).
Отже, URI є підмножиною URL, але не навпаки.
Уніфікований ідентифікатор ресурсу (URI) - це рядок символів, який ідентифікує Інтернет-ресурс.
Найпоширеніший URI - це Уніфікований локатор ресурсів (URL), який ідентифікує адресу домену в Інтернеті. Іншим, не таким поширеним типом URI, є Універсальна назва ресурсу (URN).
Я знайшов:
Уніфікований ідентифікатор ресурсу (URI) являє собою щось велике зображення. Ви можете розділити URI / URI, можна класифікувати як локатори (уніфіковані локатори ресурсів - URL), або як імена (однакова назва ресурсу-URN), або як обидва. Таким чином, URN функціонує як ім’я людини та URL-адреса, яка зображує адресу цієї людини. Якщо коротко розповісти, URN визначає ідентичність елемента, тоді як URL-адреса визначає спосіб його пошуку, нарешті, інкапсуляція цих двох понять - це URI
Найкращий (технічний) підсумок imo - це цей
IRI, URI, URL, URN та їх відмінності від Яна Мартіна Кіля:
Усі, хто має стосунки до семантичної мережі, неодноразово стикаються з термінами IRI , URI , URL та URN . Тим не менш, я часто зауважую, що існує певна плутанина щодо їх точного значення. І, звичайно, інші помітили це також (див., Наприклад, RFC3305 або пошук в Google). Якщо чесно, я навіть спочатку збентежився. Але насправді питання не таке складне. Давайте подивимося на визначення згаданих термінів, щоб побачити, які відмінності:
Уніфікований ідентифікатор ресурсу являє собою компактну послідовність символів , яка визначає абстрактний або фізичний ресурс. Набір символів обмежено US-ASCII, виключаючи деякі зарезервовані символи. Символи поза набором дозволених символів можуть бути представлені за допомогою Percent-Encoding. URI може використовуватися в якості локатора, імені або обох. Якщо URI є локатором, він описує первинний механізм доступу до ресурсу. Якщо URI - це ім'я, він ідентифікує ресурс, даючи йому унікальне ім'я. Точні характеристики синтаксису та семантики URI залежать від використовуваної схеми, визначеної символами перед першою двокрапкою. [RFC3986]
Рівномірний Ім'я ресурсу є URI , в схемі урни призначені для використання в якості постійного, незалежні від розташування, ідентифікатор ресурсу. Історично цей термін також стосувався будь-якого URI. [RFC3986] URN складається з ідентифікатора простору імен (NID) та конкретного рядка простору імен (NSS): urn :: Синтаксис та семантика NSS є специфічними для кожного NID. Поряд із зареєстрованими NID, існує ще кілька NID, які не пройшли офіційний процес реєстрації. [RFC2141]
Уніфікований покажчик інформаційного ресурсу є URI , який, на додаток до ідентифікації ресурсу, забезпечує засіб визначення місця розташування ресурсу шляхом опису основного механізму доступу [RFC3986]. Оскільки немає точного визначення URL за допомогою набору схем, "URL - корисна, але неформальна концепція", яка зазвичай посилається на підмножину URI, які не містять URN [RFC3305].
Інтернаціоналізований ідентифікатор ресурсу визначається аналогічно з URI, але набір символів поширюється на Character Set Універсальний кодований. Тому він може містити будь-які латинські та не латинські символи, крім зарезервованих символів. Замість розширення визначення URI термін IRI був введений для чіткого розмежування та уникнення несумісності. IRI призначені для заміни URI для виявлення ресурсів у ситуаціях, коли підтримується універсальний кодований набір символів. За визначенням, кожен URI - це IRI. Крім того, існує визначене сюрєктивне відображення IRI на URI: Кожен IRI може бути відображений точно в один URI, але різні IRI можуть відображатися в одному URI. Отже, перетворення назад з URI в IRI може не спричинити початковий IRI. [RFC3987]
IRI is a superset of URI (IRI ⊃ URI)
URI is a superset of URL (URI ⊃ URL)
URI is a superset of URN (URI ⊃ URN)
URL and URN are disjoint (URL ∩ URN = ∅)
RDF явно дозволяє використовувати IRI для іменування об'єктів [RFC3987]. Це означає, що ми можемо використовувати майже кожен символ у назвах юридичних осіб. З іншого боку, нам часто доводиться мати справу з раннім державним програмним забезпеченням. Таким чином, навряд чи виникнуть проблеми із використанням символів, що не належать до ASCII. Тому я пропоную уникати імен, що не мають URI, для юридичних осіб і рекомендую використовувати http URI [LINKED-DATA]. Якщо коротко сказати: використовуйте лише URL-адреси, щоб називати свої організації. Звичайно, ми можемо посилатися на існуючі сутності, названі URN. Однак нам слід уникати новостворених ідентифікаторів такого типу.