У чому різниця між URL та URI на практиці?
Автор: Редакція Domeny.ForSale Опубліковано
Коротко: 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— схема, яка в цьому випадку визначає використання протоколу 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.jpg | URL і URI | Указує розташування фотографії та спосіб доступу через HTTPS. |
urn:isbn:9780131103627 | URI типу 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?
