Перевод с добавлениями Алексея Мельникова, Сервер компании Epsylon Technologies
Оригинал статьи 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 парадигмами:
Основное преимущество online парадигмы состоит в том, что почтовые ящики с входящей и архивной почтой хранятся на сервере и к ним можно единообразно получить доступ с различных компьютеров в различное время. И всё это можно осуществлять без использования протоколов общего доступа к файлам (эти протоколы существуют далеко не на каждой платформе, могут уступать в производительности и вызывать проблемы блокировки файлов (file locking). Всё это не нужно для тех пользователей, которые всегда использует один и тот же компьютер для доступа к почте, но становится очень важным для тех, кто использует несколько компьютеров.
Приведём теперь краткое сравнение протоколов POP3 и IMAP4
А теперь подробнее:
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 в трех областях:
Описание 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 доступа).
* - добавления переводчика