TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security)
Шрифт:
содержащей только символ точки.
17.6 Применение агентов новостей для настольных систем
Рассмотрим, как будет выглядеть аналогичный диалог для агента настольной системы. На рис. 17.3 показан вывод новостей в Chameleon. Список новых групп новостей выводится щелчком мыши на соответствующем пункте меню.
Рис. 17.3.
На рис. 17.4 показан отслеживаемый набор групп новостей (на которые подписался пользователь).
Рис. 17.4. Просмотр групп, на которые подписался пользователь
Список непрочитанных статей из популярной группы news.answers запрашивается двойным щелчком мыши на строке news.answers. Результат этой операции представлен на рис. 17.5, а сама статья — на рис. 17.6. Длинный заголовок статьи можно не выводить, если только этого не захочет сам пользователь.
Рис. 17.5. Список непрочитанных статей из группы news.answers
Рис. 17.6. Вывод выбранной статьи
На рис. 17.7 показан вывод статьи из группы новостей в браузере WWW (в данном случае — Netscape Navigator), применяющемся для чтения статей. Сама статья была написана информационным агентством Рейтер и опубликована в электронном виде через службу новостей Clarinet.
Рис. 17.7. Статья сетевых новостей
17.7 Протокол NNTP
17.7.1 Команды NNTP
Для доступа к статье группы новостей клиентский процесс соединяется с портом 119 сервера новостей. Клиент отправляет серию команд и получает на них ответы. Команды не чувствительны к регистру символов.
Существуют команды для запроса:
■ Списка всех групп
■ Выбора конкретной группы
■ Выбора определенной статьи
Указатель на текущую статью (current article pointer) сервера сохраняет свою позицию на время сеанса пользователя. Команды NNTP перечислены в таблице 17.1.
Таблица 17.1 Команды и параметры NNTP
Команда | Параметры | Описание |
article | "<Идентификатор сообщения>", номер статьи или ничего | Извлечение статьи по идентификатору или номеру либо извлечение текущей статьи |
body | Извлечение содержимого текущей статьи | |
group | Имя группы | Переход к указанной группе новостей |
head | Вывод заголовка текущей статьи | |
help | Запрос списка поддерживаемых сервером команд | |
ihave | <Идентификатор сообщения> | Сервер указывает другому серверу на наличие статьи. При необходимости копия статьи может быть затребована другим сервером. |
last | Перемещение указателя текущей статьи на одну статью назад в списке текущей группы | |
list | Запрос списка групп новостей и количества доступных в них статей | |
newgroup | Дата, время | Запрос списка групп новостей (при необходимости по категориям), созданных после указанной даты и времени |
и необязательный параметр <распространитель> | ||
newnews | Группа новостей, дата, время и необязательный параметр <распространитель> | Запрос списка новых статей группы, опубликованных после указанной даты и времени |
next | Перемещение указателя текущей статьи на одну статью вперед в списке текущей группы | |
post | Опубликовать новую статью в группе новостей | |
quit | Выход | |
slave | Указывает на запрос от почтового сервера, а не от отдельного клиента | |
stat | Номер сообщения | Выбор статьи |
Необязательный параметр <распространитель> (distributions) разрешает пользователю выбрать список категорий высокого уровня, например comp или news. Список должен заключаться в угловые скобки, а его элементы разделяться запятыми. Например, ниже показан список новых групп новостей, расположенных под sci:
17.7.2 Коды состояния NNTP
В диалоге из раздела 17.5 видно, что каждый ответ сервера NNTP начинается с числового кода состояния. При этом используются одинаковые для серверов SMTP и FTP правила:
1xx | Информационное сообщение |
2xx | Успешная команда |
3xx | Команда пока была успешна, нужно послать ее остаток |
4xx | Команда корректна, но не выполнена по некоторым причинам |
5xx | Команда не реализована или неверна, либо возникла серьезная ошибка в программе |
Как и ранее, вторая цифра кода представляет более специфичную информацию:
x0x | Соединение, установка или дополнительное сообщение |
x1x | Выбор новой группы новостей |
x2x | Выбор статьи |
x3x | Функция распространения |
x4x | Публикация |
x8x | Нестандартное расширение |
x9x | Отладочный вывод |