Люди говорят о URL, URI и URN, как будто это разные вещи, но невооруженным глазом они выглядят одинаково.
Каковы различия между ними?
URIидентифицируют и URLопределяют местонахождение; однако локаторы также являются идентификаторами, поэтому каждый URL также является URI, но есть URI, которые не являются URL.
Это мое имя, которое является идентификатором. Оно похоже на URI, но не может быть URL, поскольку ничего не говорит о моем местонахождении или о том, как со мной связаться. В данном случае оно также идентифицирует по меньшей мере 5 других людей только в США.
Это локатор, который является идентификатором физического местоположения. Он похож и на URL, и на URI (поскольку все URL являются URI), а также идентифицирует меня косвенно как "жителя...". В данном случае он однозначно идентифицирует меня, но это изменится, если я заведу соседа по комнате.
Я говорю "как", потому что эти примеры не соответствуют требуемому синтаксису.
Из Википедии:
В вычислительной технике унифицированный указатель ресурса (URL) - это подмножество унифицированного идентификатора ресурса (URI), который определяет, где доступен идентифицированный ресурс и механизм его получения. В популярном употреблении и во многих технических документах и устных обсуждениях он часто ошибочно используется как синоним URI, ... [выделение мое].
Из-за этой общей путаницы многие продукты и документация неправильно используют один термин вместо другого, назначают собственное различие или используют их как синонимы.
Мое имя, Роджер Пейт, можно уподобить URN (Uniform Resource Name), за исключением того, что эти имена гораздо более регламентированы и предназначены для того, чтобы быть уникальными как в пространстве, так и во времени.
Поскольку в настоящее время я использую это имя вместе с другими людьми, оно не является глобально уникальным и не подходит в качестве URN. Однако, даже если бы ни одна семья не использовала это имя, я назван в честь своего деда по отцовской линии, так что оно все равно не было бы уникальным во времени. И даже если бы это было не так, возможность назвать моих потомков в честь меня делает это имя неподходящим в качестве URN.
URN отличаются от URL этим жестким ограничением уникальности, хотя оба они имеют синтаксис URI.
Из 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 не любит
[
или]
, и это потому, что в спецификации сказано "не следует", а не "не должно".
Так что это еще больше мутит воду, к сожалению.
Если вы еще не прочитали ответ Роджера Пейта, я бы тоже посоветовал это сделать.
URI являются стандартом для выявления документов, используя короткий набор цифр, букв и символов. Они определяются в RFC 3986 - универсальный идентификатор ресурса (URI): общий синтаксис. URL-адреса, урны, и общества все виды Ури.
Содержит информацию о способах получения ресурса от его местоположения. Например:
http://example.com/mypage.html
ftp://example.com/download.zip
mailto:[email protected]
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-адреса могут иметь параметры запроса и идентификатор фрагмента.
Идентифицирует ресурс с уникальным и постоянным именем, но не'т должен сказать вам, как найти его в интернете. Она обычно начинается с урны префикс:
например:
урны:по UUID:6e8bc430-9c3a-11d9-9669-0800200c9a66
глобальный уникальный идентификаторурна:издание:Книга
- пространства имен XML, которое определяет документ как тип книги.Урны могут определить идеи и концепции. Они не ограничены в определении документы. Когда урна представляет собой документ, он может быть переведен в ссылку на "арбитр" по. Документ может быть загружен с URL-адрес.
Указывает на мета-данные о документе, а не сам документ. Пример УРК является тот, который указывает на страницы, такие как вид-Источник:http://пример исходного кода HTML.ком/
Лучше размещать его в интернете, или назвав его данные могут быть размещены непосредственно в URI. Пример данных: Привет%20World`.
На В3 спецификации для HTML говорит о том, что Солар
тега привязки могут содержать URI, а не просто url. Вы должны быть в состоянии положить в урну, такой как в <а href="в урне:номер ISBN:0451450523" и>
. Тогда ваш браузер будет решать, что урны на URL-адрес и скачать книги для вас.
Нет, я не знаю, но современный веб-браузер реализовать схему URI данных.
Нет. Как относительные и абсолютные URL-адреса URL-адресов (и URI.)
Нет. Оба URL-адреса без параметров запроса URL-адреса (и URI.)
Нет. Оба URL-адреса с и без фрагмент идентификаторы URL-адреса (и URI.)
Нет. URL-адреса являются определенными, чтобы быть строгим подмножеством ресурсов. Если парсер позволяет персонажу в URL, но не в URI, есть ошибка в парсере. В технические характеристики вдаваться в подробности о том, какие символы разрешены в URL и URI-адреса. Некоторые символы могут быть разрешены только в некоторых частях URL-адрес, но только герои не разница между URL и URI-адреса.
Да. Консорциум W3C понял, что есть куча путаницы по этому поводу. Они выпустили Ури разъяснений документ, который говорит, что это нормально использовать термины по URL и URI попеременно (для виду Ури). Это уже не полезно строго сегмент URI в различных типов, таких как URL, урны, и УРК.
Определение урну сейчас слабее, чем то, что я заявил выше. В последний RFC на Урис говорит, что любой Ури теперь можно в урны (независимо от того, начинается с урны:) так долго, как это "в свойствах имя.quot;, что: он является уникальным в мировом масштабе и настойчивым даже когда ресурс перестает существовать или становится недоступным. Пример: URI, используемые в HTML DOCTYPE-декларации, таких как http://www.w3.org/TR/html4/strict.dtd
. Этот URI будет продолжать имя HTML4 переходный период установлен, даже если страница на сайте w3.org были исключены.
В резюме: идентифицируемый URI, URL-адрес идентифицирует и находит.
Рассмотрим конкретный издание Шекспира'ы играть в Ромео и Джульетту, из которых у вас есть цифровая копия вашей домашней сети.
Вы могли бы идентифицировать текст как урна:номер ISBN:0-486-27557-4`. Что бы быть URI, но более конкретно урна* потому что это имена текст.
Вы также можете определить текст как файл://имя_хоста/ресурс/сайт romeoandjuliet.в формате PDF
.
Что бы также быть URI, но более конкретно адрес, поскольку он находит в тексте.
*Унифицированное Имя Ресурса
(Обратите внимание, что мой пример адаптирован из Википедии)
Таковы некоторые очень хорошо написаны, но многословные ответы. Вот вам и разница что касается Codeigniter является:
Ссылки - http://example.com/some/page.html
Ури - /some/page.html
Проще говоря, URL-это полный способ идентифицировать любой ресурс в любом месте и могут иметь разные протоколы, такие как FTP, HTTP и УПП, и т. д.
Ури-это ресурс на текущем домене, поэтому он должен меньше информации можно найти.
В каждом случае, что у Codeigniter использует слово URL или URI, в этом и заключается разница, о которых они говорят, хотя в большом-схема из интернета, это не 100% правильно.
В первую очередь у тебя в голове разброд и принять его простым и вы поймете.
Ури => универсальный идентификатор ресурса Определяет полный адрес ресурса я-е место, имя или обоих.
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-адрес только или только в урну
Небольшое дополнение к ответам уже выложили, здесь'ы Венна's и схема подводить теории (от Prateek Джоши'красивое платье пояснение):
И пример (также из Prateek'сайт s):
Это одна из самых запутанных и, возможно, неактуальные темы Я'вэ перестал работать как веб-профессионал.
Как я понимаю, URI-это описание чего-либо, после принятого формата, которые можно определить как уникальное имя (идентификатор) что-то и его расположение.
Существует два основных подмножества - URL-адреса, которые определяют местоположение (особенно в браузер пытаясь найти веб-страницу) и урны, которые определяют уникальное имя чего-то.
Я склонен думать, урн, как будучи похож на идентификатор GUID. Они просто стандартной методологии для предоставления уникальных имен для вещей. Как в декларативной пространство имен, которое использует компания's имя - это's не нравится есть ресурс, сидя на каком-нибудь сервере, чтобы соответствовать строки текста - это просто однозначно что-то определяет.
Я также, как правило, полностью избежать термин URI и обсуждать такие вещи только с точки зрения URL-адрес или урны по мере необходимости, потому что это вызывает так много путаницы. Вопрос надо очень постараться, отвечая за людей, разве'т так много семантики, но как определить, когда сталкиваются с условиями, есть ли какой-либо практической разницы в них, которая изменит подход к ситуации программирования. Например, если кто-то поправляет меня в разговор и говорит: "О, это's не URL-адрес, он'ы Ури" Я знаю, что они'вновь полно. Если кто-то говорит "Мы're с помощью урна для определения ресурса" Я'м больше шансов понять, что мы только назвав его уникальным, не размещая его на сервере.
Если я'м не в том направлении - пожалуйста, дайте мне знать!
идентификатор = имя + место
Каждый URL(уniform Рресурсы лОккатор) является URI(уniform Рресурсы яdentifier), абстрактно говоря, но каждый URI не является URL-адрес. Есть еще одна подкатегория Ури урну (уniform Рресурсы Наме), который является именем ресурса, но не указывают, как их найти, как отправить почту, новости, ISBN является Урис. Источник
Урна:
урны:[идентификатор пространства имен]:[определенном пространстве имен строки]
Арн:разделе:уборка:регион:счета-идентификатор:ресурс
Адрес:
[схемы]://[домен][порт]/[путь]?[строке]#[fragmentId]
Аналогия: Чтобы достучаться до человека: за рулем(протокол чужие SMS, электронной почты, телефона), - адрес(имя хоста другой номер телефона, emailid) и наименование лица(наименование объекта с относительный путь).
Ури => http://en.wikipedia.org/wiki/Uniform_Resource_Identifier
URL-адрес'ы являются подмножеством Ури'ы (которые также содержат урны).
В основном, URI-код-это основной идентификатор, где URL-адрес указывает расположение и урны имя.
Другой пример, который я люблю использовать, когда думал об URI-это атрибут xmlns XML-документ:
<rootElement xmlns:myPrefix="com.mycompany.mynode">
<myPrefix:aNode>some text</myPrefix:aNode>
</rootElement>
В этом случае ком.название_компании.mynode бы быть URI, который уникально идентифицирует в "префикс" и пространство имен для всех элементов, которые используют его в мой XML-документа. Это не URL-адрес, поскольку он используется только для идентификации, чтобы не найти чего-то такового.
Из-за трудности четкого разграничения между URI и URL-адрес, насколько я помню, W3C и не делает больше разница между URI и URL-адрес (http://www.w3.org/Addressing/).
Это одно и то же. URI - это обобщение URL. Первоначально планировалось разделить URI на URL (адреса) и URN (имена), но затем разница между URL и URI стала незначительной, и http URI стали использоваться как пространства имен, хотя на самом деле они не определяли местоположение каких-либо ресурсов.
на URI, URL-адрес, урны
Как на рисунке выше показывает, есть три отдельных компонента, в игре здесь. Это обычно лучше, чтобы пойти к источнику, когда обсуждаем такие вопросы, как эти, так вот выдержка из Тим Бернерс-Ли, Эт. Аль. в В RFC 3986: универсальный идентификатор ресурса (URI): общий синтаксис:
универсальный идентификатор ресурса (URI) представляет собой компактную последовательность символов, идентифицирующая абстрактный или физический ресурс.
URI может быть дополнительно классифицированы как локатор, имя, или оба. В термин “унифицированный указатель ресурса” (URL-адрес) относится к подмножеству Урис что, в дополнение к определению ресурса, предоставлять средства В поиске ресурсов посредством описания ее основной механизм доступа к (например, сеть “расположение”).
Ури вроде супер класс url-адреса's и урны'ов. В Википедии есть в порядке статьи о них со ссылками на правильный набор документов RFC.
Википедия даст всю необходимую информацию. Цитирую по http://en.wikipedia.org/wiki/URI:
URL - это URI, который, в дополнение к идентификации ресурса, предоставляет средства действия или получения представления ресурса, описывая его основной механизм доступа или сетевое "местоположение".
Ссылки
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 является правильным термином.
В стандарте RFC 3986]1, URI-адреса состоят из следующих частей:
scheme://authority/path?query
В URI описывает протокол для доступа к ресурсу (путь) или приложение (запрос) на сервере (авторитета).
Все URL-адреса URI, и все урны представляют собой URI, но все-URI не URL-адреса.
Пожалуйста, обратитесь для более подробной информации:
Идентифицируемый URI ресурса, либо по местоположению, или имя, или оба. Чаще всего большинство из нас используют URI, который определяет местоположения ресурса. Тот факт, что Ури можем определить ресурсы как имя и местоположение привести к много путаницы, на мой взгляд. URI имеет две специализации известный как URL и urn.
URL-адрес является специализацией URI, который определяет местоположение сети конкретного ресурса. В отличие от урны, URL-адрес определяет, как ресурса может быть получено. Мы используем URL-адреса каждый день в виде https://stackoverflow.com и т. д. Но URL-адрес не должен быть URL-адрес http, его можно ftp://example.com и т. д.
Хотя условия 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
Это может быть причиной некоторых недоразумений.