Справочник по сетевым протоколам

       

Формат статей и сообщений UseNet


После того, как пользователь, используя локальное программное обеспечение для работы с системой новостей UseNet, сформировал свою статью, т. е. присоединил файлы, вставил рисунки и т. п., так же как и в случае отправки обычного почтового сообщения, статья "заворачивается" в конверт системы UseNet, во многом похожий на конверт сообщений SMTP.

Стандартный формат сообщений электронной почты определяет структуру самого сообщения, расположение и типы его частей, форматы кодировок (см. раздел "Формат почтовых сообщений, MIME" главы "SMTP"). Формат статьи UseNet использует формат сообщений электронной почты как структуру, организующую передаваемую информацию, дополняя ее полями, специфичными для системы передачи новостей. Текст и конверт почтового сообщения образуют единую структуру, которая используется для построения статьи UseNet.

При изменении или расширении почтовых стандартов, не требуется изменять формат статей UseNet, поскольку он уже содержит внутри себя структуру почтового сообщения. Можно говорить, что формат статей UseNet представляет собой дополнительную структуру, позволяющую почтовым сообщениям тиражироваться через систему UseNet и протокол NNTP.

Структура почтового сообщения подробно рассматривалась в разделе, посвященном протоколу SMTP. Поэтому, обсуждая структуру статьи UseNet, остановимся на описании только тех частей сообщения, которые добавляются системой UseNet. Типичный заголовок статьи UseNet выглядит следующим образом:

From: jerry@cock.att.com (Jerry Balls)

Path: cbosgd!mhuxj!mhuxt!cock! jerry

Newsgroups: news.announce

Subject: UseNet Etiquette -- Please Read

Message-ID: <642@cock.att.com>

Date: Fri, 19 Nov 97 16:14:55 GMT

Followup-To: news.misc

Expires: Sat, 1 Jan 98 00:00:00 -0500

rganization: AT&T Bell Laboratories

This is a trivial news!



Стандартное UseNet-сообщение состоит (так же как и почтовое сообщение) из нескольких строк заголовка, отделенных от тела сообщения пустой строкой. Каждая строка состоит из ключевого слова, двоеточия ":", пробела, информации и символов завершения строки -<CRLF>.


Часть полей заголовка может отсутствовать. Это — поля: "Followup-To:", "Expires:", "Reply-To:", "Sender:", "References:", "Control:", "Distribution:", "Keywords:", "Summary:", "Approved:", "Lines:", "Xref:", "Organization:". Однако часть полей должна присутствовать в каждой статье: "From:", "Date:", "Newsgroups:", "Subject:" "Message-ID:", "Path:".







Поля "From:", "Date:", "Subject:", "Message-ID:" содержат те же параметры, что и аналогичные поля конверта почтового сообщения. Форматы этих полей в статьях UseNet зависят от программного обеспечения клиента для работы с UseNet.
Поле "Newsgroups:" заголовка статьи определяет группу и содержит название дискуссии или конференции, которой принадлежит данная статья. Одна и та же статья может принадлежать нескольким группам, тогда их названия перечисляются через запятую.




Все группы, упомянутые в поле "Newsgroups:", должны существовать. Если в поле "Newsgroups:" поступившего сообщения содержатся имена недоступных для данного сервера или несуществующих групп дискуссий, эти имена при обработке статьи игнорируются.







Поле "Path:" содержит путь сообщения, который был проделан, чтобы попасть в данную систему. Когда система переправляет сообщение с одного хоста на другой, она добавляет имя хоста в поле "Path:". Имена хостов могут отделяться друг от друга любым знаком пунктуации за исключением точки — "." (поскольку точка используется в именах хостов). Например, так: "Path: cbosgd!mhuxj!mhuxt" или "Path: cbosgd, mhuxj, mhuxt", или "Path: @cbosgd.att.com,@mhuxj. att.com,@mhuxt. att.com". Как правило, имя следующего хоста добавляется в строчку слева, поэтому хост — инициатор сообщения всегда стоит в этой строке справа. Это нужно для обеспечения совместимости со старыми системами. Например, хост А получил сообщение с параметром "Path: X!Y!Z". Если хост А отправляет его хосту В, то хост В получит статью с параметром "Path:
<



/p>



A!X!Y!Z" и т. д.

Параметр "Path:" не используется для адресации ответов как почтовый адрес (за исключением некоторых реализации старых версий программ). Он предназначен для хранения и обработки информации маршрута данной статьи. Этот параметр играет очень важную роль при построении графа тиражирования данного сообщения и предотвращения "зацикливаний" передачи статей.

Если, например, хост А отправляет статью хосту В, параметр статьи "Path:" будет содержать имя хоста А. Поэтому хост В или какой-либо из следующих хостов, обрабатывающих эту статью, не отправит эту же статью обратно на хост А.



Из полей, которые являются факультативными в составе заголовка статьи, можно выделить следующие поля, специфичные для статей UseNet:





Поле "Followup-To:" имеет тот же формат, что и поле "Newsgroups:". Если это поле присутствует, дополнительные статьи, относящиеся к данной статье, направляются в конференцию(ии), указанные в этом поле. Если поле отсутствует, дополнения к данной статье направляются в конференцию(ии), указанные в поле "Newsgroups:".






Поле "Expires:" содержит дату "истечения срока действия" сообщения. Поле может быть использовано для удаления статей, содержащих информацию, имеющую ограниченный срок действия (для того чтобы статьи, содержащие критичную по времени информацию, находились в сети заданное время). Это может относиться, например, к объявлению о дате какого-либо симпозиума или семинара. Если это поле не указано, используется значение, устанавливаемое локальным программным обеспечением по умолчанию, например, по соображениям экономии дискового пространства. Пользователям настоятельно не рекомендуется использовать это поле, если в этом нет необходимости.






Поле "References:" содержит список идентификаторов сообщений (Message-ID), на которые ссылается данное сообщение. Это поле обязательно должно присутствовать во всех сообщениях, являющихся дополнительными к данному. Как правило, поле "Subject:" сообщений, которые являются ответными к данному, содержит префикс "Re:". Например:
<



/p>

References: AAckqIqWy5@jone.tamu.edu

Message-Id: AARABLqq2H@lisa.silly.edu

Subject: Re: Hello

Если сообщение, к которому относится дополнительное сообщение, содержит поле "References:", дополнительное сообщение должно содержать в этом поле значения "References:" и значение поля "Message-ID:" этого сообщения. Данное поле позволяет группировать статьи в потоки обсуждений какой-либо темы и организовывать временные иерархические структуры внутри конференции. Если строка "References:" получается слишком длинной, локальное программное обеспечение может ее "обрезать", сохраняя количество ссылок, достаточное для идентификации потока обсуждения.

Поле "Organization:" содержит имя организации, к которой принадлежит отправитель или хост отправителя.
Поле "Keywords:" содержит ключевые слова-идентификаторы сообщения. Оно используется при поиске сообщения конкретного содержания.
Поле "Summary:" содержит краткое описание содержания статьи.
Поле "Distribution:" используется для ограничения распространения статей определенных конференций. Поле содержит идентификаторы зон распространения статьи. Например:
Newsgroups: rec.auto,misc.forsale

Distribution: nj,ny

Данная статья будет передаваться подписчикам конференций "rec.auto" и "misc.forsale", расположенным в доменах New Jersy — nj и New York — ny. Эту же задачу можно было решить, если создать для подписчиков New York и New Jersy отдельные конференции, например, "nj.rec.auto" "ny.rec.auto", "nj.misc.forsale" и "ny.misc.forsale". Но если вам нужно от-" править одну или несколько статей ограниченному кругу лиц, создавать для этого специальные конференции крайне неэффективно.

Поле "Xref:" содержит имя локального хоста без идентификатора домена, номер данной статьи и номер данной конференции в почтовой системе локального хоста. Например, если заголовок сообщения содержит следующие строки:


Newsgroups: news.lists,news.groups



Xref: alibaba news.lists:461 news.groups:6378

Это означает, что данное сообщение имеет номер 461 в группе "news.list" и 6378 в группе "news.groups" локального хоста "alibaba". Эти значения могут быть использованы локальным программным обеспечением.

Содержание раздела