* プロトコル

[FIG(short list)[ [9] [[NNTP]]
- [[NNTPの日時形式]]
]FIG]

* perl で使う

[1] [[Net::NNTP]] を使うのが一般的でしょう。

サーバーからの応答を取り出す正統的な方法がない (ですよね?)
のが問題。 (例えばエラーが返ってきても、何が原因かわかんない。)
FAQ には debug を使えと書いてあるが、さすがに [[STDERR]]
読んで解析は嫌。

[2] そんなあなたに裏業的方法。
- ${*$nntp}{'net_cmd_code'}      ## 応答符号 (数値)
- @{${*$nntp}{'net_cmd_resp'}}   ## 応答文字列 (行毎の配列)

[3] もし >>2 がなかったら [[Net::NNTP]] と [[Net::SMTP]]
再発明したろーかとまじで思ってた。
([[Net::Cmd]] とか継承関係で code がさぱーりなのねん。)

* NNTP 入門

- [2] ''NNTPの話し方'' <http://carrot.mimora.com/hack/newshtml/nntp.html>
[[#comment]]


* NNTP RFCs

- [[RFC977]], 『Network News Transfer Protocol』, 1986年2月。
- [[RFC2980]], 『ommon NNTP Extension』, 2000年10月。
- [4] その後の標準化は [[ietf-nntpext]] で行われており、 [[I-D]] に draft-ietf-nntpext-base があります。

[10] 
[[RFC 3977]]

* メモ

- [5] ''INN ARCHIVES'' <http://m7.st/INN/archives/>
- [6] かつて  Stan Barber が書いた ''NNTP'' という NNTP server がありました。 (今もあるのかはわかりません。) これが最初の NNTP の実装だそうです。 NNTP 1.5 とはこの実装の 1.5 版であって、プロトコル NNTP の 1.5 版はありません。

[7] [CITE@en[RFC 8054 - Network News Transfer Protocol (NNTP) Extension for Compression]]
([TIME[2017-01-28 00:54:34 +09:00]])
<https://tools.ietf.org/html/rfc8054>

[8] [CITE@en[RFC 8143 - Using Transport Layer Security (TLS) with Network News Transfer Protocol (NNTP)]]
([TIME[2017-04-23 23:13:44 +09:00]])
<https://tools.ietf.org/html/rfc8143>