[главная страница]
[как выбрать] [дом и семья] [авто - мото] [бизнес и работа] [развлечения] [любовь]
[как сделать] [компьютеры] [интернет] [интересное] [спорт] [дети]

как работает протокол POP3


как обезвредить плохие приметы
как обустроить детскую комнату
как жили спартанцы
как к нам пришел день святого валентина


Post Office Protocol (POP) - протокол доставки почты пользователю из почтового ящика почтового сервера рор . многие концепции, принципы и понятия протокола POP выглядят и функционируют подобно SMTP. команды POP практически идентичны командам SMTP, отличаясь в некоторых деталях. на рисунке изображена модель клиент-сервер по протоколу POP. сервер POP находится между агентом пользователя и почтовыми ящиками.

POP3

в настоящее время существуют две версии протокола POP - рор2 и рорз, обладающими примерно одинаковыми возможностями, однако несовместимыми друг с другом. дело в том, что у рор2 и рорз разные номера портов протокола. между ними отсутствует связь, аналогичная связи между SMTP и ESMTP. протокол рорз не является расширением или модификацией рор2 - это совершенно другой протокол. рор2 определен в документе RFC 937 (Post Office Protocol-Version 2, Butler, et al, 1985), a рорз - в RFC 1225 (Post Office Protocol-Version 3, Rose, 1991). далее кратко рассмотрим POP вообще и более подробно - рорз. Pорз разработан с учетом специфики доставки почты на персональные компьютерыы и имеет соответствующие операции для этого.

назначение протокола рорз

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

описание протокола рорз

конструкция протокола рорз обеспечивает возможность пользователю обратиться к своему почтовому серверу и изъять накопившуюся для него почту. пользователь может получить доступ к рор-серверу из любой точки доступа к интернет. при этом он должен запустить специальный почтовый агент (UA), работающий по протоколу рорз, и настроить его для работы со своим почтовым сервером. итак, во главе модели POP находится отдельный персональный компьютеры, работающий исключительно в качестве клиента почтовой системы (сервера). подчеркнем также, что сообщения доставляются клиенту по протоколу POP, а посылаются по-прежнему при помощи SMTP. то есть на компьютерые пользователя существуют два отдельных агента-интерфейса к почтовой системе - доставки (POP) и отправки (SMTP). разработчики протокола рорз называет такую ситуацию "раздельные агенты" (split UA). концепция раздельных агентов кратко обсуждается в спецификации рорз.

в протоколе рорз оговорены три стадии процесса получения почты: авторизация, транзакция и обновление. после того как сервер и клиент рорз установили соединение, начинается стадия авторизации. на стадии авторизации клиент идентифицирует себя для сервера. если авторизация прошла успешно, сервер открывает почтовый ящик клиента и начинается стадия транзакции. в ней клиент либо запрашивает у сервера информацию (например, список почтовых сообщений), либо просит его совершить определенное действие (например, выдать почтовое сообщение). наконец, на стадии обновления сеанс связи заканчивается. в табл.7 перечислены команды протокола рорз, обязательные для работающей в интернет реализации минимальной конфигурации.

таблица 5. команды протокола POP версии 3 (для минимальной конфигурации)

команда
описание

USER идентифицирует пользователя с указанным именем

PASS
указывает пароль для пары клиент-сервер
QUIT
закрывает TCP-соединение

STAT
сервер возвращает количество сообщений в почтовом ящике плюс размер почтового ящика

LIST
сервер возвращает идентификаторы сообщений вместе с размерами сообщений (параметром команды может быть идентификатор сообщения)

RETR
извлекает сообщение из почтового ящика (требуется указывать аргумент-идентификатор сообщения)

DELE
отмечает сообщение для удаления (требуется указывать аргумент - идентификатор сообщения)

NOOP
сервер возвращает положительный ответ, но не совершает никаких действий

LAST
сервер возвращает наибольший номер сообщения из тех, к которым ранее уже обращались

RSET
отменяет удаление сообщения, отмеченного ранее командой DELE

в протоколе рорз определено несколько команд, но на них дается только два ответа: +ок (позитивный, аналогичен сообщению-подтверждению асK) и -ERR (негативный, аналогичен сообщению "не подтверждено" NAK). оба ответа подтверждают, что обращение к серверу произошло и что он вообще отвечает на команды. как правило, за каждым ответом следует его содержательное словесное описание. в RFC 1225 есть образцы нескольких типичных сеансов рорз. сейчас мы рассмотрим несколько из них, что даст возможность уловить последовательность команд в обмене между сервером и клиентом.

авторизация пользователя

после того как программа установила TCP-соединение с портом протокола рорз (официальный номер 110), необходимо послать команду USER с именем пользователя в качестве параметра. если ответ сервера будет +ок, нужно послать команду PASS с паролем этого пользователя:

CLIENT: USER kcope
ERVER: +ок
CLIENT: PASS secret
SERVER: +ок kcope's maildrop has 2 messages (320 octets)
(в почтовом ящике kcope есть 2 сообщения (320 байтов) ...)

транзакции рорз

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

команда STAT возвращает количество сообщений и количество байтов в сообщениях:

CLIENT: STAT
SERVER: +ок 2 320

команда LIST (без параметра) возвращает список сообщений в почтовом ящике и их размеры:

CLIENT: LIST
SERVER: +ок 2 messages (320 octets)
SERVER: 1 120
SERVER: 2 200
SERVER: . ...

команда LIST с параметром возвращает информацию о заданном сообщении:

CLIENT: LIST 2
SERVER: +ок 2 200 ...
CLIENT: LIST 3
SERVER: -ERR no such message, only 2 messages in maildrop

команда TOP возвращает заголовок, пустую строку и первые десять строк тела сообщения:

CLIENT: TOP 10
SERVER: +ок
SERVER: <the POP3 server sends the headers of the message,a blank line, and the first 10 lines of the message body>
(сервер POP высылает заголовки сообщений, пустую строку и первые десять строк тела сообщения)
SERVER: . ...
CLIENT: TOP 100
SERVER: -ERR no such message
команда NOOP не возвращает никакой полезной информации, за исключением позитивного ответа сервера. однако позитивный ответ означает, что сервер находится в соединении с клиентом и ждет запросов:

CLIENT: NOOP
SERVER: +ок

следующие примеры показывают, как сервер POP3 выполняет действия. например, команда RETR извлекает сообщение с указанным номером и помещает его в буфер местного UA:

CLIENT: RETR 1
SERVER: +OK 120 octets
SERVER: <the POPS server sends the entire message here>
(рорз-сервер высылает сообщение целиком)
SERVER: . . . . . .

команда DELE отмечает сообщение, которое нужно удалить:

CLIENT: DELE 1
SERVER: +OK message 1 deleted ...
(сообщение 1 удалено)
CLIENT: DELE 2
SERVER: -ERR message 2 already deleted
сообщение 2 уже удалено)
команда RSET снимает метки удаления со всех отмеченных ранее сообщений:

CLIENT: RSET
SERVER: +OK maildrop has 2 messages (320 octets)
(в почтовом ящике 2 сообщения (320 байтов) )

как и следовало ожидать, команда QUIT закрывает соединение с сервером:

CLIENT: QUIT
SERVER: +OK dewey POP3 server signing off
CLIENT: QUIT
SERVER: +OK dewey POP3 server signing off (maildrop empty)
CLIENT: QUIT
SERVER: +OK dewey POP3 server signing off (2 messages left)

обратите внимание на то, что отмеченные для удаления сообщения на самом деле не удаляются до тех пор, пока не выдана команда QUIT и не началась стадия обновления. в любой момент в течение сеанса клиент имеет возможность выдать команду RSET, и все отмеченные для удаления сообщения будут восстановлены.

источник: http://www.mailinfo.ru