TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security)
Шрифт:
Рис. 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 | Отладочный вывод |
17.8 Различия между новостями и рассылочным списком
Приложения для сетевых новостей более эффективны, чем рассылочные списки. Новости хранятся на центральном сервере и доступны для многих пользователей. Несколько пользователей могут одновременно читать новости из совместно используемой базы данных.
Рассылочный список заполняет почтовый ящик ненужной информацией, затрудняя извлечение реально важных сведений. Однако доступ к новостям полностью определяется требованиями пользователя, а более изощренные возможности просмотра новостей на экране (встроенные в агента новостей) делают их более удобными в применении.