В чем разница между URI, URL и URN?

Люди говорят о URL, URI и URN, как будто это разные вещи, но невооруженным глазом они выглядят одинаково.

Каковы различия между ними?

Комментарии к вопросу (12)

URIидентифицируют и URLопределяют местонахождение; однако локаторы также являются идентификаторами, поэтому каждый URL также является URI, но есть URI, которые не являются URL.

Примеры

  • Роджер Пэйт

Это мое имя, которое является идентификатором. Оно похоже на URI, но не может быть URL, поскольку ничего не говорит о моем местонахождении или о том, как со мной связаться. В данном случае оно также идентифицирует по меньшей мере 5 других людей только в США.

  • 4914 Вест Бэй Стрит, Нассау, Багамы

Это локатор, который является идентификатором физического местоположения. Он похож и на URL, и на URI (поскольку все URL являются URI), а также идентифицирует меня косвенно как "жителя...". В данном случае он однозначно идентифицирует меня, но это изменится, если я заведу соседа по комнате.

Я говорю "как", потому что эти примеры не соответствуют требуемому синтаксису.

Популярная путаница

Из Википедии:

В вычислительной технике унифицированный указатель ресурса (URL) - это подмножество унифицированного идентификатора ресурса (URI), который определяет, где доступен идентифицированный ресурс и механизм его получения. В популярном употреблении и во многих технических документах и устных обсуждениях он часто ошибочно используется как синоним URI, ... [выделение мое].

Из-за этой общей путаницы многие продукты и документация неправильно используют один термин вместо другого, назначают собственное различие или используют их как синонимы.

URNs

Мое имя, Роджер Пейт, можно уподобить URN (Uniform Resource Name), за исключением того, что эти имена гораздо более регламентированы и предназначены для того, чтобы быть уникальными как в пространстве, так и во времени.

Поскольку в настоящее время я использую это имя вместе с другими людьми, оно не является глобально уникальным и не подходит в качестве URN. Однако, даже если бы ни одна семья не использовала это имя, я назван в честь своего деда по отцовской линии, так что оно все равно не было бы уникальным во времени. И даже если бы это было не так, возможность назвать моих потомков в честь меня делает это имя неподходящим в качестве URN.

URN отличаются от URL этим жестким ограничением уникальности, хотя оба они имеют синтаксис URI.

Комментарии (15)
Решение

Из RFC 3986:

URI может быть классифицирован как локатор, имя или и то, и другое. На сайте термин "Унифицированный локатор ресурса" (URL) относится к подмножеству URI. которые, в дополнение к идентификации ресурса, предоставляют возможность определения местоположения ресурса путем описания его основного механизма доступа (например, его сетевое "местоположение"). Термин "Единое имя ресурса" (URN) исторически использовался для обозначения обоих URI под кодом "urn" схеме [RFC2141], которые должны оставаться глобально уникальными и постоянными, даже когда ресурс перестает существовать или становится и к любому другому URI со свойствами имени.

Таким образом, все URL являются URI (на самом деле не совсем - см. ниже), а все URN являются URI - но URN и URL различны, поэтому нельзя сказать, что все URI являются URL.

EDIT: Я раньше думал, что все URL являются действительными URI, но в соответствии с комментариями:

Не "все URL являются URI". Это зависит от интерпретации RFC. Например, в Java парсер URI не любит [ или ], и это потому, что в спецификации сказано "не следует", а не "не должно".

Так что это еще больше мутит воду, к сожалению.

Если вы еще не прочитали ответ Роджера Пейта, я бы тоже посоветовал это сделать.

Комментарии (20)

Урия, универсальный идентификатор ресурса

URI являются стандартом для выявления документов, используя короткий набор цифр, букв и символов. Они определяются в RFC 3986 - универсальный идентификатор ресурса (URI): общий синтаксис. URL-адреса, урны, и общества все виды Ури.

URL-адрес -- унифицированный указатель ресурса

Содержит информацию о способах получения ресурса от его местоположения. Например:

  • http://example.com/mypage.html
  • ftp://example.com/download.zip
  • mailto:user@example.com
  • file:///home/user/file.txt
  • тел:1-888-555-5555
  • http://example.com/resource?foo=bar#fragment
  • /other/link.html (относительный url, только в контексте другой URL)

URL-адреса всегда начинаются с указания протокола (НТТР) и обычно содержат информацию, такую как имя узла сети (example.com) и часто документ путь (/foo/mypage.html). URL-адреса могут иметь параметры запроса и идентификатор фрагмента.

Урна -- унифицированное имя ресурса

Идентифицирует ресурс с уникальным и постоянным именем, но не'т должен сказать вам, как найти его в интернете. Она обычно начинается с урны префикс: например:

  • `урна:номер ISBN:0451450523 найти книгу по номеру ISBN.
  • урны:по UUID:6e8bc430-9c3a-11d9-9669-0800200c9a66 глобальный уникальный идентификатор
  • урна:издание:Книга - пространства имен XML, которое определяет документ как тип книги.

Урны могут определить идеи и концепции. Они не ограничены в определении документы. Когда урна представляет собой документ, он может быть переведен в ссылку на "арбитр" по. Документ может быть загружен с URL-адрес.

УРК -- единый ресурс цитирования

Указывает на мета-данные о документе, а не сам документ. Пример УРК является тот, который указывает на страницы, такие как вид-Источник:http://пример исходного кода HTML.ком/

URI данных

Лучше размещать его в интернете, или назвав его данные могут быть размещены непосредственно в URI. Пример данных: Привет%20World`.


Часто Задаваемые Вопросы

Я'вэ узнал, что я должен'т сказать, что URL-адрес больше, почему?

На В3 спецификации для HTML говорит о том, что Солар тега привязки могут содержать URI, а не просто url. Вы должны быть в состоянии положить в урну, такой как в <а href="в урне:номер ISBN:0451450523" и>. Тогда ваш браузер будет решать, что урны на URL-адрес и скачать книги для вас.

Делать любые браузеры, которые на самом деле знают, как принести документы на урну?

Нет, я не знаю, но современный веб-браузер реализовать схему URI данных.

Ли разница между URL и URI имеет ничего общего с ли она относительной или абсолютной?

Нет. Как относительные и абсолютные URL-адреса URL-адресов (и URI.)

Ли разница между URL и URI имеет ничего общего с Ли параметры запроса?

Нет. Оба URL-адреса без параметров запроса URL-адреса (и URI.)

Ли разница между URL и URI иметь ничего общего с его идентификатором фрагмента?

Нет. Оба URL-адреса с и без фрагмент идентификаторы URL-адреса (и URI.)

Ли разница между URL и URI имеют ничего общего с какие символы разрешены?

Нет. URL-адреса являются определенными, чтобы быть строгим подмножеством ресурсов. Если парсер позволяет персонажу в URL, но не в URI, есть ошибка в парсере. В технические характеристики вдаваться в подробности о том, какие символы разрешены в URL и URI-адреса. Некоторые символы могут быть разрешены только в некоторых частях URL-адрес, но только герои не разница между URL и URI-адреса.

Но не'т консорциума W3C сейчас сказать, что URL и URI-одно и то же?

Да. Консорциум W3C понял, что есть куча путаницы по этому поводу. Они выпустили Ури разъяснений документ, который говорит, что это нормально использовать термины по URL и URI попеременно (для виду Ури). Это уже не полезно строго сегмент URI в различных типов, таких как URL, урны, и УРК.

Может быть как Ури URL и урны?

Определение урну сейчас слабее, чем то, что я заявил выше. В последний RFC на Урис говорит, что любой Ури теперь можно в урны (независимо от того, начинается с урны:) так долго, как это "в свойствах имя.quot;, что: он является уникальным в мировом масштабе и настойчивым даже когда ресурс перестает существовать или становится недоступным. Пример: URI, используемые в HTML DOCTYPE-декларации, таких как http://www.w3.org/TR/html4/strict.dtd. Этот URI будет продолжать имя HTML4 переходный период установлен, даже если страница на сайте w3.org были исключены.


Комментарии (7)

В резюме: идентифицируемый URI, URL-адрес идентифицирует и находит.

Рассмотрим конкретный издание Шекспира'ы играть в Ромео и Джульетту, из которых у вас есть цифровая копия вашей домашней сети.

Вы могли бы идентифицировать текст как урна:номер ISBN:0-486-27557-4`. Что бы быть URI, но более конкретно урна* потому что это имена текст.

Вы также можете определить текст как файл://имя_хоста/ресурс/сайт romeoandjuliet.в формате PDF. Что бы также быть URI, но более конкретно адрес, поскольку он находит в тексте.

*Унифицированное Имя Ресурса

(Обратите внимание, что мой пример адаптирован из Википедии)

Комментарии (4)

Таковы некоторые очень хорошо написаны, но многословные ответы. Вот вам и разница что касается Codeigniter является:

Ссылки - http://example.com/some/page.html

Ури - /some/page.html

Проще говоря, URL-это полный способ идентифицировать любой ресурс в любом месте и могут иметь разные протоколы, такие как FTP, HTTP и УПП, и т. д.

Ури-это ресурс на текущем домене, поэтому он должен меньше информации можно найти.

В каждом случае, что у Codeigniter использует слово URL или URI, в этом и заключается разница, о которых они говорят, хотя в большом-схема из интернета, это не 100% правильно.

Комментарии (12)

В первую очередь у тебя в голове разброд и принять его простым и вы поймете.

Ури => универсальный идентификатор ресурса Определяет полный адрес ресурса я-е место, имя или обоих.

URL-адрес => унифицированный указатель ресурса Определяет местоположение ресурса.

Урна => унифицированное имя ресурса Определяет имя ресурса

Пример

У нас есть адрес https://www.google.com/folder/page.html где,

URI(унифицированный идентификатор ресурса) => https://www.google.com/folder/page.html

Url(унифицированный указатель ресурса) => https://www.google.com/

Урна(унифицированное имя ресурса) => /folder/page.html

Ури => (URL-адрес + урна) или URL-адрес только или только в урну

Комментарии (0)

Небольшое дополнение к ответам уже выложили, здесь'ы Венна's и схема подводить теории (от Prateek Джоши'красивое платье пояснение):

И пример (также из Prateek'сайт s):

Комментарии (3)

Это одна из самых запутанных и, возможно, неактуальные темы Я'вэ перестал работать как веб-профессионал.

Как я понимаю, URI-это описание чего-либо, после принятого формата, которые можно определить как уникальное имя (идентификатор) что-то и его расположение.

Существует два основных подмножества - URL-адреса, которые определяют местоположение (особенно в браузер пытаясь найти веб-страницу) и урны, которые определяют уникальное имя чего-то.

Я склонен думать, урн, как будучи похож на идентификатор GUID. Они просто стандартной методологии для предоставления уникальных имен для вещей. Как в декларативной пространство имен, которое использует компания's имя - это's не нравится есть ресурс, сидя на каком-нибудь сервере, чтобы соответствовать строки текста - это просто однозначно что-то определяет.

Я также, как правило, полностью избежать термин URI и обсуждать такие вещи только с точки зрения URL-адрес или урны по мере необходимости, потому что это вызывает так много путаницы. Вопрос надо очень постараться, отвечая за людей, разве'т так много семантики, но как определить, когда сталкиваются с условиями, есть ли какой-либо практической разницы в них, которая изменит подход к ситуации программирования. Например, если кто-то поправляет меня в разговор и говорит: "О, это's не URL-адрес, он'ы Ури" Я знаю, что они'вновь полно. Если кто-то говорит "Мы're с помощью урна для определения ресурса" Я'м больше шансов понять, что мы только назвав его уникальным, не размещая его на сервере.

Если я'м не в том направлении - пожалуйста, дайте мне знать!

Комментарии (1)

идентификатор = имя + место

Каждый URL(уniform Рресурсы лОккатор) является URI(уniform Рресурсы яdentifier), абстрактно говоря, но каждый URI не является URL-адрес. Есть еще одна подкатегория Ури урну (уniform Рресурсы Наме), который является именем ресурса, но не указывают, как их найти, как отправить почту, новости, ISBN является Урис. Источник

Урна:

  • Формат урну : урны:[идентификатор пространства имен]:[определенном пространстве имен строки]
  • urn: и : постоять за себя.
  • Примеры:
  • урна:по UUID:6e8bc430-9c3a-11d9-9669-0800200c9a66
  • урна:индекс ISSN:0167-6423
  • урна:номер ISBN:096139210x
  • Имя ресурса Amazon (ВРНС) является уникальной идентификации ресурсов AWS.
  • Формат Арн : Арн:разделе:уборка:регион:счета-идентификатор:ресурс

Адрес:

  • Формат URL : [схемы]://[домен][порт]/[путь]?[строке]#[fragmentId]
  • :,//,? и # постоять за себя.
  • схемы по протоколу HTTPS,и FTP,суслик,электронной почты,новостей,телнет,файл,человек,информация,чтотакое,в LDAP...
  • Примеры:
  • http://ip_server/path?query
  • ftp://ip_server/path
  • mailto:email-address
  • новости:новостей-имя
  • через telnet://ip_server/
  • файл://ip_server/path_segments
  • в LDAP://значение по умолчанию-false/ду?атрибутами?области?фильтр?расширения

Аналогия: Чтобы достучаться до человека: за рулем(протокол чужие SMS, электронной почты, телефона), - адрес(имя хоста другой номер телефона, emailid) и наименование лица(наименование объекта с относительный путь).

Комментарии (1)

Ури => http://en.wikipedia.org/wiki/Uniform_Resource_Identifier

URL-адрес'ы являются подмножеством Ури'ы (которые также содержат урны).

В основном, URI-код-это основной идентификатор, где URL-адрес указывает расположение и урны имя.

Комментарии (2)

Другой пример, который я люблю использовать, когда думал об URI-это атрибут xmlns XML-документ:


    some text

В этом случае ком.название_компании.mynode бы быть URI, который уникально идентифицирует в "префикс" и пространство имен для всех элементов, которые используют его в мой XML-документа. Это не URL-адрес, поскольку он используется только для идентификации, чтобы не найти чего-то такового.

Комментарии (0)

Из-за трудности четкого разграничения между URI и URL-адрес, насколько я помню, W3C и не делает больше разница между URI и URL-адрес (http://www.w3.org/Addressing/).

Комментарии (1)

Это одно и то же. URI - это обобщение URL. Первоначально планировалось разделить URI на URL (адреса) и URN (имена), но затем разница между URL и URI стала незначительной, и http URI стали использоваться как пространства имен, хотя на самом деле они не определяли местоположение каких-либо ресурсов.

Комментарии (4)

на URI, URL-адрес, урны

Как на рисунке выше показывает, есть три отдельных компонента, в игре здесь. Это обычно лучше, чтобы пойти к источнику, когда обсуждаем такие вопросы, как эти, так вот выдержка из Тим Бернерс-Ли, Эт. Аль. в В RFC 3986: универсальный идентификатор ресурса (URI): общий синтаксис:

универсальный идентификатор ресурса (URI) представляет собой компактную последовательность символов, идентифицирующая абстрактный или физический ресурс.

URI может быть дополнительно классифицированы как локатор, имя, или оба. В термин “унифицированный указатель ресурса” (URL-адрес) относится к подмножеству Урис что, в дополнение к определению ресурса, предоставлять средства В поиске ресурсов посредством описания ее основной механизм доступа к (например, сеть “расположение”).

Комментарии (0)

Ури вроде супер класс url-адреса's и урны'ов. В Википедии есть в порядке статьи о них со ссылками на правильный набор документов RFC.

Комментарии (0)

Википедия даст всю необходимую информацию. Цитирую по http://en.wikipedia.org/wiki/URI:

URL - это URI, который, в дополнение к идентификации ресурса, предоставляет средства действия или получения представления ресурса, описывая его основной механизм доступа или сетевое "местоположение".

Комментарии (0)

Ссылки

URL-адрес является специализацией URI, который определяет местоположение сети конкретного ресурса. В отличие от урны, URL-адрес определяет, как ресурса может быть получено. Мы используем URL-адреса каждый день в форме http://example.com и т. д. Но URL-адрес не'т должны быть URL-адрес http, его можно ftp://example.com и т. д., тоже.

Ури

Идентифицируемый URI ресурса, либо по местоположению, или имя, или оба. Чаще всего большинство из нас используют URI, который определяет местоположения ресурса. Тот факт, что Ури можем определить ресурсы как имя и местоположение привести к много путаницы, на мой взгляд. URI имеет две специализации известный как URL и urn.

Разница между URL и URI

URI-это идентификатор какого-то ресурса, но URL-адрес дает вам конкретную информацию, как получить этот ресурс. URI-это URL-адрес и как один из комментаторов отметил, что в настоящее время считается неправильным использовать URL-адрес при описании приложений. Как правило, если URL-адрес, описание местоположения и название ресурса, срока использования Ури. Так как это обычно бывает, большинство из нас сталкиваются каждый день, URI является правильным термином.

Комментарии (0)

В стандарте RFC 3986]1, URI-адреса состоят из следующих частей:

scheme://authority/path?query

В URI описывает протокол для доступа к ресурсу (путь) или приложение (запрос) на сервере (авторитета).

Все URL-адреса URI, и все урны представляют собой URI, но все-URI не URL-адреса.

Пожалуйста, обратитесь для более подробной информации:

Комментарии (2)

Идентифицируемый URI ресурса, либо по местоположению, или имя, или оба. Чаще всего большинство из нас используют URI, который определяет местоположения ресурса. Тот факт, что Ури можем определить ресурсы как имя и местоположение привести к много путаницы, на мой взгляд. URI имеет две специализации известный как URL и urn.

URL-адрес является специализацией URI, который определяет местоположение сети конкретного ресурса. В отличие от урны, URL-адрес определяет, как ресурса может быть получено. Мы используем URL-адреса каждый день в виде https://stackoverflow.com и т. д. Но URL-адрес не должен быть URL-адрес http, его можно ftp://example.com и т. д.

Комментарии (0)

Хотя условия URI и URL-адреса являются строго определенными, многие используют эти термины для другой вещи, чем они определены.

Возьмем, например Apache. Если http://example.com/foo это просит от сервера Apache, вы будете иметь следующий набор переменных окружения:

  • REDIRECT_URL: /фу
  • REQUEST_URI: /фу

С mod_rewrite включен, вы также будете иметь эти переменные:

  • REDIRECT_SCRIPT_URL: /фу
  • REDIRECT_SCRIPT_URI: http://example.com/foo
  • SCRIPT_URL: /фу
  • SCRIPT_URI: http://example.com/foo

Это может быть причиной некоторых недоразумений.

Комментарии (0)