Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
26
Добавлен:
15.09.2014
Размер:
847.67 Кб
Скачать

Nntp-сессия.

Текст может посылаться только после цифрового статусного отклика. Текст имеет вид последовательности строк, каждая из которых завершается парой символов CR-LF. В конце текста всегда посылается строка, содержащая один символ (.), за которым следует CR-LF (как и в SMTP). Если исходный текст содержит точку в начале строки, то она перед посылкой должна быть задублирована. Таким образом, клиент должен просматривать первые символы каждой полученной строки и, если это одиночная точка, прерывать дальнейший прием текста. Предполагается, что текстовый отклик будет отображен на дисплее пользователя, в то время как командно-статусный отклик интерпретируется программой клиента.

Статусный отклик представляет собой реакцию сервера на команду, полученную от клиента. Строки статусного отклика начинаются с 3-значного десятичного кода, достаточного для описания любого отклика. Некоторые коды являются предшественниками последующего текстового отклика. Первая цифра говорит об успехе, ошибке или процессе исполнения команды. Конкретное значение кодов отклика можно найти только в описании конкретной команды. В таблице 7.1 приведен список кодов общего назначения, которые могут быть получены в любое время:

Табл. 7.1.

1xx

Информационное сообщение

2xx

Команда ok

3xx

Команда корректна, можно продолжать обмен.

4xx

Команда корректна, но не может быть выполнена по какой-то причине.

5xx

Команда неприменима, неверна или произошла серьезная ошибка в программе.

Следующая цифра кода характеризует категорию отклика:

Табл. 7.2.

x0x

Соединение, установка режима, прочие сообщения

x1x

Выбор группы новостей

x2x

Выбор статьи

x3x

Функции распределения

x4x

Отправка адресату

x8x

Нестандартное (частное применение) расширение

x9x

Отладочный вывод

Некоторые статусные отклики могут иметь параметры (числа или имена). Число и тип параметров фиксировано для каждого конкретного отклика. Параметры отделяются от кода отклика и друг от друга одиночным пробелом. Все цифровые параметры имеют десятичное представление и могут начинаться с нулей. Все строковые параметры начинаются после пробела и завершаются пробелом или символьной парой CR-LF, т. е. не могут содержать в себе пробелов. Любой текст, который не является параметром отклика, должен отделяться от последнего параметра, если таковой имеется, пробелом и завершаться пробелом.

Не специфицированные коды-отклики могут использоваться для специфических новых команд. Такой код должен относиться к категории x8x (таблица 7.2). Применение не специфицированных откликов для стандартных команд запрещено.

Коды категории x9x зарезервированы для отладочных целей. Так как большинство отладочных откликов можно рассматривать как информационные сообщения, для отладочных выдач зарезервирован диапазон кодов 190-199. В таблице 7.3 приведен список сообщений общего назначения, которые может послать NNTP сервер. Эти отклики не привязаны к каким-то конкретным командам и могут быть присланы в результате сбоя или каких-то других необычных обстоятельств.

Коды 1xx могут игнорироваться; коды 200 или 201 посылаются при начальном подключении к NNTP серверу в зависимости от наличия разрешения пересылки. Код 400 отправляется, когда NNTP сервер прерывает обслуживание, например, по запросу оператора, а коды 5xx указывают на то, что процедура не будет выполнена по какой-то необычной причине.

Табл. 7.3.

100

Поясняющий текст

190 - 199

Отладочный вывод

200

Сервер готов - отправка разрешена

201

Сервер готов - отправка запрещена

400

Обслуживание прерывается

500

Команда не распознана

501

Синтаксическая ошибка в команде

502

Доступ ограничен или нет разрешения

503

Ошибка в программе - команда не выполнена

Пример NTTP-сессии:

A: — отвечающая сторона, O: — вызывающая сторона

A: (ожидает соединения)

O: (Подключается к порту 119 сервера)

A: 200 news.company.tld InterNetNews server INN 2.3.0 ready

O: IHAVE <ident@message>

A: 435 Duplicate

O: IHAVE <ident@another.message>

A: 335

O: Newsgroups: test.group

O: Subject: test

O: Message-Id: <ident@another.message>

O: From: Some Persone <some@another.message>

O: Date: Wed, 25 Apr 2007 14:18:31 +0300

O:

O: message body

O: .

A: 235

O: QUIT

A: 205 .

A: (закрывает соединение)

Соседние файлы в папке Контрольная Петровский