user

URL — унифицированные указатели информационных ресурсов

Дата публикации: 05.06.2010
Метки: user, возможность, имя, информация, команда, номер, пользователь, программный, система, файл
номер

Мы несколько раз упоминали о том, что веб-страницы могут быть связаны между собой ссылками. Пора познакомиться с тем, как эти ссылки реализованы. Уже при создании Паутины было очевидно, что для реализации ссылок с одних стра­ниц на другие необходим механизм именования и указания расположения стра­ниц. В частности, прежде чем выводить выбранную страницу на экран, нужно узнать ответы на три следующих вопроса.

1.   Как называется эта страница?

2.    Где она расположена?

3.    Как получить к ней доступ?

Если бы каждой странице можно было присвоить уникальное имя, то в иденти­фикации страниц не было бы никакой неоднозначности. Тем не менее, проблему бы это не решило. Для примера проведем параллель между страницами и людь­ми. В Соединенных Штатах почти у всех граждан есть номер карточки социаль­ного страхования, представляющий собой уникальный идентификатор, так как нет двух людей с одинаковым номером. Тем не менее, зная только номер карточки социального страхования, нет способа узнать адрес владельца и, конечно, нельзя определить, следует ли писать этому гражданину по-английски, по-испански или по-китайски. Во Всемирной паутине проблемы, в принципе, те же самые.

В результате было принято решение идентифицировать страницы способом, решающим сразу все три проблемы. Каждой странице назначается унифициро­ванный указатель информационного ресурса (URL, Uniform Resource Locator), который служит уникальным именем страницы. URL состоят из трех частей: про­токола (также называемого схемой), DNS-имени машины, на которой располо­жена страница, и локального имени, единственным образом идентифицирующе­го страницу в пределах этой машины (обычно это просто имя файла). Например, веб-сайт факультета, на котором работает автор, содержит несколько видеофраг­ментов об университете и городе Амстердаме. Унифицированный указатель страницы с видео выглядит следующим образом: http://www.cs.vu.nl/video/index-en.html

Этот URL состоит из трех частей: протокола (http), DNS-имени хоста (www.cs.vu.nl) и имени файла (video/index-en.html). Отдельные части URL-указа­теля разделяются специальными знаками пунктуации. Имя файла представляет собой относительный путь по отношению к веб-катологу cs.vu.vu.nl.

У сайтов могут быть сокращенные имена для ускоренного доступа к опреде­ленным файлам. Скажем, при отсутствии в URL имени файла может выводиться главная (домашняя) страница сайта. Если имя файла заканчивается именем ка­талога, то из него по умолчанию выбирается файл с именем index.html. Наконец, имя -user/ может соответствовать WWW-каталогу пользователя, причем может быть также задано имя файла по умолчанию, например, index.html. Так, на до­машнюю страницу автора можно попасть по адресу

http://www.cs.vu.nl/~ast/ несмотря на то, что действительное имя файла (index.html) отличается от указан­ного.

Теперь надо понять, как работает гипертекст. Чтобы на неком участке текста браузер мог реагировать на щелчок мыши, при написании веб-страницы нужно обозначить два элемента: отображаемый на экране текст ссылки и URL страни­цы, которая должна стать текущей при щелчке мышью. Синтаксис такой коман­ды будет пояснен далее в этой главе.

При выборе ссылки браузер с помощью службы DNS ищет имя хоста. Зная IP-адрес хоста, браузер устанавливает с ним TCP-соединение. По этому соедине­нию с помощью указанного протокола браузер посылает имя файла, содержаще­го страницу. Вот, собственно, и все. Назад по соединению передается страница.

Такая схема является открытой в том смысле, что она позволяет использо­вать разные протоколы для доставки информационных единиц разного типа. Определены URL-указатели для других распространенных протоколов, пони­маемые многими браузерами. Слегка упрощенные формы наиболее употреби­тельных URL-указателей приведены в табл. 7.9.

Таблица 7.9. Некоторые распространенные URL-указатели

Имя

Применение

Пример

http

Гипертекст (HTML)

http://www.cs.vu.nl/~ast/

ftp

FTP

ftp://ftp.cs.vu.nl/pub/minix/README

file

пользователь

Локальный файл

file:////usr/suzanne/prog.c

news

Телеконференция

news:comp.os.minix

news

Статья новостей

news:AA0134223112@cs.utah.edu

gopher

Gopher

gopher://gopher.tc.umn.edU/11/Libraries

mailto

Отправка электронной почты

mailto:JohnUser@acm.org

telnet

Удаленный терминал

файл

telnet://www.w3.org:80

Кратко рассмотрим этот список. Протокол http является родным языком Все­мирной паутины, на нем разговаривают веб-серверы. HTTP — это сокращение, которое расшифровывается как HyperText Transfer Protocol (протокол передачи гипертекста). Более подробно мы рассмотрим его далее в этой главе.

Протокол ftp используется для доступа к файлам по FTP — протоколу пере­дачи файлов по Интернету. За двадцать лет своего существования он достаточно хорошо укоренился в сети. Многочисленные FTP-серверы по всему миру позво­ляют пользователям в любых концах Интернета регистрироваться на сервере и скачивать разнообразные файлы, размещенные на сервере. Всемирная паутина здесь не вносит особых изменений. Она просто упрощает доступ к FTP-серверам и работу с файлами, ибо само по себе FTP имеет несколько загадочный интер­фейс (однако более мощный, чем HTTP: например, он позволяет пользователю машины А передать файл с машины В на машину С),

К локальному файлу также можно обратиться как к веб-странице, либо ис­пользуя протокол file, либо просто указав имя файла. Такой подход напоминает FTP, но не требует наличия сервера. Разумеется, он работает только с локальны­ми файлами, а не с расположенными на удаленных терминалах.

Задолго до появления Интернета появилась система групп новостей USENET. Она состоит примерно из 30 ООО конференций, в которых миллионы людей обсу­ждают широкий круг вопросов, отправляя и читая сообщения, связанные с тема­тикой данной конференции. Протокол news позволяет пользователю вызывать на экран статью с новостями, как если бы она была обычной веб-страницей. Это означает, что веб-браузер легким движением руки превращается в элегантную программу чтения новостей. На самом деле, благодаря кнопкам и пунктам меню многих браузеров чтение новостей USENET становится даже удобнее, чем с по­мощью специальных программ чтения сетевых новостей.

Для протокола news поддерживается два формата URL-указателей. Первый формат указывает телеконференцию, и с его помощью можно получить список новых статей с указанного заранее сайта новостей. Второй формат позволяет по­лучить конкретную статью по ее идентификатору, например, AA0134223112@cs. utah.edu. Для получения этой статьи с заранее настроенного сайта браузер ис­пользует протокол NNTP (Network News Transfer Protocol — сетевой протокол передачи новостей). Мы изучим NNTP в этой книге, однако надо понимать, что это нечто вроде SMTP, они весьма похожи даже по стилю.

Протокол gopher используется системой Gopher, разработанной в универси­тете штата Миннесота и получившей свое название от университетской спортив­ной команды «Golden Gophers» («Золотые суслики»). (Гоферами называют уро­женцев штатов Миннесота, Арканзас и Флорида. Кроме того, на американском сленге это слово означает «добывать», «копать», «искать».) Система Gopher поя­вилась в Интернете на несколько лет раньше Всемирной паутины. Концепту­ально они похожи: и та, и другая представляют собой схему поиска и получения информации, хранящейся на различных серверах, однако система Gopher под­держивала только тексты и не поддерживала изображений. Сейчас ее можно счи­тать полностью устаревшей, используется она крайне редко.

Последние два протокола не занимаются имитацией получения веб-страниц, но они также полезны. Протокол mailto позволяет пользователю посылать элек­тронную почту из веб-браузера. Например, в некоторых браузерах для этого нужно щелкнуть на кнопке OPEN и ввести URL-указатель, состоящий из слова mailto:, за которым следует почтовый адрес получателя. В ответ в большинстве браузеров откроется специальная форма, содержащая поля для редактирования темы письма и других заголовков, а также окно для ввода текста самого письма.

С помощью протокола telnet можно установить в подключенном режиме со­единение с удаленным компьютером. Он используется так же, как и программа Telnet, что неудивительно, так как большинство браузеров просто вызывают са­му программу Telnet как вспомогательное приложение.

Итак, URL-указатели позволяют пользователям не только путешествовать по Всемирной паутине, но и работать с FTP-серверами, BBS, Gopher-серверами, электронной почтой и регистрироваться на удаленных серверах с помощью про­граммы Telnet. Все эти ресурсы оказываются доступны при помощи всего одной программы — веб-браузера, что очень удобно. Если бы отцом этой идеи не был ученый-физик, она стала бы, вероятно, самой убедительной рекламой какой-ни­будь компании, специализирующейся на выпуске программного обеспечения.

Несмотря на все перечисленные достоинства, все продолжающийся рост по­пулярности Всемирной паутины выявил один врожденный недостаток URL-схе­мы. URL указывает на определенный хост. Часто запрашиваемые по сети стра­ницы было бы лучше дублировать и хранить копии в удаленных концах сети, чтобы снизить сетевой трафик. Беда в том, что URL-указатели не предоставляют возможности для ссылки на страницу без указания ее точного адреса. Нельзя сказать: «Мне нужна страница abc, и мне все равно, где вы ее раздобудете». Для решения задачи репликации страниц проблемная группа проектирования Ин­тернета IETF (Internet Engineering Task Force) работает над системой URN (Uniform Resource Name — универсальное имя ресурса). Универсальное имя ре­сурса URN можно считать обобщенным URL-указателем. В настоящее время этот вопрос находится в стадии исследования, хотя уже предложен синтаксис, опи­санный в RFC 2141.

РОРЗ

Дата публикации: 05.06.2010
Метки: user, возможность, диск, запись, имя, команда, компьютер, номер, пользователь, система
имя

К сожалению, такое решение создает новую проблему: как пользователю забрать свою почту у агента передачи сообщений провайдера? Ответ таков: следует соз­дать специальный протокол, который позволил бы пользовательскому агенту (на машине клиента) соединиться с агентом передачи сообщений провайдера (на ма­шине провайдера) и скопировать хранящуюся для него почту. Одним из таких протоколов является РОРЗ (Post Office Protocol v. 3 — почтовый протокол, 3-я версия), определенный в документе RFC 1939.

Ситуация, при которой доставка осуществляется в условиях постоянного со­единения с Интернетом отправителя и получателя, показана на рис. 7.5, а. Ил­люстрация ситуации, в которой отправитель находится в текущий момент на ли­нии, а приемник — нет, приведена на рис. 7.5, б.


РОРЗ

Агент

передачи Пользовательский

SMTP Интернет сооб1цений                             агент

Хост- отправитель

Постоянное подключение

Почтовый Хост- ящик приемник

к__                                           /

РОРЗ

Рис. 7.5. Отправка и прием почты, когда приемник постоянно находится в подключенном состоянии и пользовательский агент работает на одной машине с агентом передачи сообщений (а); прием почты при модемном соединении получателя с провайдером (б)

Почтовый Машина ящик провайдера

б



 


Протокол РОРЗ начинает свою работу, когда пользователь запускает почто­вый редактор. Последний дозванивается до провайдера (если только машина уже не находится в подключенном состоянии) и устанавливает TCP-соединение с аген­том передачи сообщений с использованием порта 110. После установки соедине­ния протокол РОРЗ проходит три последовательных состояния.

1. Авторизация.

2.    Транзакции.

3.    Обновление.

Авторизация связана с процессом входа пользователя в систему. В состоянии транзакций пользователь забирает свою почту и может пометить ее для удале­ния из почтового ящика. В состоянии обновления происходит удаление поме­ченной корреспонденции.

Можно посмотреть, как все это происходит, набрав команду вида

telnet mail.isp.com 110,

где mail.isp.com следует заменить на DNS-имя почтового сервера провайдера. Telnet устанавливает TCP-соединение с портом 110, прослушиваемым РОРЗ-сервером. После установки TCP-соединения сервер посылает ASCII-сообщение, объявляя о своем присутствии. Обычно оно начинается с +0К, затем следует комментарий. Возможный сценарий после установки TCP-соединения показан в листинге 7.4. Как и раньше, строки, начинающиеся с С:. говорят о том, что данная команда ис­ходит от клиента (пользователя), а начинающиеся с S: — что это сообщения сер­вера (агента передачи сообщений на машине провайдера).

Листинг 7.4. Получение трех сообщений по протоколу РОРЗ

S: +0К РОРЗ-сервер готов

С: USER carolyn

S: +0К

С: PASS vegetables

S: OK вход в систему произведен

С: LIST

S: 1 2505

S: 2 14302

S: 3 8122

S: .

C: RETR 1

S: (отправляет сообщение 1)

С: DELE 1

С: RETR 2

S: (отправляет сообщение 2)

С: DELE 2

С: RETR 3

S: (отправляет сообщение 3)

С: DELE 3

С: QUIT

S: +0К Конец соединения с РОРЗ-сервером

В состоянии авторизации клиент должен сообщить имя пользователя и па­роль. После успешного входа в систему клиент может послать команду LIST для запроса списка писем, хранящихся в почтовом ящике. Каждая строка списка со­ответствует одному письму, в ней указываются его номер и размер. Точка явля­ется признаком конца списка.

После этого пользователь может запросить сообщения командой RETR и поме­тить их для удаления командой DELE. После получения (и, возможно, установки меток удаления) всех писем пользователь посылает команду QUIT для заверше­ния состояния транзакций и входа в состояние обновления. После удаления сер­вером всех сообщений он посылает ответ и разрывает ТСР-соединение.

Несмотря на то, что протокол РОРЗ действительно поддерживает возмож­ность получения одного или нескольких писем и оставления их на сервере, боль­шинство программ обработки электронной почты просто скачивают все письма и опустошают почтовый ящик на сервере. Такие действия означают, что реально хранится только одна копия писем — на жестком диске пользователя. Если с ним что-то случается, корреспонденция пропадает безвозвратно.

Теперь подведем небольшие итоги того, как происходит работа с электронной почтой клиентов провайдера. Элинор создает сообщение для Кэролайн с помо­щью редактора электронной почты (то есть пользовательского агента) и щелкает на значке, чтобы отослать его. Программа передает письмо агенту передачи сообще­ний на хосте Элинор. Агент передачи сообщений видит, что письмо адресова­но carolyn@xyz.com, и использует DNS для поиска записи MX для xyz.com (где xyz.com — провайдер Кэролайн). В ответ на запрос возвращается DNS-имя поч­тового сервера xyz.com. Агент передачи сообщений после этого снова обращается к DNS (например, используя gethostbyname): на этот раз ему нужно найти IP-ад­рес этой машины. Затем с помощью порта 25 найденной машины устанавливает­ся TCP-соединение с SMTP-сервером. Передавая команды SMTP, аналогичные показанным в листинге 7.3, агент пересылает сообщение в почтовый ящик для Кэролайн и разрывает ТСР-соединение.

Через некоторое время Кэролайн загружает свой компьютер, соединяется с провайдером и запускает программу электронной почты. Та устанавливает ТСР- соединение через порт 110 РОРЗ-сервера, работающего на машине провайдера. Имя DNS или IP-адрес этой машины обычно указывается при установке про­граммы электронной почты либо его получают у провайдера. После установки TCP-соединения почтовая программа Кэролайн запускает протокол РОРЗ для копирования содержимого почтового ящика на локальный жесткий диск. При этом происходит обмен командами, аналогичными показанным в листинге 7.4. По окончании передачи электронной почты ТСР-соединение разрывается. На самом деле в тот же момент можно разорвать и соединение с провайдером, по­скольку вся почта уже находится на жестком диске у Кэролайн. Конечно, чтобы отправить ответ на письма, Кэролайн придется снова соединяться с провайде­ром, поэтому не всегда пользователи разрывают соединение сразу после загруз­ки почты.

IMAP

Пользователю, имеющему одну учетную запись у одного провайдера и всегда соединяющемуся с провайдером с одной и той же машины, вполне достаточно протокола РОРЗ. Этот протокол и используется повсеместно благодаря его про­стоте и надежности. Однако в компьютерной индустрии есть такое незыблемое правило: если имеется нечто, что работает безупречно, всегда найдется некто, ко­торый захочет снабдить это нечто дополнительными возможностями (и тем са­мым снабдить его ошибками). Так произошло и с электронной почтой. У многих пользователей есть одна учетная запись в учебном заведении или на работе, но они хотят иметь доступ к ней и из дома, и с работы (учебы), и во время поездок (с портативного компьютера), и из интернет-кафе во время так называемого отпуска. Хотя РОРЗ и предоставляет возможность разрешения такой ситуации (так как с его помощью все могут получить всю хранящуюся почту), но проблема в том, что корреспонденция пользователя очень быстро распространится более или менее случайным образом по всем машинам, с которых он получает доступ в Интернет, и некоторые из этих машин могут даже не принадлежать этому пользо­вателю.

Это неудобство привело к созданию альтернативного протокола доставки со­общений, IMAP (Interactive Mail Access Protocol — протокол интерактивного доступа к электронной почте), определенного в RFC 2060. В отличие от протоко­ла РОРЗ, который подразумевает, что пользователь будет очищать почтовый ящик после каждого контакта с провайдером и будет работать с почтой в отклю­ченном режиме, протокол IMAP предполагает, что вся почта будет оставаться в почтовых ящиках на сервере неограниченно долго. IMAP обладает широким на­бором механизмов для чтения сообщений или даже частей сообщений. Такое свой­ство полезно при использовании медленных модемов, поскольку можно про­честь только текстовую часть письма, к которому приложены большие видео- и аудиофрагменты. Поскольку основное предположение состоит в том, что пользо­ватель не будет копировать на свой компьютер письма, в IMAP входят также ин­струменты для создания, удаления и других видов управления почтовыми ящика­ми, размещающимися на сервере. Таким образом, пользователь может завести собственный почтовый ящик для каждого лица, с которым ведется переписка, и переносить сообщения из почтового ящика для всех входящих писем в эти пер­сональные ящики.

Протокол IMAP обладает разнообразными возможностями, например, способ­ностью упорядочивать почту не по порядку ее поступления, как показано в табл. 7.3, а по атрибутам писем (например, «сначала дайте мне письмо от Бобби»), В отли­чие от РОРЗ, IMAP может заниматься как доставкой исходящей почты от поль­зователя в направлении места назначения, так и доставлять входящую почту пользователя.

В целом стиль протокола IMAP подобен РОРЗ, пример работы которого по­казан в листинге 7.4. Различаются они количеством команд — в IMAP их десят­ки. Сервер IMAP прослушивает порт 143. Сравнение протоколов РОРЗ и IMAP приведено в табл. 7.8. Следует заметить, что не все провайдеры и не все програм­мы работы с электронной почтой поддерживают оба протокола. Поэтому, выби­рая программу и провайдера, следует выяснить, могут ли они работать хоть с од­ним из этих протоколов, и если да, то с какими именно протоколами.

Таблица 7.8. Сравнение протоколов РОРЗ и IMAP Свойство РОРЗ   IMAP

Где определен                                    RFC 1939                                  RFC 2060

Используемый порт TCP                  110                                             143

Место хранения почты                      ПК пользователя                      Сервер

Способ чтения почты                         В автономном режиме            В подключенном режиме

Требуемое время нахождения         Небольшое                               Большое на линии

возможность

Свойство

РОРЗ

IMAP

Использование ресурсов сервера

Минимальное

Значительное

Поддержка нескольких почтовых ящиков

Отсутствует

Есть

Кто делает резервные копии почтовых ящиков

Пользователь

Провайдер

Удобство для мобильных пользователей

Нет

Да

Контроль загружаемой почты пользователем

Низкий

Полный

Возможность частичной загрузки сообщений

Нет

Есть

Наличие проблем с нехваткой места на диске

Нет

Есть

Простота реализации

Да

Нет

Популярность

Широкая

Растет