SIP URI и URL. Часть 1 (URI, URL и URN)



    В предыдущих двух статьях мы рассмотрели основы взаимодействия по протоколу SIP.

    1. Взаимодействие клиентов SIP. Часть 1 (Простое взаимодействие)
    2. Взаимодействие клиентов SIP. Часть 2 (Взаимодействие с использованием Proxy-сервера)


    Далее я предлагаю разобраться с такой важной составляющей SIP, как SIP URI. Мы сталкивались с ними раньше, когда говорили о полях From, To и других, однако не уделяли им должного внимания.

    В рамках этой короткой статьи мы рассмотрим, какие бывают URI и из чего они состоят. В следующей статье остановимся на URI и URL в протоколе SIP.

    URI


    Викепедия говорит следующее: URI (англ. Uniform Resource Identifier) — унифицированный (единообразный) идентификатор ресурса. На английский манер произносится как [ю-ар-ай], по-русски чаще говорят [ури]. URI — это последовательность символов, идентифицирующая абстрактный или физический ресурс. Ранее назывался Universal Resource Identifier — универсальный идентификатор ресурса.

    При этом URI может указывать как местоположение ресурса (URL), так и его имя (URN). А может содержать и то и другое. То есть URL и URN — это частные случаи URI.

    URI строится по определенным правилам и состоит из обязательных схемы и иерархической части, а также опциональных запроса (ему предшествет знак "?") и фрагмента (ему предшествует знак "#"). Иерархическая часть в свою очередь состоит из необязательного Authority (думаю, перевод только усложнит понимание) и обязательного пути. Authority включает в себя Userinfo (логин и пароль), хост и порт. Кроме того, путь может содержать так называемые параметры. Параметры используются не часто, но нам повезло — в SIP URI они присутствуют. На схеме это выглядит вот так:


    Выглядит довольно запутанно, поэтому приведу пример:


    URL


    URL (Uniform Resource Locator) указывает путь (локацию) объекта и метод получения доступа к нему. Например, en.wikipedia.org/wiki/Main_Page указывает на главную страницу английской Википедии и в качестве метода доступа предлагает использовать протокол http.

    URL описывается в RFC 1738. В этом RFC указаны описаны различные схемы для протоколов ftp, http, nntp и т.д. Послкольку URL — это частный случай URI, схема в общем случае выглядит точно так же, однако для разных протоколов актуальны те или иные ее части. Например, для протокола telnet, схема URL выглядит следующим образом:


    Интересный факт: Тим Бернерс-Ли, основоположник URL в последствии сожалел, что разделил точкой доменные имена в рамках URL. URL мог бы выглядеть вот так:


    URN


    URN не используется в рамках SIP, однако без него рассказ был бы неполным.

    URN (Uniform Resource Name) является уникальным именем объекта. URN включает в себя название пространства имен и идентификатора в этом пространстве. Типичный пример URN — это ISDN-Имя книги. URN состоит из NID (namespace identifier или идентификатор пространства имен) и NSS (namespace-specific string или уникального для данного пространства имен имени). Схематично это выглядит следующим образом:


    Чтобы стало совсем понятно, приведу следующий пример. Допустим, мы хотим описать некого Ивана.

    URN в данном случае будет выглядеть следующим образом: паспорт РФ: Иванов Иван Иванович, паспорт серия 1234 номер 123456. Где «паспорт РФ» — это название идентификатора пространства имен, а «Иванов Иван Иванович, паспорт серия 1234 номер 123456» — это уникальное имя в этом пространстве.

    С помощью этого URN мы одназначно идентифицируем Ивана, но не сможем определить его местоположение. Здесь нам поможет URL. Выглядеть это может примерно так: машина: город N/улица M/квартира L. Где «машина» — это метод получения доступа, а «город N...» — путь.

    Подведем итог. URN отвечает идентифицирует ресурс по имени и отвечает на вопрос «Что?». URL — указывает путь и метод доступа к ресурсу и отвечает на вопросы «Где?» и «Как?». При этом URN и URL — это частные случаи URI.
    • +4
    • 42,8k
    • 4
    Поделиться публикацией

    Комментарии 4

      0
      Японцев-то за что обижаете?
        0
        Если про первую картинку, то там не таблица, а два множества, не соотносящихся между собой. Слева — условные обозначения «сущностей», справа — «локаций» не более того. Надеюсь, никого не обидел.
        0
        Простые вещи простым языком, автору спасибо.
          0
          Спасибо за добрые слова.

        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

        Самое читаемое