Если адрес сервера и порт указаны правильно, а сам сервер не находится в глубоком «дауне», через некоторое время (в зависимости от загруженности и скорости канала связи) будет установлено TCP-соединение, и на экране появится приветствие, приглашающее к началу работы (смотри рисунок 000).
Содержимое приветствия может варьироваться в широких пределах. Так, например, в приведенном примере сервер возвратил название и версию реализации программного обеспечения.
С этого момента сервер готов принимать запросы пользователя, если же тот в течение длительного времени не проявит никакой активности, соединение будет разорвано (на жаргоне это звучит «выгнали по тайм-ауту»). Чаще всего время бездействия ограничивается десятью минутами, но администраторы некоторых интенсивно используемых серверов, иногда уменьшают его до десятков секунд!
В дальнейшем, дабы не приводить расточительные копии экрана, в книге будет использоваться содержимое окна telnet, представленное в удобочитаемой текстовой форме. Во избежание путаницы, команды, набираемые пользователем, будут выделяться
Сразу же с момента выдачи приглашения сервер переходит в состояние аутентификации (
· +OK QPOP (version 2.52) at mail.computerra.ru starting.
· +OK Password required for user ORION
Если сервер подтверждает наличие указанного пользователя в системе, он требует сообщить пароль. Для передачи пароля предусмотрена команда “PASS”. В отличие от имени пользователя, пароль необходимо вводить с соблюдением регистра - в большинстве случаев (но не всегда) строчечные и заглавные символы различаются. Ниже приведен пример аутентификации пользователя с регистрационным именем “Orion” и паролем “Ngc1976”:
· +OK QPOP (version 2.52) at mail.computerra.ru starting.
· +OK Password required for user ORION
· PASS Ngc1976
· +OK ORION's maildrop has 4 messages (789046 octets)
Если сервер подтверждает корректность пароля, он открывает доступ к ящику и сразу же информирует о его состоянии. В приведенном выше примере в ящике содержатся четыре письма с общим объемом в 789 046 байт [190].
При перегрузке сервер может разорвать соединение, попросив пользователя повторить попытку немного позже.
Например:
· -ERR Unable to service you now. Try again later. If problem persist, contact system administrator
Иногда, по каким-то причинам почтовый ящик бывает временно недоступен. К примеру, при разрыве соединения, сессия с пользователем может удерживаться до десяти (а иногда и свыше тридцати!) минут - в течение этого времени попытки входа на ящик будут блокироваться.
В случае несовпадения пароля сервер, выдержав паузу (предусмотренную для предотвращения перебора паролей), сообщит об ошибке и разорвет соединение. Например, это может выглядеть так:
· +OK QPOP (version 2.52) at mail.computerra.ru starting.
· +OK Password required for user ORION
· -ERR Password supplied for "ORION" is incorrect
С момента подтверждения корректности пароля, сервер переходит в, так называемое, состояние транзакции (
С пересылкой сообщений связано одно существенное ограничение протокола POP3, которое особенно неприятно для неанглоязычных корреспондентов. Стремясь увеличить скорость обмена между сервером и клиентом, американские разработчики (а протокол POP3 разработали именно они) решили пожертвовать одним битом, отводя на каждый символ
По причине семибитной кодировки протокола POP3 объем сообщений стало удобнее измерять не в байтах, а в октетах. Следующий пример позволяет продемонстрировать, в чем заключается различие.
Пусть, передается приветствие “Hello, my world!”, занимающее шестнадцать байт. Но, в силу обрезания одного бита, по сети физически будет передан о только 16 х 7 = 112 бит или 112 / 8 = 14 - четырнадцать октетов.
Тем не менее, это не мешает считать байты и октеты тождественно равными друг другу, если идет речь об объеме информации, передаваемой от одного узла к другому. Технически безграмотно, но удобно.
Английский алфавит вместе со всеми спецсимволами и знаками препинания полностью умещается в первой половине таблицы ASCII, но передача кириллицы приводит к значительным искажениям текста: в каждом символе старший бит окапается обрезанным.
Например:
· Исходный текст:
· Я Крипер… поймай меня, если сможешь
· Тот же текст, в каждом байте которого, обрезан старший бит:
· X x`(/%`… /.),),%-o, %a+(a,. amp;%hl