Универсальный локатор ресурсов


Схемы адресации ресурсов
HTTP FTP Goper Mailto News NNTP WAIS File Telnet

Из всех спецификаций World Wide Web только спецификация URI доведена до состояния URI определяет способ записи (кодирования) адресов различных информационных ресурсов при обращении к ним из страниц WWW. Однако в последнее время данная спецификация стала встречаться и в почтовых сообщениях. При этом, видимо предполагается, что пользователи почты должны использовать клиентов поддерживающих этот формат сообщения. Реально речь может идти о клиентах MIME (Multiperposal Internet Mail Exchange).

Необходимость в URI была понятна разработчикам WWW c момента зарождения системы, т.к. предполагалось объединение в единую информационную среду средств, использующих различные способы идентификации информационных ресурсов. Первоначально это были FTP архивы, информационно-поисковая система Alise и справочная система ЦЕРН. Однако Бернерс Ли подошел к делу основательно и разработал спецификацию, которая включала в себя обращения к FTP, Gopher, WAIS, Usenet, E-mail, Prospero, Telnet, Whois, X500 и конечно HTTP(WWW). В итоге была разработана универсальная спецификация, которая позволяет расширять список адресуемых ресурсов за счет появления новых.

Место применения URI -- гипертестовые ссылки, которые записываются в тагах < A HREF=URI > и < LINK HREF=URI >. Встраиваемые графические объекты также адресуются по спецификации URI в тагах < IMG SRC=URI > и <FIG SRC=URI >. Реализация URI для WWW называется URL(Uniform Resource Locator). Точнее, URL -- это реализация схемы URI, отображенная на алгоритм доступа к ресурсам по сетевым протоколам. Существует еще и URN (Uniform Resource Name), которое отображает URI в пространство имен на сети. Вообще говоря, на мой взгляд это уже перебор. Собственно, появление URN связано с желанием адресовать части почтового сообщения MIME. Но здесь есть момент, который находится в стадии дебатов. Сообщение "живет" не более 5 дней. Если оно сохранено, то его можно превратить в другой информационный ресурс, например WWW страницу. Поэтому судьба URN еще не решена.

При разработке URI преследовались следующие принципы:

  • Расширяемость -- новые адресные схемы должны были легко вписываться в существующий синтаксис URI.
  • Полнота -- по возможности, любая из существовавших схем должна была описываться посредством URI.
  • Читаемость -- адрес должен был быть легко читаем человеком, что вообще характерно для технологии WWW -- документы вместе с ссылками могут разрабатываться в обычном текстовом редакторе. Полнота и Читаемость порождали коллизию, связанную с тем, что в некоторых схемах используется двоичная информация. Эта проблема была решена за счет формы представления такой информации. Символы, которые несут служебные функции и двоичные данные отображаются в URI в шестнадцатеричном коде и предваряются символом "%".

    Прежде, чем рассмотреть различные схемы представления адресов, приведем пример простого адреса URI:
    http://polyn.net.kiae.su/polyn/index.html

    Перед двоеточием стоит имя схемы адреса -- "http". Это имя отделено двоеточием от остатка URI, который называется путь. В данном случае путь состоит из доменного адреса машины, на которой установлен сервер HTTP и пути от корня дерева сервера к файлу "index.html".

    Кроме представленной выше полной записи URI, существует упрощенная. Она предполагает, что к моменту ее использования многие параметры адреса ресурса уже определены (протокол, адрес машины в сети, некоторые элементы пути). При таких предположениях автор гипертекстовых страниц может указывать только относительный адрес ресурса, т.е. адрес относительный базовых определенных ресурсов.

    В RFC 1630 рассмотрено 8 схем адресации ресурсов internet и указаны две, чей синтаксис находится в стадии обсуждения.

    Схема HTTP. Это основная схема для WWW. В схеме указывается ее идентификатор, адрес машины, TCP порт, путь в директории сервера, поисковый критерий и метка. Приведем несколько примеров URI для схемы HTTP.
    http://polyn.net.kiae.su/polyn/manifest.html

    Это наиболее распространенный вид URI, применяемый в документах WWW. Вслед за именем схемы (http) следует путь, состоящий из доменного адреса машины и полного адреса HTML документа в дереве сервера HTTP.

    В качестве адреса машины допустимо использование и IP адреса:
    http://144.206.160.40/risk/risk.html
    Если сервер протокола HTTP запущен на другой, отличный от 80 порт TCP, то это отражается в адресе:
    http://144.206.130.137:8080/altai/index.html
    При указании адреса ресурса возможна ссылка на точку внутри файла HTML. Для этого вслед за именем документа может быть указана метка внутри документа:
    http://polyn.net.kiae.su/altai/volume4.html#first
    Символ "#" разделяет имя документа от имени метки. Другая возможность схемы HTTP -- передача параметров. Первоначально предполагалось, что в качестве параметров будут передаваться ключевые слова, но, помере развития механизма SGI скриптов, в качестве параметров стала передаваться и другая информация.
    http://polyn.net.kiae.su/isindex.html?keyword1+keyword2
    В данном примере предполагается, что документ "isindex.html" - документ с возможностью поиска по ключевым словам. При этом в зависимости от поисковой машины (программы, реализующей поиск) знак "+" будет интерпритироваться либо как "AND", либо как "OR". Вообще говоря, "+" - заменяет " " и относится к классу неотображаемых символов. Если необходимо передать такой символ в строке параметров, то следует передавать в шестнадцатиричном виде его ASCII код.
    http://polyn.net.kiae.su/isindex.html?keyword1%20keyword2
    В данном случае имется один параметр в котором два слова разделены пробелом. Символ "%" обозначает начало ASCII кода, который продолжается до первого символа отличного от цифры.

    При использовании HTML Forms параметры передаются как поименованные поля:
    http://polyn.net.kiae.su/isindex.html?field1=value1+field2=value2
    Значения "field1" и "field2" - это имена полей, а "value1" и "value2" - их значения. При этом приведенному выше URI может соответствовать следующая HTML форма:
    < FORM ACTION=http://polyn.net.kiae.su/cgi-bin/test >
    Введите заначения полей:
    Поле "field1":< INPUT NAME="filed1" VALUE="value1" >
    Поле "field2":< INPUT NAME="field2" VALUE="value2" >
    < HR >
    < /FORM >

    Схема FTP. Данная схема позволяет адресовать файловые архивы FTP из программ-клиентов World Wide Web. При этом программа должна поддерживать протокол FTP. В данной схеме возможно указание не только имени схемы, адреса FTP архива, но и идентификатора пользователя и даже его пароля. Наиболее часто данная схема используется для доступа к публичным архивам FTP:
    ftp://polyn.net.kiae.su/pub/0index.txt
    В данном случае записана ссылка на архив "polyn.net.kiae.su" c идентификатором "anonymous" или "ftp" (анонимный доступ). Если есть необходимость указать идентификатор пользователя и его пароль, то можно это сделать перед адресом машины:
    ftp://nobody:password@polyn.net.kiae.su/users/local/pub
    В данном случае эти параметры отделены от адреса машины символом "@", и отделены друг от друга двоеточием. В некоторых системах можно указать и тип передаваемой информации, но данная возможность не стандартизирована. Стандарт рекомендует определять тип по характеру данных (текстовая информация- ASCII, двоичная - IMAGE). Следует также учитывать, что употребление идентификатора пользователя и его пароля не рекомендованно, т.к. данные передаются незашифрованными и могут быть перехвачены. Реальная защита в WWW осуществляется другими средствами и построена на других принципах.

    Схема Gopher. Данная схема используется для ссылки на рисурсы распределенной информационной системы Gopher. Схема состоит из идентификатора и пути, в котором указывается адрес Gopher сервера, тип ресурса и команда Gopher.
    gopher://gopher.kiae.su:70:/7/kuku
    В данном примере осуществляется доступ к gopher серверу gopher.kiae.su черз порт 70 для поиска (тип 7) слова "kuku". Следует заметить, что gopher тип, в данном случае 7, передается не перед командой, а вслед за ней.

    Схема MAILTO. Данная схема предназначена для отправки почты по стандарту RFC822(стандарт почтового сообщения). Общий вид схемы выглядит как:
    mailto:paul@quest.polyn.kiae.su

    Схема NEWS. Данная схема используется для просмотра сообщений системы Usenet. При использовании этой схемы используется следующая нотация:
    news:comp.infosystems.gopher
    В данном случае можно получить статьи и группы "comp.infosystems.gopher" в режиме уведомления. Можно получить и текст статьи, но в этом случае указывают ее идентификатор:
    news:086@comp.infosystems.gopher
    Заказана 86 статья из группы.

    Схема NNTP. Это еще одна схема получения доступа к ресурсам Usenet. В данной схеме обращение к группе comp.infosystems.gopher для получения 86 статьи будет выглядеть так:
    nntp:comp.infosystems.gopher/086
    следует обратить внимание на то, что адрес сервера Usenet не указан. Программа-клиент должна быть предварительно сконфигурирована на работу с одним из серверов Usenet. Сама служба Usenet является распределенным информационным ресурсом и группа comp.infosystems.gopher на сервере в домене kiae.su или где-либо еще в мире содержит одни и те же сообщения.

    Схема TELNET. Доступ к ресурсу в режиме удаленного терминала осуществляется по это схеме. Обычно, клиент вызывает дополнительную программу для работы по протоколу telnet. При использовании этой схемы необходимо указывать идентификатор пользователя, и возможно использование пароля. Реально, доступ осуществляется к публичным ресурсам и идентификатор и пароль являются общеизвестными, например их можно узнать в базах данных Hytelnet.
    telnet://guest:password@apollo.polyn.kiae.su

    Схема WAIS. WAIS -- распределенная информационно-поисковая система. Учитывая, что она работает в двух режимах: поиска и просмотра. При поиске используется форма со знаком "?", отделяющим адресную часть в пути от ключевых слов:
    wais://wais.think.com/wais?guide
    В данном случае обращаются к базе данных wais на сервере wais.think.com с запросом на поиск документов со словом guide. Сервер должем вернуть клиенту список документов. После получения этого списка можно использовать вторую форму схемы wais -- запрос на просмотр документа:
    wais://wais.think.com/wais/wtype/039=/kuku/kuku.txt
    039 -- это идентификатор документа. Следует заметить, что не все клиенты умеют работать с этой схемой, и вряде случаев следует пользоваться другими средствами. Схема wais хороша там, где надо обслуживать постоянно действующий запрос, который неизменен на протяжении длительного времени, но при этом выдает свежие документы.

    Схема FILE. World Wide Web технология используется как в сетевом, так и в локальном режимах. Для локального режима используют схему FILE.
    file:///C|/text/html/index.htm
    В данном примере приведено обращение к локальному документу на персональном компьютере с MS-DOS или MS-Windows. Следует заметить, что данная схема не может быть применена к CGI скриптам. Очень часто, однако, пользователи пытаются применить file к скрипту, что является ошибкой. Любой скрипт может быть запущен только сервером HTTP, т.к. ему надо передавать параметры и данные. Клиент запускает только программы просмотра на основе MIME типов из заголовка сообщений сервера или по расширению файла.

    Существует еще несколько схем. Эти схемы реально практически не используются или находятся в стадии разработки, поэтому останавливаться на них мы не будем.

    Из приведенных выше примеров видно, что спецификация адресов ресурсов URI является довольно общей и позволяет проидентифицировать практически любой ресурс Internet. При этом число ресурсов может расширяться за счет создания новых схем. Они могут быть похожими на существующие, а могут и отличаться от них. Реальный механизм интерпретации идентификатора ресурса, опирающийся на URI, называется URL и пользователи WWW имеют дело именно с ним.