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

добавив мой ответ тоже, кто-то может найти его полезным или может быть правильным тоже.

function getInteger(int){
  var regx = /^[-+]?[\d.]+$/g;
  return regx.test(int);
}


alert(getInteger('-11.11'));
4161
задан Peter Mortensen 9 July 2016 в 17:40
поделиться

14 ответов

От RFC 3986 :

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

, Таким образом, все URL являются URIs (на самом деле не совсем - видят ниже), и все УРНЫ являются URIs - но УРНЫ и URL отличаются, таким образом, Вы не можете сказать, что всеми URIs являются URL.

РЕДАКТИРОВАНИЕ: Я ранее думал, что все URL являются допустимым URIs, но согласно комментариям:

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

Так, чтобы пачкал воды далее, к сожалению.

, Если бы Вы уже не читали ответ Roger Pate , я советовал бы делать так также.

1680
ответ дан pah8J 9 July 2016 в 17:40
поделиться

Википедия даст всю информацию, в которой Вы нуждаетесь здесь. Заключение в кавычки от http://en.wikipedia.org/wiki/URI :

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

16
ответ дан Amal Murali 9 July 2016 в 17:40
поделиться
  • 1
    Это - хорошая идея/обходное решение, чтобы разделить его и предварительно перекомпилировать его как пользовательский элемент управления вне проекта. – Aristos 7 March 2013 в 12:30

URI является видом суперкласса URL и УРНЫ. Википедия имеет прекрасная статья о них со ссылками на правильный набор RFCs.

20
ответ дан André 9 July 2016 в 17:40
поделиться
  • 1
    мои извинения, я просто понимаю, что Вы - часть команды asp.net. Еще раз спасибо за ответ. Я имею, перемещают файлы в различные каталоги и так или иначе, они смешиваются снова с пакетом..., но нет циклической ссылки, они просто связывают компиляцию, и когда я пытаюсь загрузиться, это один является бросок та ошибка. – Aristos 7 March 2013 в 17:29

URI => http://en.wikipedia.org/wiki/Uniform_Resource_Identifier

URL является подмножеством URI (которые также содержат УРНЫ).

В основном, URI является общим идентификатором, где URL определяет местоположение, и УРНА определяет имя.

42
ответ дан Craig Wilson 9 July 2016 в 17:40
поделиться
  • 1
    этот doesn' t работают при использовании рекомендуемого способа использовать маркировку/вход (не вложение их) – ashwoods 11 July 2013 в 12:31

Они - то же самое . URI является обобщением URL. Первоначально, URIs были запланированы, чтобы быть разделенными на URL (адреса) и УРНЫ (имена), но тогда было мало различия между URL и URI, и http URIs использовались в качестве пространств имен даже при том, что они на самом деле не определяли местоположение никаких ресурсов.

26
ответ дан Mark Cidade 9 July 2016 в 17:40
поделиться
  • 1
    Это - твердое требование и вызывает конкретное проектное решение. Рассмотрите выяснение почтового адреса. Мы требуем строки адреса 1, город, состояние, zip. Вы переместили бы строку адреса 2 из потока, потому что это является дополнительным? Люди знакомы со структурой почтового адреса и хотели бы структурированный стандартным способом. – Ted Bergeron 3 April 2014 в 19:32

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

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

.
13
ответ дан 16 December 2019 в 20:43
поделиться

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

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

  • 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

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

.
11
ответ дан 16 December 2019 в 20:43
поделиться

Это очень хорошо написанные, но долгожданные ответы. Вот в чем разница в отношении CodeIgniter:

URL - http://example.com/some/page.html

URI - /some/page.html

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

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

Во всех случаях, когда CodeIgniter использует слово URL или URI, это различие, о котором они говорят, хотя в грандиозной схеме web оно не на 100% верно.

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

URI - это ресурс текущего домена, поэтому он нуждается в меньшем количестве информации.

138
ответ дан 16 December 2019 в 20:43
поделиться

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

<rootElement xmlns:myPrefix="com.mycompany.mynode">
    <myPrefix:aNode>some text</myPrefix:aNode>
</rootElement>

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

.
35
ответ дан 16 December 2019 в 20:43
поделиться

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

.
28
ответ дан 16 December 2019 в 20:43
поделиться

Резюмируя: URI идентифицирует, URL идентифицирует и находит.

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

Вы можете идентифицировать текст как urn:isbn:0-486-27557-4.
Это был бы URI, а точнее URN*, потому что в нем назван текст .

Вы также можете идентифицировать текст как file://hostname/sharename/RomeoAndJuliet.pdf.
Это также был бы URI, а точнее URL, потому что он находит текст .

*Единородное имя ресурса

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

250
ответ дан 16 December 2019 в 20:43
поделиться

Как указано в документации Java, для фактического закрытия окна прослушиватель должен вызвать метод dispose окна или setVisible (false).

-121--4180528-

Ваше описание устройства немного светло, чтобы дать рекомендацию. Так что я предложу вам свой опыт различий между вариантами ОС, которые вы перечислили.

Windows CE Несмотря на то, что он предлагает «ограниченную» версию Win32 API и работает под управлением Compact Framework версии .Net, он является достаточно полной средой разработки. Если вы начинаете разработку, нацеленную на платформу, вам не стоит сталкиваться со многими проблемами. Лицензирование очень разумно (около $10/копия). Он доступен для нескольких различных процессоров.

Windows XPe Обещание Windows XPe состоит в том, что вы получите полную Windows в меньшем пакете. Хитрость в том, что меньший пакет включает в себя оставление части Windows позади. Многие люди находят, что они в конечном итоге, по существу, все XP для того, чтобы поддержать части XP, которые они хотят использовать. Windows XPe работает только на процессорах x86. Лицензирование похоже на настольную Windows (около $100). На стороне «плюс» на нем должны работать настольные приложения без изменений.

Следует отметить, что ни одна из них не является обычной Windows, и, несмотря на то, что Microsofts marketing champaign's, вы должны быть готовы потратить некоторое время, чтобы узнать о выбранной вами ОС. Лучше загляните в консалтинговую компанию в вашем регионе, которая сможет провести вас через первое развертывание.

Наконец, комментарий к Linux. Мы также рассмотрели Linux. В итоге мы выбрали Windows Embedded CE, но он был близок. У нас было несколько человек в штате, которые уже были знакомы с Linux (в то время как другие уже были знакомы с CE). Изначально у нас была лучшая производительность с Linux, хотя мы смогли получить сравнимую производительность от Windows Embedded CE. Наш продукт отгружает сейчас и работает очень хорошо.

Pat O

-121--4649265-

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

Примеры

  • Роджер Пейт

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

  • 4914 West Bay Street, Nassau, Bahamas

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

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

Распространенная путаница

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

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

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

URN

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

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

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

3783
ответ дан 16 December 2019 в 20:43
поделиться

См.

В этом документе этот документ . В частности,

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

Это не чрезвычайно понятный термин, правда.

10
ответ дан 16 December 2019 в 20:43
поделиться

Мне было интересно примерно то же самое, и я нашел это: http://docs.kohanaphp.com/helpers/url .

Вы можете увидеть наглядный пример, используя метод url :: current () . Если у вас есть этот URL : http: // example .com / kohana / index.php / добро пожаловать / домой.html? query = string , затем использование url: current () дает вам URI , который, согласно документации, выглядит следующим образом: welcome / home

9
ответ дан 16 December 2019 в 20:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: