Кратко
- Успешный
DELEблокировал номер в текущей транзакции, но письмо сохранялось, аRSETснимал все метки. - Только клиентский
QUITиз TRANSACTION переводил сеанс в UPDATE. Аварийный разрыв и таймер бездействия закрывали соединение без удаления. - RFC 1939 не обещал атомарности: нехватка ресурсов могла удалить несколько отмеченных писем и оставить остальные.
Слово «удалено» описывало подготовку
RFC 1081 уже в 1988 году разделял AUTHORIZATION, TRANSACTION и UPDATE. После проверки клиента сервер открывал maildrop, получал необходимую исключительную блокировку и нумеровал текущий набор.
DELE 4 ставил метку на четвёртую позицию. Новая команда к этому номеру получала ошибку, но объект ещё существовал. В TRANSACTION команда RSET могла снять все метки. Поэтому первый +OK доказывал принятие намерения в рамках сеанса, а не освобождение хранилища.
Блокировка сохраняла смысл номеров до UPDATE. Она не делала позицию постоянной идентичностью и не отменяла политику хранения. RFC 1225 и RFC 1460 сохранили порядок: отметить, отменить, войти в UPDATE через QUIT, удалить, освободить блокировку, ответить и закрыть.
Исчезновение соединения не заменяло согласие
RFC 1725 прямо потребовал: завершение по любой причине, кроме отправленного клиентом QUIT, не входит в UPDATE и не удаляет сообщения. Автовыход по бездействию действует так же.
Это защищает промежуток между сетевым приёмом и надёжной локальной записью. Последний октет мог прийти, но диск или процесс ещё могли отказать. Если бы TCP-разрыв считался разрешением на удаление, тот же сбой уничтожил бы восстанавливаемый оригинал.
QUIT в AUTHORIZATION только завершает сеанс. В TRANSACTION он открывает UPDATE, потому что уже есть защищённый maildrop и возможные метки. Полномочие задаёт команда вместе с состоянием.
UPDATE ограничивал множество, но не гарантировал всё или ничего
RFC 1939 допускает, что при нехватке ресурсов будут удалены некоторые отмеченные сообщения или ни одного. Ответ -ERR some deleted messages not removed признаёт частичный исход. Неотмеченные письма удалять нельзя; после результата сервер освобождает блокировку и закрывает соединение.
Если финальный ответ потерян, клиент не различит полный, частичный и не начавшийся UPDATE. Повторять старый номер после нового входа опасно: позиция 4 могла перейти к другой сущности. UIDL помогает сопоставить оставшиеся письма, но не доказывает причину отсутствия; могла сработать другая сессия или политика сайта.
RFC 2449 разрешил при EXPIRE 0 считать полученные через RETR письма неявно помеченными, когда сеанс входит в UPDATE. Политика расширила набор, но не перенесла удаление на момент скачивания или обрыва.
Реестр IANA закрепляет pop3 за портом 110, но не измеряет современное применение или соответствие серверов.
Историческая дисциплина POP3 состояла в разделении четырёх фактов: метка, попытка UPDATE, увиденный ответ и состояние после сверки.
Источники
Обзор для участников
Подробный контекст профиля
Войдите с подходящим уровнем подписки, чтобы открыть полный обзор и примечания к источникам.
Только для Стратегического сообщества
Стратегическое сообщество
Открыто всем читателям. Вступите и войдите, чтобы открыть обзоры профилей.
Вступить в Стратегическое сообществоТолько для Альянса лидеров
Альянс лидеров
Для проверенных владельцев IP-активов и руководителей. Войдите, чтобы открыть обзоры Альянса.
Вступить в Альянс лидеров
