2.03. URL, URI, URN
URL, URI, URN
В обыденной жизни мы практически каждый день используем термин «ссылка» и «URL». Более технически продвинутые могут конечно и использовать каталоги, пути и прочее, но давайте в этой части остановимся подробнее.
Собственно, что такое путь (англ. path)? Это часть адреса, указывающая на расположение ресурса на сервере. Он следует после домена и показывает, в какой директории находится нужный файл или страница. Например, в адресе https://example.com/blog/post.html путь — это /blog/post.html.
Но это путь в контексте сети. На самом деле путь может быть у чего угодно, даже C:\Program Files\ или 127.0.0.1 - всё это пути, которые определяют «узлы», разделяемые некими символами - разделителями. К примеру, в классическом пути мы знаем, что разделители это «/» или «\», а какой именно - вопрос контекста. И весь адрес, от корня до конечной точки и будет путём - path. Этот термин применяется в различном контексте - как в файловой системе и сети, так и даже в структурах и сайтах. Но к этому позже не раз вернёмся, главное запомнить суть понятия.
Ссылка — это общий термин, обозначающий любой указатель. В контексте сети, разумеется, это указатель на ресурс в интернете. Чаще всего под ссылкой подразумевают URL, но технически это может быть и любой URI. Понятие URL пользователю привычнее, но на самом деле нам нужно запомнить именно URI.
URI (Uniform Resource Identifier, унифицированный идентификатор ресурса) - это строка символов , которая уникально идентифицирует абстрактный или физический ресурс. То есть URI служит для обозначения чего-либо — будь то веб-страница, изображение, файл, имя человека или даже понятие. Главное — URI называет ресурс, но не обязательно говорит, как его получить.
Структура URI определяется стандартом (RFC 3986) и может включать следующие компоненты:
[схема:][//авторитет][путь][?запрос][#фрагмент]
Пример: https://example.com:8080/api/users?id=123#profile
https— схема (протокол)example.com:8080— авторитет (домен и порт)/api/users— путь?id=123— строка запроса (параметры)#profile— фрагмент (якорь)
Существует два основных типа URI:
- URL (Uniform Resource Locator) — указывает где находится ресурс и как к нему обратиться.
- URN (Uniform Resource Name) — даёт ресурсу уникальное имя в глобальном пространстве, независимо от его местоположения.
URL (Uniform Resource Locator, унифицированный указатель ресурса) - это частный случай URI (или тип URI), который не только идентифицирует ресурс, но и указывает способ получения этого ресурса — другими словами, определяет его местоположение в сети и протокол доступа к нему. Давайте наглядно:
| URI | URL |
|---|---|
https://learn.microsoft.com/ru-ru// | https://learn.microsoft.com/ru-ru// |
mailto:support@example.com | ftp://files.example.net/document.txt |
urn:isbn:0451450523 | http://www.example.org/index.html |
| Таким образом, URI более широкое понятие, чем URL. URI не обязательно указывает, где он находится или как его получить, А URL указывает путь к ресурсу в интернете, включая информацию о протоколе, сервере. | |
| URL состоит из нескольких ключевых частей: |
- Протокол (схема) — определяет способ доступа к ресурсу. Примеры:
http, https, ftp, ws, mailto, file. - Домен (или IP-адрес) — имя сервера, где находится ресурс. Пример:
example.com,api.github.com. - Порт — опциональная часть, указывающая, на какой порт сервера идёт запрос. По умолчанию:
80для HTTP,443для HTTPS. Пример:example.com:8080. - Путь (path) — путь к конкретному ресурсу на сервере. Может указывать на:
- API-приставки — например,
/api/v1/users(используется в REST-сервисах), - Папки/каталоги —
/images/gallery/, - Файлы с расширениями —
/documents/report.pdf,/index.html.
- API-приставки — например,
- Параметры (query string) — начинаются с
?, передают данные на сервер. Пример:?search=cat&limit=10. Часто используются в поиске, фильтрации, аналитике. - Якорь (fragment, anchor) — начинается с
#, указывает на часть страницы (например, заголовок или элемент). Пример:#section-3. Не отправляется на сервер, обрабатывается браузером локально.
URN (Uniform Resource Name, унифицированное имя ресурса) — это тип URI, который называет ресурс уникальным и постоянным образом, независимо от его местоположения. Он не указывает, где взять ресурс, а только кто или что это за ресурс. Пример: urn:isbn:0451450523 — уникальный номер книги, который остаётся неизменным, где бы она ни находилась.
Структура URN:
urn:<namespace>:<identifier>
- urn — обязательная схема.
- <namespace> — пространство имён (например, isbn, uuid, musicbrainz).
- <identifier> — уникальный идентификатор внутри этого пространства.