У чому різниця між URL та URI на практиці?

Автор: Опубліковано

Коротко: URI — це ідентифікатор ресурсу, а URL — такий ідентифікатор, який також указує спосіб доступу до ресурсу та його розташування. За класичним поділом кожен URL є URI, але не кожен URI є URL. Тож адресу вебсторінки можна правильно назвати як URL, так і URI — у повсякденній розмові термін «URL» зазвичай буде зрозумілішим.

Що означає URI?

URI — це скорочення від Uniform Resource Identifier, тобто уніфікований ідентифікатор ресурсу. Ресурсом може бути вебсторінка, фотографія, документ, елемент, доступний через API, а також об’єкт, який не можна просто завантажити з інтернету.

Основна функція URI — ідентифікувати: указувати, про який саме ресурс ідеться. Сам ідентифікатор не обов’язково повідомляє, де розташований цей ресурс або як отримати до нього доступ.

Приклад — urn:isbn:9780131103627. Це ідентифікатор видання, що використовує номер ISBN. Він не вказує на конкретну книгарню, бібліотеку чи файл для завантаження. Він ідентифікує видання, але не повідомляє його інтернет-адресу.

Отже, URI — ширше поняття, ніж адреса сторінки. Це категорія ідентифікаторів, до якої належать і добре знайомі адреси, що починаються з https:.

Що означає URL?

URL — це скорочення від Uniform Resource Locator, тобто уніфікований локатор ресурсу. Він указує розташування ресурсу та механізм доступу до нього, наприклад через HTTPS.

Приклад URL — https://example.com/posibnyk. Він містить інформацію, потрібну браузеру, щоб почати спробу доступу до вказаної сторінки:

Адреса також може містити порт, параметри запиту та фрагмент. У прикладі https://example.com/poradnik?jezyk=pl#wprowadzenie частина mova=pl є параметром запиту, а vstup ідентифікує фрагмент документа. Фрагмент не надсилається на сервер як частина запиту HTTP; його інтерпретує програмне забезпечення на боці користувача.

URL не гарантує, що ресурс існує або доступний. Адреса може вести на видалену сторінку, вимагати входу в обліковий запис або вказувати на сервер, який не відповідає. Вона все одно залишається URL.

У чому саме полягає різниця?

Найпростіше запам’ятати її за допомогою двох запитань: URI відповідає на «що ми ідентифікуємо?», а URL додатково дає змогу визначити, «де і в який спосіб шукати доступ?». Це не дві окремі категорії, що не перетинаються: URL є окремим випадком URI.

ПрикладТипЩо повідомляє?
https://example.com/zdjecie.jpgURL і URIУказує розташування фотографії та спосіб доступу через HTTPS.
urn:isbn:9780131103627URI типу URNІдентифікує видання, але не повідомляє його розташування в мережі.

URN, або Uniform Resource Name, — це ідентифікатор на основі імені в певному просторі імен. У другому прикладі таким простором є ISBN. Щоб розуміти адреси сторінок, не обов’язково користуватися URN, але він допомагає побачити, чому URI — не просто інша назва для URL.

Корисне порівняння — книжка та її місце на полиці. Номер ISBN дає змогу ідентифікувати конкретне видання, а інформація про бібліотеку, стелаж і полицю допомагає його знайти. Це лише аналогія: інтернет-адреса URL може водночас ідентифікувати ресурс і вказувати його розташування.

Який термін уживати на практиці?

Якщо просите адресу сторінки, посилання на товар або адресу файлу, вживайте термін URL. У цьому контексті він точний і не потребує пояснення ширшої категорії ідентифікаторів.

У технічній документації можна зустріти назву URI, навіть коли наведене значення має вигляд звичайної адреси HTTPS. Це не обов’язково помилка: автор використовує ширше поняття або назву, прийняту в певному стандарті. Якщо поле API називається redirect_uri, зберігайте цю назву без змін — не замінюйте її на redirect_url лише тому, що передаєте адресу сторінки.

Варто також відрізняти повну адресу від її частин. Саме по собі example.com є доменним ім’ям, а /posibnyk — відносним посиланням, значення якого залежить від базової адреси. Жоден із цих записів окремо не передає тієї самої інформації, що й повний URL https://example.com/posibnyk.

Чому ці назви іноді вживають як взаємозамінні?

Класичний поділ ідентифікаторів URI, до яких належать URL і URN, добре пояснює основну різницю. Однак термінологія стандартів не цілком узгоджена: стандарт WHATWG URL, який застосовують у браузерному середовищі, використовує поняття URL і визначає власні правила обробки адрес.

Тому під час програмування важливіша не сама назва, а вимоги конкретної бібліотеки чи API: чи приймає вона повну адресу, чи підтримує відносні посилання та які схеми допускає. Заповнюючи поле «адреса сторінки», указуйте повний URL; реалізуючи інтеграцію, перевіряйте формат, якого вимагає її документація.

Дивіться також: Що таке FreeBSD?

Читайте також

Дізнайтеся, як PHP-FPM обробляє запити PHP, чим відрізняється від вебсервера та як налаштувати процеси під трафік і ресурси хостингу.
Дізнайтеся, як BIND обслуговує DNS, чим відрізняються його серверні ролі та коли варто розгортати його самостійно замість керованої послуги.
Дізнайтеся, що означають польський реєстр і номер REGON, чим вони відрізняються від NIP та KRS і як перевірити дані підприємства.