В чем разница между 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
источник
Спасибо за ответ. Я отредактировал свой вопрос. можешь посмотреть еще раз?
отменено
Я не понимаю эту цитату об описании приложений, и я не вижу комментарий, где кто-то указывает на это. Я обновлю свой ответ, чтобы описать отдельные части.
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.

Kris
источник