- Arguments: mailbox name (tên hòm thư)
3.3.4 Ðặc điểm kỹ thuật của NNTP
• Tổng quan
Server news NNTP dùng kết nối dòng (như TCP) và kiểu lệnh và đáp ứng giống như SMTP. Nó được thiết kế để chấp nhận các kết nối từ các trạm, và để cung cấp một giao diện đơn giản với cơ sở dữ liệu news.
Server này chỉ là một giao diện giữa các chương trình và các cơ sở dữ liệu news. Nó không thực hiện các chức năng tương tác người dùng và các chức năng mức presentation. Các chức năng "thân thiện người dùng" này tốt hơn là để dành cho các chương trình client.
Khi được dùng qua Internet TCP, cổng liên lạc được đặt cho dịch vụ News này là
cổng 119.
• Các mã ký tự (character codes)
Các lệnh và đáp ứng được soạn từ các ký tự của tập hợp ký tự ASCII. Khi một dịch vụ truyền dẫn cung cấp một kênh truyền dẫn một byte tám bít, mỗi ký tự bảy bit sẽ được truyền đúng theo một octet (8 bit) với bit cao được xoá về 0 (zero).
• Các lệnh.
Các lệnh bao gồm một từ lệnh, mà trong một số trường hợp có thể có thêm tham số. Các lệnh có tham số được phân biệt các tham số với nhau và với lệnh bằng một hay nhiều ký tự trống (space) hay các ký tự tab. Các dòng lệnh phải đầy đủ các tham số, và không chứa nhiều hơn một lệnh.
Các lệnh và các tham số không phân biệt chữ cái hay chữ thường. Nghĩa là, một lệnh hay một tham số có thể là chữ cái, chữ thường hay hỗn hợp cả hai.
Các dòng lệnh không vượt quá 512 ký tự, đếm tất cả các ký tự gồm cả ký tự trắng, phân cách, dấu chấm, và cả CR-LF (vì vậy số tối đa các ký tự là 510 kể cả câu lệnh và các tham số). NNTP không cung cấp việc tiếp nối dòng lệnh.
• Ðáp ứng (Responses)
Các đáp ứng được trả về từ phía server được chia làm hai loại: đáp ứng dạng text nội dung thông tin và đáp ứng thông báo trạng thái.
Ðáp ứng dạng Text chứa thông tin(Text Responses)
Text chứa thông tin chỉ được gửi sau khi một dòng đáp ứng dạng số đã được gửi, đáp ứng dạng số này chỉ định rằng sẽ có text đi kèm theo. Text được gửi dưới dạng một chuỗi liên tiếp các dòng, mỗi dòng kết thúc bằng cặp CRLF. Kết thúc đoạn text này là một dòng chỉ chứa một dấu chấm (.) (Có nghĩa là server sẽ gửi CRLF, một dòng chỉ chứa (.) và CRLF đi tiếp sau).
Nếu có một dòng text chứa một dấu chấm xuất hiện ở đầu dòng thì ký tự này được nhân đôi. Vì thế phía client phải kiểm tra xem ký tự đầu tiên của từng dòng xem đó có phải là ký tự dấu chấm hay không, xác định xem đó có phải là đoạn cuối của phần text hoặc chỉ là dấu chấm được nhân đôi.
Theo dự định khi thiết kế thì các thông điệp text thường được hiển thị trên terminal của người sử dụng trong khi các lệnh và đáp ứng được trình client phiên dịch trước khi đem hiển thị.
Ðáp ứng trạng thái (Status Responses)
Các đáp ứng trạng thái được phía server thông báo, chỉ định đáp ứng của lệnh sau cùng được phía client gửi đi.
Các dòng đáp ứng trạng thái bắt đầu với một mã số ba chữ số, đủ để phân biệt tất cả các đáp ứng. Một số mã này thông báo trước có text truyền tiếp theo.
Số đầu tiên của đáp ứng xác định sự thành công, thất bại hoặc quá trình xử lý của lệnh trước đó.
1xx - Informative message 2xx - Command ok
3xx - Command ok so far, send the rest of it.
4xx - Command was correct, but couldn't be performed for some reason.
5xx - Command unimplemented, or incorrect, or a serious program error occurred.
Số tiếp theo trong mã xác định loại đáp ứng
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
Các mã đáp ứng cụ thể sẽ được trình bày cùng với từng lệnh. Ngoài ra còn có các đáp ứng chung có thể nhận được bất cứ lúc nào.
Các mã đáp ứng trạng thái cụ thể có thể chứa các tham số dưới dạng các số và tên. Số hiệu và kiểu của từng tham số được đặt cho từng mã đáp ứng để có thể đơn giản hoá việc phiên dịch các đáp ứng.
Các tham số được phân cách với các mã đáp ứng dạng số và phân cách với nhau bằng một dấu trắng. Tất cả các tham số dạng số là thập phân bắt đầu sau dấu trắng phân cách, và kết thúc trước một dấu trắng phân cách hoặc cặp CRLF cuối dòng. Các tham số chuỗi ký tự có thể bắt đầu sau dấu trắng phân cách và kết thúc trước dấu trắng phân cách tiếp theo hoặc cặp CRLF ở cuối dòng. (Các tham số chuỗi có
thể không chứa các dấu trắng). Tất cả các text nếu có trong đáp ứng mà không phải là tham số của đáp ứng phải đi theo và được phân cách với tham số cuối cùng bằng một dấu trắng. Chú ý rằng đoạn text đi theo một đáp ứng dạng số có thể thay đổi tuỳ theo việc áp dụng giao thức ở phía server. Mã số 3 chữ số có thể sử dụng để xác định đáp ứng nào được gửi.
Người ta đã cung cấp một kiểu mã đáp ứng x9x dùng cho việc tìm lỗi. Vì nhiều kết quả dò lỗi có thể được phân loại dưới dạng "các thông điệp nhiều thông tin", nên các đáp ứng từ 190 đến 199 nên được sử dụng làm các kết quả dò lỗi. Nếu phù hợp với một ứng dụng cụ thể, các mã x9x khác có thể được sử dụng để dò lỗi. (Lấy một ví dụ là có thể sử dụng 290 để nhận một yêu cầu dò lỗi từ xa).
Các đáp ứng chung (General Responses)
Dưới đây là các đáp ứng chung có thể được nntp server gửi đi.
Các đáp ứng này không phải là quy định cụ thể đối với các lệnh, nhưng có thể được trả về dưới dạng kết quả của việc thiết lập đường nối, không thực hiện được tác vụ nào đó hoặc một số điều kiện bất thường.
Nói chung, các mã 1xx có thể được bỏ đi hoặc hiển thị nếu muốn; mã 200 hoặc 201 được gửi khi khởi đầu đường nối tới nntp server dựa trên quyền hạn được gửi tin (Post); mã 400 sẽ được trả về khi nntp không tiếp tục dịch vụ (do yêu cầu của người điều hành) và các mã 5xx chỉ định rằng lệnh không thể thực hiện được vì một số lý do không bình thường nào đó.
100 help text 190 through 199 debug output
200 server ready - posting allowed 201 server ready - no posting allowed 400 service discontinued
500 command not recognized 501 command syntax error
502 access restriction or permission denied 503 program fault - command not performed