ietf-nntp Article concepts

Clive D.W. Feather clive at demon.net
Sat Mar 22 00:38:00 PST 2003


Russ Allbery said:
>   I don't think we should refer to RFC 2822 here, or in fact require a
>   particular message ID syntax.  NNTP can at least theoretically be used
>   for storing any messages with a vaguely mail-like syntax.

As I said in another message, I've moved all this sort of stuff to a
separate section. Here is the first version; comments welcome:

3.4 Articles

   NNTP is intended to transfer articles between clients and servers.
   For the purposes of this specification, articles are required to
   conform to the rules in this section and clients and servers MUST
   correctly process any article received from the other that does so.
   Note that this requirement applies only to the contents of
   communications over NNTP; it does not prevent a client or server from
   subsequently rejecting an article because of its contents or some
   other reason. In particular, where NNTP is used to transport articles
   that conform to other specifications such as RFC 1036 [6] or RFC 2822
   [7], articles must meet both this specification and the other.

   An article consists of two parts: the headers and the body. They are
   separated by a single empty line, or in other words by two
   consecutive US-ASCII CRLF pairs (if there is more than one empty
   line, the second and subsequent ones are part of the body). In order
   to meet the general requirements of NNTP, an article MUST NOT include
   the octet 0x00, MUST NOT contain the octets 0x0A and 0x0D other than
   as part of a CRLF pair, and MUST end with a CRLF pair. This
   specification puts no further restrictions on the body; in
   particular, it MAY be empty.

   The headers of an article consist of one or more header lines. Each
   header line consists of a header name, a colon, a space, the header
   value, and a CRLF in that order. The name consists of one or more
   US-ASCII printable characters other than colon and, for the purposes
   of this specification, is not case sensitive. There MAY be more than
   one header line with the same name amd different values. The value
   MUST NOT contain CRLF but is otherwise unrestricted; in particular,
   it MAY be empty. A header may be "folded"; that is, a CRLF pair may
   be placed before any 0x09 or 0x20 octet (US-ASCII tab or space) in
   the line, except that there MUST be at least one octet other than
   0x09 or 0x20 between any two CRLF pairs in a header line. (Note that
   folding means that the header line occupies more than one line when
   displayed or transmitted; nevertheless it is still referred to as "a"
   header line.) The presence or absence of folding does not affect the
   meaning of the header line.

   Each article SHOULD have a message-id, which is the value of the
   header with name "Message-ID". Two articles processed by an NNTP
   server MUST NOT have the same message-id. Note that RFC 1036 [6]
   further requires that message-ids are globally unique for all time.
   If an article contains more than one such header line, the server
   MUST choose one as the message-id it uses (for example, it MUST NOT
   allow the article to be retrieved using both message-ids). If an
   article does not contain this header line, the server MUST NOT
   allocate a message-id, and MUST use the placeholder "<0>" (without
   the double quotes) where it is required to provide the message-id of
   that article.

   OUTSTANDING ISSUE

      I would much prefer us to simply say there MUST be exactly one ID,
      but that negates the existing text which says "<0>" MUST be used
      if there is no message-id header line.

   For the purposes of this specification, message-ids are opaque
   strings that MUST meet the following requirements:

   o  A message-id MUST begin with 0x3C (US-ASCII "<") and end with 0x3E
      (US-ASCII ">"), and MUST NOT contain the latter except at the end.

   o  A message-id MUST be between 3 and 250 octets in length.

   o  A message-id MUST NOT contain octets other than US-ASCII printable
      characters.

   Two message-ids are the same if and only if they consist of the same
   sequence of octets. Other specifications may define two different
   sequences as being equal; an NNTP server that also conforms to such a
   specification must consistently use only one or the other. As an
   example, the message-ids:
       <abcd at example.com>
       <"abcd"@example.com>
       <"ab\cd"@example.com>
   are considered distinct by this specification even though they would
   be considered semantically identical according to the specification
   in RFC 2822 [7].

-- 
Clive D.W. Feather  | Work:  <clive at demon.net>   | Tel:  +44 20 8371 1138
Internet Expert     | Home:  <clive at davros.org>  | Fax:  +44 870 051 9937
Demon Internet      | WWW: http://www.davros.org | Mobile: +44 7973 377646
Thus plc            |                            |



More information about the ietf-nntp mailing list