Commands:
HTTP NNTP
GET u BODY
GET u v ARTICLE
HEAD HEAD
PUT POST or IHAVE
These are novel to HTTP:
CHECKOUT
CHECKIN
TEXTSEARCH u v
Status messages:
HTTP NNTP
OK 2xx - command ok
ERROR 4xx - command correct, but could not be completed
5xx - command unimplemented or incorrect
REDIRECTION
FORWARD
etc.
The main technical difference between the protocols is that
NNTP involves a few more round-trips here and there: the server
starts the dialogue with a "200 - server ready" message.
The HTTP client just assumes it's ready if it accepted the connection.
This save half a round-trip, but it's doesn't allow servers to
say things like "502 - This server only available from 6pm to 8am".
Also, the NNTP IHAVE and POST commands involve more round-trips:
S: (listens at TCP port 119)
C: (requests connection on TCP port 119)
S: 201 Foobar NNTP server ready (no posting)
C: IHAVE <[email protected]>
S: 335 News to me! <CRLF.CRLF> to end.
C: (sends article)
C: .
S: 235 Article transferred successfully. Thanks.
But lots of stuff like error handling, status codes, and the
like have been laid out.
I think it would be very useful to include the NNTP NEWNEWS
command in W3. (client sends NEWNEWS <date> and server responds
with a list of articles newer than <date>)
The NNTP commands HEAD, BODY, ARTICLE, etc. take a number or
a message-id as an argument. We could extend the syntax to
include URL's as quoted strings.
Then we'd add a few commands for format negotiation, locking,
and so on. I think it's a nice clean framework to work in.
Dan