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


44

Я прочитал эти страницы:

Я знаю основы URL, URN и URI; но мало по своим различиям . Вещь, которую я не могу понять, находится на странице типа: http://www.bernzilla.com/item.php?id=100какая часть является URL, URN и URI!
URI это целая часть, но URL и URN ??

Картинка из википедии

Редактировать:
с w3c.org:

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

с www.damnhandy.com :

Теперь считается неправильным использовать URL при описании приложений.

Теперь idэто атрибут? Как насчет части приложения? Является ли PHP приложением?


3
Этот вопрос несколько раз задавался по поводу переполнения стека и привлек много внимания и положительных ответов: в чем разница между URI и URL?
hippietrail

Ответы:


42

URI / URL Диаграмма Венна

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

Содержит информацию о том, как извлечь ресурс из его местоположения. Например:

  • 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: Например:

  • urn:isbn:0451450523 идентифицировать книгу по номеру ISBN.
  • urn:uuid:6e8bc430-9c3a-11d9-9669-0800200c9a66 глобально уникальный идентификатор
  • urn:publishing:book - Пространство имен XML, которое идентифицирует документ как тип книги.

URN могут идентифицировать идеи и концепции. Они не ограничиваются идентификацией документов. Когда URN действительно представляет документ, он может быть преобразован в URL «распознавателем». Затем документ можно загрузить с URL-адреса.

URI - унифицированный идентификатор ресурса

URI включают URL-адреса, URN и другие способы идентификации ресурса.

Примером URI, который не является ни URL, ни URN, может быть URI данных, например data:,Hello%20World. Это не URL или URN, потому что URI содержит данные. Он не называет его и не указывает, как найти его по сети.

Существуют также унифицированные ссылки на ресурсы (URC), которые указывают на метаданные о документе, а не на сам документ. Примером УРК будет идентификатор для просмотра исходного кода веб - страницы: view-source:http://example.com/. URC - это другой тип URI, который не является ни URL, ни URN.

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

Я слышал, что не должен больше говорить URL, почему?

В спецификации W3 для HTML говорится, что hrefтег привязки может содержать URI, а не только URL. Вы должны быть в состоянии положить в URN, таких как <a href="urn:isbn:0451450523">. Ваш браузер затем разрешит этот URN в URL и загрузит книгу для вас.

Знают ли какие-либо браузеры, как получать документы по URN?

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

Различие между URL и URI имеет какое-либо отношение к тому, является ли оно относительным или абсолютным?

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

Разница между URL и URI имеет какое-либо отношение к тому, имеет ли он параметры запроса?

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

Разница между URL и URI имеет какое-либо отношение к тому, имеет ли он идентификатор фрагмента?

Нет. Оба URL с идентификаторами фрагментов и без них являются URL (и URI).

Но разве W3C теперь не говорит, что URL и URI - это одно и то же?

Да. W3C осознал, что в этом есть куча путаницы. Они выпустили разъясняющий документ URI, в котором говорится, что теперь можно использовать термины URL и URI взаимозаменяемо (чтобы обозначать URI). Больше не нужно строго сегментировать URI на разные типы, такие как URL, URN и URC.

Может ли URI быть как URL, так и URN?

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


Что меня смущает в разъяснениях W3C и различении URL / URI, так это то, что на самом деле многие документы веб-сервера описывают URL как целую строку запроса, а URI - как «часть, следующую за протоколом». Он даже ссылается на эту часть по имени переменной $ uri. Например: nginx.com/blog/creating-nginx-rewrite-rules Это не совсем "правильно" по определениям W3C, кажется? Но это самое полезное, я думаю.
Майк

1
URI были широко неправильно поняты. Многие думали, что URI - это часть URL-адреса, похожая на относительный URL-адрес или соответствующая протоколу. Это никогда не было правильно, но эти идеи довольно часто включались в документацию сервера или в API программирования.
Стивен Остермиллер

10

Я думаю, что эти статьи объясняют довольно хорошо. Чтобы ответить на ваш вопрос - все это URL:

http://www.bernzilla.com/item.php?id=100

Каждый бит этого http: www.bernzilla.comи так далее имеет свое собственное имя:

  • http: это схема
  • www это поддомен
  • bernzilla.com является доменом
  • com - домен верхнего уровня или TLD
  • (там может быть папка или путь, например /dir/item.php, но ее нет)
  • item.php - это страница или имя файла с расширением php
  • id = 100 - строка запроса

Я могу видеть, учитывая эту диаграмму из Википедии, почему вы спрашиваете, хотя. На этой диаграмме говорится, что есть два типа URI - URL и URN, и нечеткий бит в середине - это когда что-то может быть и то, и другое.


Спасибо за ответ. Я отредактировал свой вопрос. можешь посмотреть еще раз?
отменено

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

@ paul, ты не имеешь ввиду URI в первой строке? id=100это не место , это индикатор.
Рассерженный Стрелок

Я думаю, что имел в виду URL. На некоторых сайтах, если вы меняете идентификатор, вы получаете разные «страницы» в обычном режиме. Читая определение ресурса в Википедии, я думаю, что страница является примером ресурса.
paulmorriss

7

Это не тот случай, когда упомянутый вами URL состоит как из части URL, так и из части URN.

http://www.bernzilla.com/item.php?id=100 это и URL, и URI.

В основном URI представляют собой расширенный набор URL-адресов и URN. Также есть некоторое совпадение между URL и URN.

URI идентифицирует ресурс либо по местоположению, либо по имени, либо по обоим.

Таким образом, любой URL является URI, любой URN является URI, но не каждый URI является URL.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.