1.6.1. Giới thiệu
Giao thức POP3 cho phép một máy trạm có thể truy nhập để lấy thư trên máy
chủ. Nó định nghĩa cách thức giao tiếp với POP3 Server bởi các lệnh chuẩn được quy định trong RFC 1081 để lấy thư về.
1.6.2. Mô hình hoạt động phiên giao dịch
Vào thời điểm bắt đầu, tiến trình phía Server bắt đầu dịch vụ POP3 bằng cách
”lắng nghe” trên cổng TCP 110. Thuật ngữ ”lắng nghe” ở đây được hiểu theo nghĩa là tiến trình phía Server luôn luôn tiếp nhận các thông tin đến ở cổng dịch vụ mà nó cung cấp - trong trường hợp này là cổng dịch vụ 110 - xử lý và gửi kết quả về cho tiến trình yêu cầu dịch vụ phía Client.
Khi một tiến trình phía Client muốn sử dụng dịch vụ, nó thiết lập một kết nối
TCP tới máy chủ phía Server. Khi kết nối được thiết lập, POP3 Server gửi một thông
báo chấp nhận và sau đó tiến trình phía Client và POP3 Server có thể trao đổi các lệnh
cũng như các thông tin phản hồi cho đến khi kết nối bị hủy bỏ hoặc phiên giao dịch kết
thúc.
Các lệnh trong POP3 bao gồm từ khóa, có thể theo sau là một hoặc nhiều tham
số. Tất cả các lệnh đều được kết thúc bởi cặp ký tự CRLF. Từ khóa và các tham số là các kí tự in được trong bảng mãkí tự ASCII, giữa chúng được phân cách bởi một kí tự
dấu cách trống. Từ khóa có thể dài ba hoặc bốn kí tự, còn các tham số có thể dài tới
bốn mươi kí tự.
Thông tin phản hồi của POP3 bao gồm một thông báo trạng thái và một từ khóa có thể theo sau một số thông tin thêm. Tất cả các thông tin phản hồi đều được kết thúc
bởi cặp ký tự CRLF.
Có hai thông báo trạng thái là: Xác định (”+OK”) để xác nhận thành công và phủ định (”-ERR”) để xác nhận trong trường hợp có lỗi.
Các thông tin phản hồi cho các lệnh thực tế là nhiều dòng. Trong những trường
hợp này, sau khi gửi dòng đầu tiên của thông tin phản hồi và một cặp CRLF, bất cứ
một dòng thêm vào nào được gửi thì đều phải kết thúc bằng cặp CRLF. Khi tất cả các
thông tin phản hồi đều đã được gửi, một dòng cuối cùng được gửi, bao gồm mã kết
thúc (mã thập phân 046, ”.”) và một cặp CRLF.
Nếu có một dòng nào trong thông tin phản hồi đa dòng bắt đầu với một mã ký tự
kết thúc (dấu chấm ”.”), thì dòng đó coi như chưa được xử lí xong đối với thông tin phản hồi . Vì vậy, một thông tin phản hồi đa dòng được kết thúc bởi bộ năm octets là ”CRLF. CRLF”.
Một phiên giao dịch POP3 phải trải qua một số các trạng thái trong suốt thời gian
tồn tại của phiên làm việc. Mỗi lần kết nối TCP được mở và POP3 Server gửi thông
báo chấp nhận, phiên làm việc chuyển sang trang thái AUTHORIZATION. ở trạng
thái này, Client phải tự định danh của mình cho POP3 Server.
Mỗi khi Client thực hiện xong việc định danh, Server nhận được tài nguyên
tương ứng với hộp thư của Client, nó sẽ chuyển sang trạng thái TRANSACTION.
Trong trạng thái này, các yêu cầu của Client được chuyển sang và được thực hiện bên phía POP3 Server. Khi Client đưa ra lệnh QUIT, phiên làm việc chuyển sang
trạng thái UPDATE. Trong trạng thái này, POP3 Server giải phóng mọi tài nguyên thu
được trong suốt trạng thái TRANSACTION và kết thúc. Đồng thời, kết nối TCP kết
thúc.
Một POP3 Server có thể có một bộ xác định thời gian. Nếu sau một khoảng thời gian xác định trước mà phía Client không có tác động gì thì POP3 Server có thể tự động kết thúc phiên làm việc. Khoảng thời gian này ít nhất là khoảng 10 phút.
Nếu trong khoảng thời gian này có bất kì một lệnh nào từ phía Client, bộ xác định thời gian sẽ được khởi tạo lại. Khi hết thời gian hiệu lực, phiên làm việc không
chuyển sang trạng thái UPDATE. Server sẽ đóng kết nối TCP mà không chuyển bất kì một thư nào cũng như các thông tin phản hồi nào về phía Client.
Như vậy, ta thấy một phiên làm việc của POP3 phải trải qua ba trạng thái: trạng
Phần tiếp theo sẽ trình bày chi tiết về sự hoạt động của POP3 Server trong từng
trạng thái của phiên giao dịch và các lệnh có thể thực hiện trong mỗi trạng thái đó.