PHÂN TÍCH GIAO THỨC POP3 (RFC 1081,1082)

Một phần của tài liệu Đề tài xây dựng ứng dụng webmail (Trang 53 - 56)

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 đó.

Một phần của tài liệu Đề tài xây dựng ứng dụng webmail (Trang 53 - 56)