RFC: 2060
Оригинал: Internet Message Access Protocol v.4 rev.1
Другие версии: RFC 1730, RFC 3501
Категория: Предложенный стандарт
Дата публикации:
Автор:
Перевод: Николай Малых

7. Отклики сервера

Отклики сервера делятся на три типа — информация о состоянии, данные и запросы на продолжение команд. Информация, содержащаяся в откликах, помечена словом "Содержимое:" при описании отклика (но не его синтаксиса). Синтаксис откликов описан в главе 9. Формальный синтаксис.

Клиент ДОЛЖЕН сохранять постоянную готовность к получению откликов от сервера.

Статусные отклики могут быть отмеченными (tagged) или неотмеченными (untagged). Отмеченные отклики показывают результат (OK, NO, BAD) выполнения команды клиента и включают тег, соответствующий команде.

Все данные и некоторые статусные отклики передаются без тегов. Непомеченные отклики идентифицируются маркером "*" взамен тега. Непомеченные статусные отклики содержат приветствия сервера, или данные о состоянии, которые не показывают завершения команд (например, уведомление об отключении сервера — shutdown alert). В силу исторических причин неотмеченные статусные отклики сервера называют также unsolicited data (представленные без запроса данные), хотя, строго говоря, они не являются таковыми.

Некоторые данные от сервера ДОЛЖНЫ записываться клиентом — такие случаи явно указываются в описании данных. Данные этого типа содержат критически важную информацию, которая влияет на интерпретацию последующих команд и откликов (например, обновлений о создании или удалении сообщений).

Другие типы данных следует сохранять для использования в будущем; если клиенту не нужно записывать эти данные или смысл записи данных неясен (например, отклик SEARCH при отсутствии выполняемых команд SEARCH), такие данные следует игнорировать.

Непомеченные данные по инициативе сервера могут передаваться, когда соединение IMAP находится в состоянии selected. В этом состоянии сервер проверяет почтовый ящик на предмет появления в нем новых сообщений в результате выполнения команд. Обычно это является частью выполнения всех команд, следовательно, команда NOOP также инициирует проверку наличия новых сообщений. Если такие сообщения найдены, сервер передает непомеченные отклики EXISTS и RECENT, отражающие новый размер почтового ящика. Серверам, поддерживающим множественный доступ к почтовому ящику, следует также передавать подходящие непомеченные отклики FETCH и EXPUNGE, если другой агент изменяет состояние любого из флагов сообщений или удаляет какое-либо сообщение.

Запросы на продолжение команд используют маркер "+" взамен тега. Такие отклики передаются сервером для индикации восприятия сервером неполной команды клиента и готовности к получению оставшейся части команды.

2007 - 2017 © Русские переводы RFC, IETF, ISOC.