Кратко
- RFC 2449 добавил POP3 команду
CAPA, чтобы клиент мог структурированно узнать о расширениях и поведении сервера, а не только проверять команды или разбирать обычный текст ошибок. - Список зависел от состояния сеанса: он не был разрешением или подтверждением успеха и мог измениться после аутентификации, с учётом политики пользователя и защиты целостности.
«Что умеет этот сервер?» кажется одним вопросом. В POP3 ответ зависел от контекста. Наборы необязательных команд, способов аутентификации и особенностей поведения различались; клиент узнавал о них, пробуя команды, трактуя сообщения для человека или предлагая пользователю вручную переключить совместимость. RFC 2449, опубликованный в ноябре 1998 года как стандартная дорожка обновления RFC 1939, добавил CAPA: машиночитаемый перечень, который можно запросить до выбора расширения.
Перечень не стал неизменным профилем сервера. CAPA доступна и в состоянии AUTHORIZATION до входа, и в состоянии TRANSACTION после аутентификации. Определение каждой возможности должно указывать, в каких состояниях она объявляется и в каких действуют связанные с ней команды. Возможность, доступная до входа, должна объявляться в обоих состояниях; однако её параметры могут стать точнее, когда сервер узнает пользователя. Метка, значение и разрешаемое действие связаны, но не взаимозаменяемы.
LOGIN-DELAY и EXPIRE объясняют консервативный предварительный ответ. Если LOGIN-DELAY зависит от учётной записи, до аутентификации сервер обязан объявить максимально возможный интервал, а после входа ему следует сообщить более точное значение для этого пользователя. EXPIRE задаёт гарантированный минимальный срок хранения, а не дату исчезновения конкретного письма. Если срок зависит от пользователя, до входа нужно указать наименьший возможный срок, а после — уточнить его. Пока сервер не знает учётную запись, общий ответ не должен обещать слишком благоприятные условия.
Аутентификация может менять и контекст безопасности. RFC 2449 рекомендует повторить CAPA, если при аутентификации согласован слой защиты целостности, чтобы проверить, не произошло ли активное понижение уровня. RFC 5034 позднее чётко обозначил границу для защитных слоёв SASL: клиент отбрасывает ранее полученную информацию о сервере, включая старый список возможностей. Данные, полученные вне защищённого контекста, автоматически не становятся доказательством внутри него.
Положительный список также не означает, что любой пользователь может выполнить каждую команду. Метка USER подтверждает поддержку USER и PASS, но RFC 2449 предупреждает, что эти команды могут быть недоступны некоторым пользователям. Объявленный механизм SASL всё ещё может не принять учётные данные или противоречить местной политике; успешный вход не гарантирует получение почтового ящика. Ответ -ERR на CAPA означает, что не поддерживается сама команда обнаружения, и клиенту приходится вернуться к прежним пробам. Новый механизм сокращает догадки, но не устраняет неопределённость старых серверов.
RFC 2449 также ввёл структурированные коды ответа, чтобы программа не выводила причину сбоя только из произвольного текста. Неизвестные детали следует игнорировать, сохраняя общий слой стабильным по мере развития расширений. Документ предупреждает, что список способен раскрывать поддерживаемые способы аутентификации, хотя автоматическое обнаружение может помочь выбрать более надёжный. Читаемые сведения дают операционную пользу и создают цену раскрытия.
Таким образом, RFC 2449 не обещал взаимозаменяемость POP3-серверов и не объявлял конец пробным командам. Он ограничил, что сервер может заявить, в каком состоянии и по правилам какого расширения. Список направляет следующее решение; понять, что произошло на деле, позволяют лишь следующая команда, её ответ и последующее наблюдение за ящиком. Статус RFC и запись в реестре IANA не доказывают всеобщую реализацию или распространение.
Источники
RFC 2449; запись RFC 2449; список исправлений RFC 2449; RFC 1939; RFC 1957; RFC 5034; RFC 1734; RFC 4422; реестр расширений POP3 IANA; RFC 2384; Heng Lu, приоритет работающего кода; Heng Lu, минимальная исходная спецификация и добровольное внедрение.
Обзор для участников
Подробный контекст профиля
Войдите с подходящим уровнем подписки, чтобы открыть полный обзор и примечания к источникам.
Только для Стратегического сообщества
Стратегическое сообщество
Открыто всем читателям. Вступите и войдите, чтобы открыть обзоры профилей.
Вступить в Стратегическое сообществоТолько для Альянса лидеров
Альянс лидеров
Для проверенных владельцев IP-активов и руководителей. Войдите, чтобы открыть обзоры Альянса.
Вступить в Альянс лидеров
