Перевод Алексея Мельникова
Оригинал статьи Terry Gray "Comparing Two Approaches to
Remote Mailbox Access: IMAP vs. POP" Director, Networks &
Distributed Computing (С) 1996, University of Washington
В настоящее время существует несколько различных подходов для
построения распределённой почтовой инфраструктуры. Среди них: стратегия
разделяемой файловой системы, частные LAN-ориентированные протоколы, X.400 P7
протокол и Internet протоколы для доступа к сообщениям. Цель данной статьи -
кратко рассмотреть Internet протоколы: POP (Post Office Protocol), DMSP
(Distributed Mail System Protocol) и IMAP (Internet Message Access Protocol). Из
трёх вышеперечисленных, POP наиболее старый и поэтому самый известный. DMSP
сильно ограничен в использовании, так как реализован только в одной программе
PCMAIL и в первую очередь известен своей блестящей поддержкой отсоединённых
(disconnected) операций. IMAP (на данный момент IMAP4 revision 1) предоставляет
надмножество возможностей POP и DMSP, и предлагает хорошую поддержку всех трёх
моделей доступа к удалённому почтовому ящику: offline, online и отсоединённый
(disconnected). (См. определения в RFC-1733.)
POP был разработан для поддержки offline обработки почты.
Согласно offline парадигме почта доставляется на (обычно разделяемый) сервер, а
пользователь ПК периодически запускает почтового клиента, который соединяется с
сервером и выкачивает всю новую почту на ПК. Вся обработка почты, например её
фильтрация, происходит на локальной машине.
Об offline доступе можно думать как о сервисе "хранения и
пересылки" (store-and-forward service), предназначенном для пересылки почты
(по требованию) с почтового сервера на единственную конечную машину, обычно ПК
или Mac. Однажды доставленные на конечную машину, сообщения удаляются с
почтового сервера. Хотя ограничения offline доступа могут быть скомпенсированы
использованием POP в online режиме, POP просто-напросто не имеет некоторой
функциональности, требуемой для высококачественного online (или отсоединённого)
доступа. В действительности, псевдо-онлайн режим доступа, поддерживаемый POP3,
который заключается в том, что пользователь оставляет почту на сервере, часто
требует наличие широко распространенного файлово-ориентированного протокола
(remote file system protocol), для того, чтобы почтовый клиент сумел обновить
почтовый ящик или установить флаги сообщения.
IMAP также может применяться для offline доступа, но его мощь
проявляется в первую очередь при online и disconnected доступе. В случае online
доступа, почта также доставляется на разделяемый сервер, но клиент уже не
осуществляет копирование всей почты зараз с последующим ее удалением с сервера.
Online подход более клиент-серверный. В случае online доступа клиент может
запросить у сервера заголовок сообщения или запросить поиск сообщения по
некоторому критерию. Письма в хранилище сообщений могут быть помечены различными
флагами статуса (например, письмо помечено для удаления или на него был послан
ответ) и эти отметки сохраняются до тех пор пока не будут явно удалены
пользователем (что может не произойти до следующей сессии). Если сказать
вкратце, то IMAP позволяет манипулировать удаленными почтовыми ящиками, как
будто они являются локальными. В зависимости от реализации IMAP клиента и
почтовой архитектуры, которую пожелал иметь управляющий почтовой системой,
пользователь может сохранять сообщения только на клиентской машине, только на
сервере или иметь выбор сделать и то и другое.
Как offline, так и online почтовые программы позволяют получить
доступ к новым поступающим сообщениям на почтовом сервере с различных клиентских
платформ. Однако на этом их сходство заканчивается. Эти две парадигмы отражают
различные требования и стили использования, и они не очень хорошо комбинируются
друг с другом. Offline доступ лучше подходит для людей, которые всегда
используют единственную клиентскую машину. Он не очень хорошо подходит для таких
задач как доступ к чьему-либо ящику входящих писем или ящикам с сохраненной
корреспонденцией с различных машин в различное время. Все это можно объяснить
тем, что при использовании offline ("скачал и удалил") доступа к почте
с различных компьютеров, Ваша почта рассеивается по различным машинам, если
только они не объединены общей файловой системой (в последнем случае Вы на самом
деле имеете доступ в большей мере online, чем offline). С другой стороны,
хорошим качеством offline доступа является то, что он минимизирует использование
серверных ресурсов и время соединения, если используется удаленный доступ по
модему. Суммируя всё вышесказанное, можно привести различия между online и
offline парадигмами:
- Offline и online парадигмы отражают два различных способа использования
почтового сервера:
- Offline = скачивание почты по требованию на единственную клиентскую машину.
- Online = интерактивный доступ к множеству почтовых ящиков со стороны многих
клиентов.
- Преимущества offline парадигмы:
- Минимальное время соединения с сервером.
- Минимальное использование серверных ресурсов.
- Преимущества online парадигмы:
- Способность использовать разные компьютеры в разное время.
- Способность использовать "облегчённые" ("data-less")
клиентские машины.
- Платформо-независимый доступ к нескольким почтовым ящикам.
- Возможность одновременного доступа к разделяемым почтовым ящикам.
Основное преимущество online парадигмы состоит в том, что
почтовые ящики с входящей и архивной почтой хранятся на сервере и к ним можно
единообразно получить доступ с различных компьютеров в различное время. И всё
это можно осуществлять без использования протоколов общего доступа к файлам (эти
протоколы существуют далеко не на каждой платформе, могут уступать в
производительности и вызывать проблемы блокировки файлов (file locking). Всё это
не нужно для тех пользователей, которые всегда использует один и тот же
компьютер для доступа к почте, но становится очень важным для тех, кто
использует несколько компьютеров.
Приведём теперь краткое сравнение протоколов POP3 и IMAP4
- Характеристики, общие для обоих протоколов
- Оба поддерживают offline доступ
- Почта доставляется на общий, всегда работающий почтовый сервер
- Новая почта доступна с большего числа клиентских платформ и из любого места
в сети
- Протоколы открыты и стандартизованы (в Интернет есть соответствующие RFC)
- Существуют и доступны всевозможные реализации, как клиентов, так и серверов
(даже в исходниках)
- Существуют клиенты для PC, Mac и Unix
- Существуют коммерческие реализации
- Ориентированы на Интернет, не требуют почтовых шлюзов SMTP
- Оба протокола ориентированны только на считывание почты, для отсылки оба
используют SMTP
- Оба протокола поддерживают постоянные ID сообщений (POP3 - не все сервера),
которые используются для disconnected доступа
- Преимущества POP3
- Легче реализовать
- Больше клиентов существует на данный момент
- Преимущества IMAP4
- Может манипулировать постоянными флагами сообщений (Seen, Draft,
Deleted,...) .
- Может, как хранить сообщения, так и скачивать их. Есть возможность
добавления сообщений в почтовый ящик.
- Может работать с множеством почтовых ящиков (возможно даже иерархических).
- Может поддерживать параллельный доступ к почтовым ящикам и параллельное их
обновление.
- Подходит для доступа к не почтовым данным, например к Usenet новостям или
документам.
- Может использовать offline доступ, для уменьшения времени соединения и
используемого дискового пространства.
- Позволяет осуществлять поиск писем на сервере.
- Есть возможность скачать часть письма, причём можно скачать фрагмент начиная
с любого места и любой длины.
- Разработан специально для повышения производительности online доступа,
особенно для медленных соединенией.
- IMAP4 rev 1 поддерживает стандарт Unicode (почтовые ящики с Unicode именами,
поиск сообщений)
- Существует стандартизированный способ расширения базового протокола. В
частности есть расширения для управления квотами пользователей и их правами
доступа к чужим или разделяемым почтовым ящикам. *
- Существуют "протоколы-компаньоны" (IMSP и его приемник ACAP) для
хранения и манипулирования настройками пользователей.
А теперь подробнее:
IMAP может манипулировать постоянными флагами статуса
сообщения, включающих "Seen", "Deleted",
"Answered", а так же определенные пользователем флаги. IMAP позволяет
хранить сообщения, а так же получать их с сервера. Пользователь может добавить
сообщение из ящика входящих сообщений в архивный ящик (или наоборот) С помощью
IMAP клиент может иметь доступ и управлять несколькими почтовыми ящиками. Это
включает в себя как возможность именовать и получать доступ к различным архивным
ящикам и ящикам для входящей почты, так и способность получать их список,
создавать, удалять и переименовывать их. Эти почтовые ящики могут находиться как
на одном, так и на разных почтовых серверах. IMAP клиент может позволить видеть
их все одновременно и перемещать сообщения из одного ящика в другой.
IMAP может позволять одновременный доступ и обновление общих
почтовых ящиков. Эта способность удобна в случае если несколько клиентов
обрабатывают сообщения, приходящие в общий inbox. Все активные клиенты
оповещаются об изменениях состояния почтового ящика через IMAP.
IMAP можно использовать для доступа к не почтовым данным,
например к News-группам. Это удобно с точки зрения унификации метода доступа к
различным классам информации. IMAP также поддерживает offline парадигму, которая
позволяет экономить время соединения с сервером и серверные ресурсы. Offline
доступ удобно использовать в ситуациях, когда доступ к серверу происходит только
по дорогому коммутируемому соединению и многоплатформенный доступ к какому-либо
почтовому ящику не требуется. Также выгодно использовать такой доступ, в случае
если клиентская машина богата ресурсами, а сервер беден.
Не все IMAP клиенты предлагают поддержку offline режима, но
протокол это позволяет в полной мере. Для IMAP существует протокол-компаньон,
предназначенный для управления настройками пользователей, который называется
IMSP, Internet Message Support Protocol. IMSP позволяет независимый от
расположения (многоплатформенный) доступ к персональным настройкам пользователя,
например к адресной книге. [Его потомок ACAP позволяет хранить также настройки
для серверов, групп пользователей. ACAP специально оптимизирован для уменьшения
количества пересылаемых по сети данных, имеет богатые возможности по поиску на
стороне сервера, позволяет управлять правами доступа к данным.*]
IMAP имеет конструкции для оптимизации online доступа, в
особенности по низкоскоростным каналам. Эти конструкции включают возможность
получить структуру сообщения не скачивая его целиком на клиентскую машину,
избирательное скачивание частей сообщения и способность использовать сервер для
поиска, с целью уменьшения количества передаваемых данных между клиентом и
сервером. Очень полезным бывает отложить пересылку до подходящего момента
некоторых сообщений или их частей [с сервера на клиентскую машину], если
сообщения не представляют непосредственного интереса. Особенно это удобно в
случае, когда соединение с сервером происходит по низкоскоростному каналу связи.
В случае если сообщение содержит прикрепленные документы или мультимедиа данные,
передача только части сообщения может оказаться большим преимуществом. Это можно
достаточно наглядно ощутить, например, если Вы находитесь в гостинице и Вам
присылают короткое сообщения с присоединенным 10Mb видео клипом.
Эффективная обработка MIME сообщений является значимым
преимуществом IMAP над POP. (MIME - это Multipurpose Internet Mail Extensions.
Это Internet стандарт для кодирования сообщений, содержащих произвольные
присоединенные файлы. После кодирования сообщений MIME их можно посылать с
помощью SMTP.)
Подытожив, можно сказать, что IMAP выигрывает у POP в трех
областях:
- более богатая функциональность для манипулирования почтовым ящиком
- возможность управлять несколькими почтовыми ящиками, а не одним
- примитивы для оптимизации производительности online доступа, особенно если
дело касается больших MIME сообщений.
В связи с тем, что существуют
свободно распространяемые IMAP библиотеки для разработчиков, то сложность IMAP
не должна быть значительным препятствием. Таким образом, получается, что
единственным преимуществом POP над IMAP является наличие большего числа
реализаций, как клиентов, так и серверов. Эта ситуация будет продолжаться
недолго и со временем IMAP должен вытеснить POP.
Описание POP3 можно найти в RFC-1939. IMAP4 описан в RFC-2060.
Список IMAP программного обеспечения можно найти по адресу http://www.imap.org/products.html,
а список документов, имеющих отношение к IMAP можно найти http://www.imap.org/biblio.html.
Кроме того, по адресу ftp://ftp.cac.washington.edu можно
найти POP сервер, который, кроме стандартных POP возможностей, позволяет
перенаправлять команды на IMAP сервер, таким образом, предлагая существующим POP
клиентам получить доступ к IMAP серверу.
Также потенциальный интерес могут представлять: http://www.imap.org/imap.docs.html
(подборка IMAP документов) и Message Access Paradigms and
Protocols (данный документ является более полным описанием изложенных в
статье идей, кроме того в нем детально описана терминология и предоставлена
информация о протоколах POP и IMAP в контексте online доступа).
* - добавления переводчика
Литература по Internet
|