Кратко
DELEставит метку в заблокированном состоянии TRANSACTION;RSETснимает все метки до нормального выхода.- Только клиентский
QUITиз TRANSACTION открывает UPDATE. Аварийный обрыв ничего не удаляет, но ошибка внутри UPDATE способна оставить частичный результат.
Оборванная линия не могла дать согласие
Компьютер по модему получает письма и просит убрать оригиналы. До записи последнего на диск линия падает. Мгновенный DELE позволил бы одной неисправности и сорвать локальное хранение, и уничтожить серверную копию.
POP3 разделил намерение и эффект. После DELE номер недоступен последующим командам сеанса, но данные остаются в maildrop. RSET убирает метки. Лишь QUIT из рабочего состояния переводит в UPDATE и разрешает физическую попытку.
Сервер знает об отправленных байтах, но не о надёжности чужого диска. Нормальное окончание стало общим ограниченным сигналом. Молчание TCP и таймаут не получают разрушительной власти.
Подтверждение приёма появилось раньше POP3
RFC 918 в 1984 году разделял RETR и RDEL. После данных клиент посылал RCVD, и только затем сервер пытался удалить; RSET отменял операцию и освобождал ящик.
В POP2 RFC 937 команда ACKD подтверждала приём и ставила метку. Реальное изменение ожидало освобождения ящика в конце сеанса или при выборе другого.
Команды сменились, различие осталось: «сервер отправил» и «клиент надёжно владеет копией» — разные события в прерывистой сети.
Три состояния распределили полномочия
RFC 1081, первый POP3 1988 года, определил AUTHORIZATION, TRANSACTION и UPDATE. После аутентификации сервер брал исключительную блокировку. В TRANSACTION клиент перечислял, получал и метил. QUIT вёл к UPDATE, удалению, снятию блокировки и закрытию TCP.
AUTHORIZATION решает доступ, TRANSACTION даёт стабильное обратимое представление, UPDATE исполняет необратимый эффект. QUIT до входа только завершает сеанс.
Обязательная RSET снимала все метки при нехватке места, ошибке обработки или смене политики. RFC 1725 уточнил, что блокировка при необходимости предотвращает изменение и удаление до UPDATE.
Ненормальное завершение сохраняло всё
RFC 1725 прямо установил: окончание по любой причине, кроме клиентского QUIT, не входит в UPDATE и не удаляет ни одного письма. Автовыход по бездействию действует так же.
RFC 1939, STD 53 1996 года, объясняет: клиент мог не получить или не сохранить сообщения. Это не доказательство состояния его диска, а консервативный выбор. Дубликат можно сверить; потерянную единственную копию часто нельзя вернуть.
Ворота commit не означали атомарность
В UPDATE сервер пытается убрать все отмеченные письма. При нехватке ресурсов или иной ошибке могут исчезнуть некоторые, все или ни одно. Неотмеченное письмо трогать нельзя. Затем блокировка освобождается и соединение закрывается при любом результате.
Поэтому QUIT — ворота полномочия, а не атомарный commit. До них метки обратимы и обрыв безопасен; после результат бывает частичным. При потере последнего ответа клиент не знает изменившееся подмножество. +OK для DELE означает принятую метку, не исчезнувшую копию.
Поздняя политика осталась подчинена UPDATE
RFC 2449 ввёл EXPIRE. EXPIRE NEVER объявляет отсутствие удаления по политике; EXPIRE 0 позволяет считать успешно полученные письма неявно отмеченными при входе в UPDATE. Расширение меняет выбор, но не превращает получение или обрыв в мгновенное уничтожение.
Прощание защищало хранение, а не этикет
Клиент знает конец задуманной последовательности, сервер — итог хранения, сеть может только помешать. Неопределённость переносится в повторы и сверку, а не в тихую потерю. Метка, возможность возврата, явный переход, попытка и признание частичности — так удаление начинало становиться реальным при прощании.
Источники и ограничения
Истоки дают RFC 918 и RFC 937; POP3 начинается в RFC 1081 и продолжается в RFC 1225 и RFC 1460. RFC 1725 уточняет обрыв, RFC 1939 — правило и частичный сбой, RFC 2449 — EXPIRE. Они не доказывают нынешнее распространение, поведение продукта, атомарное или exactly-once удаление.
Обзор для участников
Подробный контекст профиля
Войдите с подходящим уровнем подписки, чтобы открыть полный обзор и примечания к источникам.
Только для Стратегического сообщества
Стратегическое сообщество
Открыто всем читателям. Вступите и войдите, чтобы открыть обзоры профилей.
Вступить в Стратегическое сообществоТолько для Альянса лидеров
Альянс лидеров
Для проверенных владельцев IP-активов и руководителей. Войдите, чтобы открыть обзоры Альянса.
Вступить в Альянс лидеров
