ietf-nntp FAQ Extension to NNTP

Pat Brans pbrans at cscsm.de
Thu Aug 22 06:02:50 PDT 1996


Hello,

It was suggested to me that I submit my ideas on including FAQ's as part
of news groups to this mailing list. I've put together this idea in the
form of an internet draft, which is shown below. 

Very briefly, the idea is that NNTP be extended to allow clients to retrieve
the latest FAQ. User Interfaces could provide an option that would allow the
user to read that FAQ at anytime, just as if he or she were reading an article.

This eliminates that need to post updated FAQ's periodically as articles;
it also elimiates the need for users to first find out the name of the FAQ
file and then retrieve it through anonymous FTP.

Comments are more than welcome.

-- 
Pat Brans
pbrans at cscsm.de
Voice: 49.221.903.15.73
Fax:   49.221.700.20.52

"Before I got married I had six theories about bringing 
up children. Now I have six children and no theories." 
- John Wilmot, Earl of Rochester (1647-1680)

========================== Cut Here ======================================


Internet Draft                                                 Pat Brans
                                                             August 1996

             FAQ Extension to Network News Transfer Protocol
                                    

   This document is an Internet-Draft.  Internet-Drafts are working
   documents of the Internet Engineering Task Force (IETF), its
   areas, and its working groups.  Note that other groups may also
   distribute working documents as Internet-Drafts.

   Internet-Drafts are draft documents valid for a maximum of six
   months and may be updated, replaced, or obsoleted by other
   documents at any time.  It is inappropriate to use Internet-
   Drafts as reference material or to cite them other than as
   ``work in progress.''

   To learn the current status of any Internet-Draft, please check
   the ``1id-abstracts.txt'' listing contained in the Internet-
   Drafts Shadow Directories on ftp.is.co.za (Africa),
   nic.nordu.net (Europe), munnari.oz.au (Pacific Rim),
   ds.internic.net (US East Coast), or ftp.isi.edu (US West Coast).


1.   Introduction

   It has become wide-spread practice to maintain a Frequently Asked 
   Questions (FAQ) file for each Internet news group. This file may contain 
   a description of the news group, the philosophy behind it, and a list of
   commonly asked questions and their answers. It is considered improper
   network etiquette to post an article to a news group asking a question
   that is among the frequently asked questions.

   Currently, FAQ files are maintained separately from the news group.  For 
   many news groups the FAQ file is posted as an article once a month.  FAQ's
   are usually updated periodically.

   Because FAQ files are maintained separately from the news group, it's 
   sometimes difficult to retrieve the FAQ when you most need it.

   This problem could be eliminated by extending NNTP (Network News Transfer
   Protocol from RFC 977) to include protocol elements for retreival of the 
   FAQ file.  Client programs could then include an option to display the 
   current version of the FAQ to the user.  This selection would presumably 
   be similar to the selection of an article to read.

   

Brans                                                           [Page 1]



Internet-Draft                                               August 1996
FAQ Extension to NNTP         

2.   NNTP Protocol Extensions

2.1. Status Responses

   Currently, NNTP status responses can have the following second-digit
   values :

      x0x - Connection, setup, and miscellaneous messages
      x1x - Newsgroup selection
      x2x - Article selection
      x3x - Distribution functions
      x4x - Posting
      x8x - Nonstandard (private implementation) extensions
      x9x - Debugging output                                                    

   To associate FAQ files with news groups the following second-digit
   value should be added :

      x5x - FAQ selection

2.2. The FAQ Command

   A new command should be added to allow a new client to read the FAQ 
   file associated with the currently selected news group.  The format
   for this command is as follows :

      FAQ [version-I-have]

   The optional "version-I-have" parameter is a 4-byte unsigned numeric 
   value indicating the version number of the FAQ file currently held by 
   the client.  If the current version of the FAQ file is greater than 
   this value, the news server will respond by sending the contents of 
   the current FAQ file (all possible responses are listed below).

   In the absence of the "version-I-have" parameter, if there is a 
   FAQ file associated with the currently-selected news group, the news 
   server will respond by sending the contents of the current FAQ file.

   The only restrictions on FAQ version numbers are that they be 4-byte
   unsigned numbers and that they be ascending.

2.3. Responses

   250 v you have the current version
        (v = the current version)
   251 v FAQ retrieved - FAQ contents follow
        (v = the current version - i.e. of the following FAQ)
   412 no newsgroup has been selected
   450 no FAQ for this news group
   500 command not recognized

   Servers that do not implement this protocol extension would obviously
   return the 500 response.
   
Brans                                                           [Page 2]



Internet-Draft                                               August 1996
FAQ Extension to NNTP         


2.4. Sending the FAQ File

   The FAQ file will be sent as text in conformance with NNTP (section 
   2.4.1 of RFC 977).
   
3.   Sample Conversations

   These are samples of the conversations that might be expected with
   the news server in hypothetical sessions.  The notation C: indicates
   commands sent to the news server from the client program; S: indicate
   responses received from the server by the client.

3.1. Example 1 - Client gets FAQ for the first time

   S:      (listens at TCP port 119)

   C:      (requests connection on TCP port 119)
   S:      200 server ready - posting allowed

   (client asks for a current newsgroup list)
   C:      LIST
   S:      215 list of newsgroups follows
   S:      net.gilligan 00808 01090 y
   S:      net.homer 09099 10109 y
   S:      .

   (client selects a newsgroup)
   C:      GROUP net.homer
   S:      211 1010 09099 10109 net.homer group selected

   (client selects to read the FAQ)
   C:      FAQ
   S:      251 19 FAQ retrieved - FAQ contents follow
           (text contents here)
   S:      .

   
Brans                                                           [Page 3]



Internet-Draft                                               August 1996
FAQ Extension to NNTP         


3.2. Example 2 - Client has current version; other newsgroup has no FAQ

   S:      (listens at TCP port 119)

   C:      (requests connection on TCP port 119)
   S:      200 server ready - posting allowed

   (client asks for a current newsgroup list)
   C:      LIST
   S:      215 list of newsgroups follows
   S:      net.gilligan 00808 01090 y
   S:      net.homer 09099 10109 y
   S:      .

   (client selects a newsgroup)
   C:      GROUP net.homer
   S:      211 1010 09099 10109 net.homer group selected

   (client selects to read the FAQ)
   C:      FAQ 19
   S:      250 19 you have the current version

   (client selects a different news group)
   C:      GROUP net.gilligan
   S:      211 282 00808 01090 net.gilligan group selected

   (client selects an article)
   C:      ARTICLE 812 
   S:      220 812 article retrieved, text follows
   S:      (article header and body follow)
   S:      .
  
   (client selects FAQ for the first time)
   C:      FAQ
   S:      450 no FAQ for this news group

   (client selects next article - note that the next article pointer was
    unaffected by the FAQ command)
   C:      NEXT
   S:      223 813 article retrieved; text separate.

   
Brans                                                           [Page 4]



Internet-Draft                                               August 1996
FAQ Extension to NNTP         


3.3. Example 3 - Server hasn't implemented this extension

   S:      (listens at TCP port 119)

   C:      (requests connection on TCP port 119)
   S:      200 server ready - posting allowed

   (client asks for a current newsgroup list)
   C:      LIST
   S:      215 list of newsgroups follows
   S:      net.gilligan 00808 01090 y
   S:      net.homer 09099 10109 y
   S:      .

   (client selects a newsgroup)
   C:      GROUP net.homer
   S:      211 1010 09099 10109 net.homer group selected

   (client selects to read the FAQ)
   C:      FAQ 19
   S:      500 command not recognized

   (client goes on to do other things)
   C:      ARTICLE 10100
   S:      223 10100 article retrieved; text separate.


4.  Commands
 
   With this extension the command set of NNTP would now be the following :

   ARTICLE
   BODY
   FAQ
   GROUP
   HEAD
   HELP
   IHAVE
   LAST
   LIST
   NEWGROUPS
   NEWNEWS
   NEXT
   POST
   QUIT
   SLAVE
   STAT

   
Brans                                                           [Page 5]



Internet-Draft                                               August 1996
FAQ Extension to NNTP         

5.  Responses
 
   With this extension to NNTP, the set of possible responses would now 
   be the following :

   100 help text follows
   199 debug output

   200 server ready - posting allowed
   201 server ready - no posting allowed
   202 slave status noted
   205 closing connection - goodbye!
   211 n f l s group selected
   215 list of newsgroups follows
   220 n <a> article retrieved - head and body follow 221 n <a> article
   retrieved - head follows
   222 n <a> article retrieved - body follows
   223 n <a> article retrieved - request text separately 230 list of new
   articles by message-id follows
   231 list of new newsgroups follows
   235 article transferred ok
   240 article posted ok
   250 v you have the current version
   251 v FAQ retrieved - FAQ contents follow

   335 send article to be transferred.  End with <CR-LF>.<CR-LF>
   340 send article to be posted. End with <CR-LF>.<CR-LF>

   400 service discontinued
   411 no such news group
   412 no newsgroup has been selected
   420 no current article has been selected
   421 no next article in this group
   422 no previous article in this group
   423 no such article number in this group
   430 no such article found
   435 article not wanted - do not send it
   436 transfer failed - try again later
   437 article rejected - do not try again.
   440 posting not allowed
   441 posting failed
   450 no FAQ for this news group

   500 command not recognized
   501 command syntax error
   502 access restriction or permission denied
   503 program fault - command not performed


6.  References

   [1]  Kantor, B., Lapsley, P. "Network News Transfer Protocol"
        Messages", RFC-977, February 1986.


Brans                                                           [Page 6]




More information about the ietf-nntp mailing list