Чим відрізняється 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
Це запитання було задано у програмі Stack Overflow кілька разів та отримало багато уваги та хороших відповідей. Яка різниця між URI та URL?
hippietrail

Відповіді:


42

URI / Діаграма Венна

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 являє собою документ, його можна перекласти в 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це не місцезнаходження , це показник.
НезадоволенняGoat

Я думаю, я мав на увазі 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.