URL и URI - в чем различие?
Last updated
Was this helpful?
Last updated
Was this helpful?
Мы все используем много URL-адресов ежедневно. Иногда мы их набираем, иногда мы просто переходим на один URL из другого.
Для начала давайте расшифруем аббревиатуры:
URI - Uniform Resource Identifier (унифицированный идентификатор ресурса)
URL - Uniform Resource Locator (унифицированный определитель местонахождения ресурса)
URN - Unifrorm Resource Name (унифицированное имя ресурса)
Многие считают, что http://google.com или http://yandex.ru - это просто URL-адреса, но, однако мы можем говорить о них как о URI. Фактически, URI представляет собой расширенный набор URL-адресов и нечто, называемое URN. Таким образом, мы можем с уверенностью заключить, что все URL являются URI. Однако обратное неверно.
Твое имя, скажем, “Джон Доу” - это URN. Место, в котором вы живете, например, “Улица Вязов, 13” – это уже URL. Вы можете быть идентифицированы как уникальное лицо с вашим именем или вашим адресом. Эта уникальная личность – это уже URI. И хотя ваше имя может быть вашим уникальным идентификатором (URI), оно не может быть URL-адресом, поскольку ваше имя не помогает найти ваше местоположение. Другими словами, URI (которые являются URN) не являются URL-адресами.
Вернемся в интернет:
URI – имя и адрес ресурса в сети, включает в себя URL и URN
URL – адрес ресурса в сети, определяет местонахождение и способ обращения к нему
URN – имя ресурса в сети, определяет только название ресурса, но не говорит как к нему подключиться
Рассмотрим примеры:
URI –
URL -
URN - images/vse-chto-vam-nuzhno-znat-pro-devops/1.png
Как вы видите – первые две сточки в вашем браузере отобразились как ссылки и по ним можно перейти, однако по третьей сточке нельзя, потому что непонятно как и куда.
Как это можно показать наглядно:
URI обозначает Uniform Resource Identifier и по сути является последовательностью символов, которая идентифицирует какой-то ресурс. URI может содержать URL и URN.
URI содержит в себе следующие части:
Схема (scheme) - показывает на то, как обращаться к ресурсу, чаще всего это сетевой протокол (http, ftp, ldap)
Иерархическая часть (hier-part) - данные, необходимые для идентификации ресурса (например, адрес сайта)
Запрос (query) - необязательные дополнительные данные ресурса (например, поисковой запрос)
Фрагмент (fragment) – необязательный компонент для идентификации вторичного ресурса ресурса (например, место на странице)
Общий синтаксис URI выглядит так: URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ]
Теперь, когда мы знаем, что такое URI, URL тоже должен быть достаточно понятным. Всегда помните - URI может содержать URL, но URL указывает только адрес ресурса.
URL содержит следующую информацию:
Протокол, который используется для доступа к ресурсу – http, https, ftp
Расположение сервера с использованием IP-адреса или имени домена - например, wiki.merionet.ru - это имя домена. https://192.168.1.17 - здесь ресурс расположен по указанному IP-адресу
Номер порта на сервере. Например, http://localhost: 8080, где 8080 - это порт.
Точное местоположение в структуре каталогов сервера. Например - https://wiki.merionet.ru/ip-telephoniya/ - это точное местоположение, если пользователь хочет перейти в раздел про телефонию на сайте.
Необязательный идентификатор фрагмента. Например, https://www.google.com/search?ei=qw3eqwe12e1w&q=URL, где q = URL - это строка запроса, введенная пользователем.
Синтаксис: [protocol]://www.[domain_name]:[port 80]/[path or exaction resource location]?[query]#[fragment]
Так как определить, является ли что-то URI или URL?
Что ж, если вы хотите знать, является ли это «что-то» URI или URL, вы всегда должны считать его как URI, потому что все URL являются URI.
Давайте сделаем некоторое параллельное сравнение, чтобы все, что мы обсуждали до сих пор, было подкреплено, и вы никогда не запутаетесь в неправильном использовании URI и URL.
URI
URL
Идентификатор ресурса
Определитель местонахождения
Синтаксис: scheme:[//authority]path[?query][#fragment], где authority = [userinfo@]host[:port]
Синтаксис: [protocol]://www.[domain_name]:[port 80]/[path or exaction resource location]?[query]#[fragment]
Схема может быть любой - протокол, имя или спецификация и так далее
Схема всегда является протоколом, таким как http, https, ftp, LDAP и так далее
Основная цель URI - идентифицировать ресурс и отличить его от других ресурсов, используя местоположение или имя.
Основная цель - получить адрес или местоположение ресурса.
Пример: contact: +1 883-345-1111, urn:isbn:1234567890
Пример: https://wiki.merionet.ru/servernye-resheniya/36/vse-chto-vam-nuzhno-znat-pro-devops/?f=0
Используется в файлах HTML, XML и библиотек тегов, таких как XSLT и jstl, для идентификации ресурсов и двоичных файлов.
URL используется для поиска только веб-страниц
Ссылки: