Статья в Энциклопедическом Фонде

Протокол IMAP

Работа протокола IMAP
Протокол IMAP (от англ. Internet Message Access Protocol - протокол доступа к электронной почте) - позволяет работать с электронными письмами на сервере так, будто они находятся на вашей машине. Также, протокол позволяет работать с почтовым ящиком сразу нескольким пользователям. Протокол является одним из первых "облачных" протоколов интернета.

История

Протокол разработал Марк Криспин в 1986 году в качестве альтернативы POP3. Первая версия IMAP официально оформлена в качестве стандарта Internet был IMAP версии 2 (IMAP2) в RFC 1064, опубликовано в июле 1988 года.Был обновлен в RFC 1176, август 1990 года, сохранив тот же номер версии. Тем не менее, некоторые люди, связанные с IMAP не были довольны RFC 1176, поэтому они создали новый документ, определяющий версию 3 IMAP (IMAP3): RFC 1203, опубликованный в феврале 1991 года. Это описывается ее авторами как "встречное предложение".
Однако, по какой-то причине,IMAP3 никогда не была принята на рынке. Вместо этого люди продолжали использовать IMAP2. Позже было выпущено расширение под названиемIMAP2bis, которое добавило поддержку MIME для IMAP. Это было важным событием в связи с полезностью MIME, также были созданы многие другие реализации IMAP2bis. Несмотря на это, IMAP2bis никогда не был опубликован в качестве RFC. "bis" является латинским словом, означающим "снова". Это иногда используется, чтобы дифференцировать измененные технические документы из своих предыдущих версий, когда нет "официального" нового номера версии.
В декабре 1994 года, IMAP версии 4 (IMAP4) был опубликован в двух документах RFC: RFC 1730, описывающий основной протокол, и RFC 1731, описывающий механизм аутентификации для протокола IMAP4. IMAP4 является текущей версией IMAP и широко используется и сегодня. Последний конкретный вариант на самом деле называется версия 4rev1 (IMAP4rev1), определен в RFC 2060, а затем совсем недавно RFC 3501. Большинство людей до сих пор просто называет это "IMAP4".

Работа протокола

IMAP делает ту же самую основную работу как POP: позволяет получить доступ к почтовому ящику, хранящемуся на удаленном сервере. Тем не менее, IMAP имеет гораздо больше функций и возможностей, чем POP. Таким образом IMAP является более сложным.
IMAP4 является стандартным протоколом клиент/сервер, как POP3 и большинство других протоколов TCP/IP приложений. Для функционирования протокола, IMAP4 должен работать на сервере, где расположены почтовые ящики пользователей. Опять же, как с POP3, это не обязательно должен быть тот же самый физический сервер как тот, что обеспечивает сервис SMTP.Почтовый ящик должен быть доступным как SMTP для входящей почты и IMAP4 для извлечения и модификации сообщений. Механизм для обеспечения монопольного доступа, чтобы избежать интерференции между различными протоколами, также необходим.
IMAP4 использует протокол управления передачей (TCP) для связи. Это гарантирует, что все команды и данные передаются надежно и получены в правильном порядке. IMAP4-серверы прослушивают хорошо известный порт 143 для входящих запросов на соединение от клиентов IMAP4. После установления TCP соединения начинается IMAP4 сессия.

IMAP Команды, результаты и Ответы

После того, как IMAP устанавливает сеанс, все связи между клиентом и сервером происходят в форме команд, посылаемых клиентом, и ответов, возвращаемых сервером. Как POP3, команды и ответы передаются в виде строк текста ASCII и прекращается с последовательностью "CRLF", что делает их совместимыми с тем, как данные посылаются с помощью Telnet протокол. Тем не менее, IMAP делает несколько вещей совершенно иначе, чем POP и многие другие протоколы TCP/IP приложений.
Первым правилом команд IMAP является то, что большинство из них не сокращаются до трех или четырех букв - они изложены в полном объеме. Итак, где POP3 имеет команду STAT, в IMAP называется STATUS. Команды, как правило, вводятся в верхнем регистре, но на самом деле не чувствительны к регистру.
IMAP4 сессия начинается с IMAP4 клиента, устанавливающего соединение TCP с сервером IMAP4. При нормальных обстоятельствах сервер IMAP4 не имеет ни малейшего представления, кем является клиент, и поэтому начинает соединение без аутентификации. По соображениям безопасности, клиент не может делать ничего, пока он не пройдет проверку подлинности. Таким образом, единственная цель этого состояния, позволить клиенту предоставить действительные учетные данные, чтобы сессия могла пройти аутентификацию.

IMAP команды проверки подлинности

Стандарт IMAP4 определяет три различных механизма, посредством которых клиент может идентифицировать себя. Использование одной или более из трех разных команд допускается только в состоянии "не аутентифицирован".

LOGIN - задает имя пользователя и пароль для аутентификации;

AUTHENTICATE - сообщает серверу, что клиент хочет использовать определенный механизм аутентификации и запрашивает у клиента и сервера данные для информационного обмена аутентификации, подходящей для этого механизма.

STARTTLS - Сообщает IMAP4-сервер что будет использоватьTransportLayerSecurity (TLS) протокол для аутентификации, и предлагает TLS начать переговоры.

Используемые источники
1. http://en.wikipedia.org/
2. http://opds.sut.ru/old/electronic_manuals/mail/5_IMAP.htm
3. http://www.tcpipguide.com/
4. http://www.intuit.ru/
5. http://book.itep.ru/4/44/imap4443.htm

Энциклопедический Фонд