TGViewer
Гуманный аналитик Гуманный аналитик @humane_analyst · 415 subscribers
Post #224 244
UR🙃, или разбираемся с URL, URI и URN

На днях в очередной раз запнулся о термин URI и решил наконец разобраться в вопросе. Обратился к определениям.

📌 URI (Uniform Resource Identifier) — унифицированный идентификатор ресурса. Это общий термин, охватывающий два типа идентификаторов ресурсов: URL и URN. URI служит для уникальной идентификации любого ресурса независимо от способа его нахождения или адресации.

📌 URL (Uniform Resource Locator) — адрес конкретного местоположения ресурса в сети Интернет. URL определяет конкретный путь к ресурсу, включая протокол передачи данных, доменное имя сервера и путь к файлу/странице.

📌 URN (Uniform Resource Name) — уникальное название ресурса, которое не зависит от физического расположения ресурса. Оно используется для постоянного именования объектов вне зависимости от их текущего местонахождения в Интернете.

Определения прекрасные, но, поскольку лично у меня всё равно вопросы остались, решил углубиться и порассуждать. И вот к чему я пришёл.

💡 URL предназначен для точного указания физического местоположения ресурса в сети. URL указывает на ресурс, ключевое — это "где" (место, адрес). Если ресурс перемещён, доступ к нему прекращается (получаем "битую" ссылку) и нужен новый URL.

Примеры: путь к файлу (file://C:/Users/boss/Downloads/pic.png), адрес в интернет (https://t.me/humane_analyst/222), электронная почта (mailto:unsubsribe@spam.ru) и т.д.

💡 URN служит для однозначного определения ресурса независимо от его текущего физического размещения. URN называет объект, ключевое — это "что" (идентификатор, имя). Если ресурс перемещён, его глобальная идентификация остаётся неизменной.

Примеры: UUID, пространства имён (xmlns="http://www.w3.org/1999/xhtml", Namespace="http://www.contoso.com/" и т.п.), постоянные идентификаторы изданий и публикаций (ISBN, ISSN, DOI) и т.д.

💡 Следствие из ранее озвученного: один и тот же идентификатор не может удовлетворять требованиям URL и URN, то есть не может быть способом доступа и идентификатором ресурса одновременно. В этой связи пространство имён при всей его внешней схожести с URL (см. выше) таковым не является, это исключительно URN.

💡 Фундаментально разные цели URL и URN приводят к тому, что с позиции объектно-ориентированной парадигмы URI является родительским классом для классов URL и URN. URL и URN, соответственно, — это дочерние классы (подтипы) для URI. А поскольку примеры URL и URN существуют (см. выше), то URL и URN — это конкретные классы.

💡 URI не сводится к паре URL и URN, есть и другие URI.

Пример 1. Data URI используется для встраивания небольших файлов непосредственно в тело веб-документа. Data URI уникально не идентифицирует ни положение, ни внедряемый файл. Соответственно, Data URI не является URL и не является URN. Вместе с тем ограниченная специализация Data URI и его общность с URI позволяют считать Data URI экземпляром (объектом) класса URI.

Пример 2. Номер телефона в соответствии со спецификацией RFC 3966 (tel:+79211234567) является только URI. Номер телефона не является URL, так как не содержит компонентов для идентификации ресурса в Интернет, и номер телефона не является URN, поскольку URN только называет ресурс, но не говорит, как к нему добраться (а номер телефона позволяет понять, как можно провзаимодействовать с ресурсом и предложить совершить звонок).

Следствие: URI — не просто базовый класс, как говорилось выше, но ещё и конкретный класс.

💡 На практике терминология часто является взаимозаменяемой. Поэтому, говоря, например, про веб-адреса, можно оперировать как термином "URL", так и "URI". Это согласуется с приведёнными выше рассуждениями.

💡 Строго говоря, чтобы идентификатор мог считаться URI, URL или URN, он должен соответствовать определённым форматам.

#проектирование #термины #любопытное
  • 🙏 4
  • 🔥 3
  • 👍 2
More from @humane_analyst
  1. Oct 7, 2026«Вокруг света» выкатил тест на «врождённый интеллект»: «Какая фигура лишняя?». Я, конечно…
  2. Oct 1, 2026⚡ TechCommunity Fest 2026 (TCF2026) Я сегодня на TechCommunity Fest. Событие не для широко…
  3. Sep 28, 2026📕 "Ikigai: The Japanese Secret to a Long and Happy Life" by Héctor García and Francesc Mi…
  4. Sep 24, 2026Друзья, поздравляю всех с Днём системного аналитика! 🥂 Пусть все требования будут чёткими…
  5. Sep 21, 2026📣 Выложены записи трека "Архитектура и анализ" CodeFest'16. Смотрим! 📺 #события #codefes…
  6. Sep 16, 2026🤖 Новая веха: заказчик принëс нейрослоп На днях произошло событие, которое без преувеличе…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →