Đồ án Xây dựng Dịch Vụ Thư Điện Tử (Mailling System) - Trương Minh Tuyến
Bạn đang xem 20 trang mẫu của tài liệu "Đồ án Xây dựng Dịch Vụ Thư Điện Tử (Mailling System) - Trương Minh Tuyến", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- do_an_xay_dung_dich_vu_thu_dien_tu_mailling_system_truong_mi.pdf
Nội dung text: Đồ án Xây dựng Dịch Vụ Thư Điện Tử (Mailling System) - Trương Minh Tuyến
- Simpo PDF Merge and Split Unregistered Version - BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN Xây dựng Dịch Vụ Thư Điện Tử (Mailling System) GVHD :Hồ Sỹ Bàng SVTH : Trương Minh Tuyến Lớp : 39TH. MSSV : 97S1169. Nha Trang, 9/2003.
- Simpo PDF Merge and Split Unregistered Version - Lời cảm ơn Trước hết, Em xin chân thành cảm ơn các thầy giáo, cô giáo khoa Đại học Đại Cương của trường Đại học Thuỷ Sản Nha Trang và khoa Công Nghệ Thông Tin trường Đại học Bách Khoa Hà Nội đã trang bị cho tôi những kiến thức cơ bản cần thiết trong những năm học vừa qua để tôi có thể thực hiện tốt cuốn đồ án này cũng như đủ tự tin để làm việc sau này. Em xin chân thành cảm ơn thầy giáo Hồ Sỹ Bàng đã tận tình hướng dẫn và giúp đỡ em hoàn thành cuốn đồ án này. Ngoài ra, cũng xin gởi lời cám ơn tới anh chị em ở Trung Tâm Vi Tính TDT Nha Trang và tất cả bạn bè tôi đã tạo mọi điều kiện cho tôi hoàn thành đồ án. Mặc dù đã rất cố gắng, nhưng trong một khoảng thời gian cho phép, cũng như hạn chế về mặt kiến thức của bản thân, cuốn đồ án này không thể tránh khỏi nhiều thiếu sót. Chính vì vậy, tôi rất mong nhận được sự góp ý của các thầy giáo, cô giáo cũng như của bạn bè và những người có quan tâm đến lĩnh vực mà cuốn đồ án này đã được trình bày. Nha Trang, tháng 5 năm 2003 Trương Minh Tuyến
- Simpo PDF Merge and Split Unregistered Version - Lời mở đầu Ngày nay với sự phát triển mạnh mẽ của tin học và công nghệ Internet, hầu như mọi người của cộng đồng Internet đều thấy rõ lợi ích mà các dịch vụ do môi trường Internet đem lại. Một trong những dịch vụ phổ biến nhất, ra đời sớm nhất đó là dịch vụ thư tín điện tử. Thư điện tử (Electronic Mail) hay còn gọi tắc là E-Mail, một dịch vụ được triển khai trên các mạng máy tính cho phép người dùng có thể trao đổi thư từ với nhau mà không phải dùng đến giấy tờ như trong hệ thống thư tín bưu chính thông thường. Khái niệm “thư” ở đây được hiểu là một tệp dữ liệu dạng ASCII text (văn bản dạng chuẩn). Trong nhiều trường hợp, thư còn có từ đồng nghĩa là thông điệp (message), dù rằng đúng ra thông điệp cần được hiểu là một thư ngắn không quá một câu. Việc gửi thư được thực hiện theo phương thức truyền gửi các tệp này trên đường truyền dẫn của mạng. Thư tín điện tử không chỉ đơn thuần là các ghi chép cá nhân được gởi từ một người dùng đến một người dùng khác trên mạng, mà khi dùng nó bạn có thể gửi cho nhau cả các loại tài liệu như: các văn bản, các báo cáo, các chương trình máy tính, và nhiều thông tin khác nữa. Lợi ích của nó là: cho phép những người ở cách xa nhau có thể cùng làm việc chung với nhau trên cùng một dự án, đó là những dự án nghiên cứu lớn đòi hỏi cần phải có nhiều người tham gia, và những người tham gia vào các dự án này có thể không nằm trong cùng một quốc gia, họ có thể thuộc nhiều vùng khác nhau trên thế giới, và có thể họ chưa bao giờ biết mặt nhau. Thay vì trao đổi với nhau qua đường bưu điện bình thường, thì người ta có thể sử dụng Internet. Nó cho phép liên lạc nhanh hơn, thuận tiện hơn, và chi phí của nó thấp hơn rất nhiều so với trao đổi thư từ qua đường bưu điện bình thường. Đối với thực tế ở nước ta, là một nước đang phát triển, việc gia nhập vào Internet chỉ mới được thực hiện được trong một vài năm gần đây. Nhu cầu sử dụng Mail để gởi và nhận thông tin với thế giới bên ngoài là rất lớn. Tuy nhiên, chi phí cho mục đích này là khá lớn so với các nước khác. Do đó, đối với một công ty có tầm cỡ nhỏ hoặc trung bình, việc trang bị cho mỗi thành viên của công ty một Account Mail riêng dùng để gởi và nhận Mail với bên ngoài thì không cần thiết và hết sức lãng phí. Thông thường, khi sử dụng dịch vụ này, người ta rất hiếm khi quan tâm xem hệ thống bên trong đã thực hiện như thế nào. Vì vậy, họ (người sử dụng) mới chỉ thấy được một nửa của ứng dụng dịch vụ Email. Phần ứng dụng được gọi là Mail Client, hay là sử dụng dịch vụ thư tín phía máy trạm. Để hiểu rõ hơn hoạt động bên trong của ứng dụng E-Mail ở phần cung cấp dịch vụ mà thường được gọi là Mail Server, cuốn đồ án này sẽ trình bày về các mô hình truyền thông thư tín, các giao thức truyền thông chuẩn, các hoạt động của một hệ Mail Server.v.v. để có thể phục vụ cho dịch vụ thư tín điện tử phía máy trạm. Mục đích của cuốn đồ án là tìm hiểu và nghiên cứu các giao thức truyền thông thư tín để thiết kế chương trình dịch vụ thư điện tử, tiêu biểu đó là hai
- Simpo PDF Merge and Split Unregistered Version - giao thức SMTP, POP3, IMAP4. Đây là một trong những giao thức truyền thông thư tín đã được thế giới sử dụng rộng rãi. Vì thời gian có hạn và có quá nhiều vấn đề có liên quan, do đó đồ án chỉ trình bày những vấn đề cơ bản nhất về dịch vụ thư điện tử và cài đặt một chương trình thử nghiệm cho dịch vụ thư điện tử. Một lần nữa em xin chân thành cám ơn Thầy Hồ Sỹ Bàng, Là người thầy đã tận tâm giúp đỡ em hoàn thành đồ án tốt đẹp. Trương Minh Tuyến.
- Simpo PDF GVHD: Merge Thandạc Splitsĩ : H Unregisteredồ Sỹ Bàng Version - Mailling System Chương I : Tổng quan về mạng và các dịch vụ thông dụng 3 I. Động lực thúc đẩy sự ra đời mô hình mạng Client/Server : 4 II. Nguyên tắc hoạt động mạng theo mô hình client/Server : 4 III.Các khái niệm cơ bạn về mạng : 5 IV.Các ứng dụng Client/Server trên Internet thông dụng : 10 1. World Wide Web(www): 10 2. Thư điện tử (E-Mail): 12 3. Dịch vụ Chat: 14 4. Dịch vụ FPT (File Transfer Protocol) 14 5. Đăng nhập từ xa Telnet 15 6. Archie (tìm kiếm tập tin) 16 7. Gopher(Dịch vụ tra cứu thông tin theo thực đơn) 16 8. Tìm kiếm thông tin theo chỉ số (WAIS) 16 9. Dịch vụ tên miền (Domain Name System - DNS) 17 10. Dịch vụ nhóm tin (Use Net News Groups) 18 chương II: Kiến Trúc Mạng Và Các PROTOCOL Truyền Thông Mạng 19 I. Kiến trúc mạng 20 1. kiến trúc vật lý 20 2. Kiến trúc logic mạng 21 II.Truyền thông mạng và kiến trúc phân tầng của protocol 22 1. Truyền thông mạng 22 2. kiến trúc phân tầng và mô hình ISO của protocol 22 3.Giao thức TCP/IP 26 A. Các thành phần liên quan tới giao thức TCP/IP 27 B. Những TCP/IP protocols và các công cụ 29 C. Thành Phần và hình dạng của địa chỉ IP 30 D. Subnet Masks 32 Chương III: Các Giao Thức Truyền Nhận MAIL 35 I. Các khái niệm cơ bản 36 1. Cấu trúc của một bức thư: 37 2. Tác nhân người sử dụng (The User Agent) 38 3. Gửi thư (Sending Email) 38 4. Đọc thư (Reading Email) 38 5. Định dạng thông điệp (Message Formats) 39 II. Chuẩn RFC 822 38 III.GIAO THỨC SMTP(RFC821) 43 1. Ý nghĩa các lệnh của một phiên giao dịch SMTP Server: 44 2. Cú pháp của các lệnh 48 3. Các reply của SMTP Server 48 4. Ví dụ về một giao dịch của SMTP 49 5. Nghi thức mở rộng ESMTP 50 IV. GIAO THỨC POP3(RFC1081, RFC1082) 50 1. Các trạng thái của pop3 51 2. Các lệnh của POP3: 52 3. Ví dụ về một session của Pop3: 54 V. GIAO THỨC IMAP4(RFC2060, RFC2193 ) 54 1. Các trạng thái của IMAP4 55 2. Các lệnh của IMAP4: 56 Chương IV: Giới Thiệu Ngôn Ngữ Lập Trình JAVA 62 I.Tổng quan về ngôn ngữ lập trình Java 63 SVTH : Trương Minh Tuyến
- Simpo PDF GVHD: Merge Thandạc Splitsĩ : H Unregisteredồ Sỹ Bàng Version - Mailling System 1. Sự xuất hiện ngôn ngữ Java 63 2. Các tính chất , ưu khuyết điểm của Java 67 II. Một số kỹ thuật Lập trình mạng trong java 70 1. Các kiến thức cơ bản về Networking 70 2. Ports 70 3. Networking 72 4. URLs 73 5. Applet Context 74 6. Socket 74 7. Java Security 82 8. Xử Lý Đa Tiến Trình(multitasking) và Đa Luồng(multithreading) 82 9. Exceptions 89 III. Java Server page(JSP) 90 IV. Cơ sở dữ liệu trong Java 92 1. JDBC 92 2. ODBC và JDBC 94 3. Kết nối tới Cơ sở dữ liệu 95 4.Truy suất Cơ sở dữ liệu trong java 95 Chương V : Phân tích, xây dựng và cài đặt chương trình Server 97 I.Nhận xét về các giao thức mail và các gói trong chương trình. 98 1.Nhận xét về giao thức 98 2.Các gói trong chương trình 100 II. Mô hình cây thư mục lưu trữ mail trên máy 102 III.Lưu trữ thông tin người dùng 104 IV.Lưu đồ mô phỏng tiến trình của các giao thức 105 1. Tiến trình giao dịch SMTP 105 2. Tiến trình giao dịch POP3 107 3.Tiến trình giao dịch imap4 108 V.Một số hình ảnh minh hoạ và diễn giải chương trình 112 VI.Cài đặt và chạy chương trình 119 VII.Hướng phát triển chương trình 119 Chương VI : Phân tích, xây dựng và cài đặt chương Web mail 115 I.Các giao diện của chương trình 122 1.Giao diện đăng ký Account 122 2.Giao diện kiểm tra mail 123 3.Giao diện thao tác Thư mục mail 125 4.Một số giao diện khác 126 II. Cách cài đặt và xử lý chương trình Web mail 128 III. Những mặt hạn chế của Web mail 129 SVTH : Trương Minh Tuyến
- Simpo PDF GVHD: Merge Thandạc Splitsĩ.Hồ Unregistered Sỹ Bàng Version - Mailling System TỔNG QUAN VỀ EMAIL VÀ CÁC GIAO THỨC MAIL 1.TỔNG QUAN. - Là dịch vụ rất phổ biến và thông dụng trong mạng Internet/Intranet và hầu như không thể thiếu được trong Internet/Intranet hiện nay. Tuy nhiên không phải là dịch vụ “từ đầu - đến cuối” (end to end). Nghĩa là dịch vụ này không đòi hỏi hai máy tính gởi và nhận thư phải nối trực tiếp với nhau để thực hiện việc chuyển thư. Nó là dịch vụ kiểu lưu và chuyển tiếp (store and forward) thư được chuyển từ máy này sang máy khác cho tới khi máy đích nhận được. Người nhận cũng chỉ thực hiện một số thao tác đơn giản để lấy thư, đọc thư và nếu cần thì cho in ra. Cách liên lạc này thuận tiện hơn nhiều so với gởi thư thông thường qua bức điện hoặc Fax, lại rẻ và nhanh hơn. Cách thực hiện việc chuyển thư không cần phải kết nối trực tiếp với nhau để chuyển thư, thư có thể được chuyển từ máy này đến máy khác cho tới máy đích Giao thức truyền thống sử dụng cho hệ thống thư điện tử của Internet là SMTP(Simple Mail Transfer Protocol). Cơ chế hoạt động của thư điện tử(E-mail): 2.GIAO THỨC SMTP(RFC821) - Mục đích của giao thức SMTP là truyền mail một cách tin cậy và hiệu quả. Giao thức SMTP không phụ thuộc vào bất kỳ hệ thống đặc biệt nào và nó chỉ yêu cầu trật tự của dữ liệu truyền trên kênh truyền đảm bảo tính tin cậy. User SMTP Commands / Replies Sender Receiver and Mail SMTP SMTP File File System System Sender - SMTP Receiver - SMTP Mô hình tổng quát sử dụng giao thức SMTP a. Ý nghĩa các lệnh SMTP: - Những lệnh SMTP định nghĩa sự truyền mail hay chức năng của hệ thống mail được yêu cầu bởi user. Những lệnh SMTP là những chuỗi ký tự kết thúc bằng . Bản thân mã lệnh là những ký tự chữ (alphabetic) kết thúc bởi nếu có SVTH : Trương Minh Tuyến Trang 3
- Simpo PDF GVHD: Merge Thandạc Splitsĩ.Hồ Unregistered Sỹ Bàng Version - Mailling System những tham số theo sau và nếu không có thì . Cú pháp của những mailbox phải tuân theo những qui ước của receiver. HELLO (HELO) Lệnh này được dùng để xác định ra ai là người gởi mail. Vùng đối số chứa host name của bên gởi. Bên nhận định danh cho nó đối với sender thông qua việc bắt tay trả lời kết nối. Với lệnh này và sự trả lời OK để xác định rằng cả sender và reciever đang ở trạng thái khởi đầu, tất cả các bảng trạng thái và buffer đã được xoá sạch. MAIL Lệnh này được dùng để khởi tạo quá trình trao đổi mail mà ở đó mail data được phân phát tới một hay nhiều mailbox. RECIPIENT (RCPT) Lệnh này được sử dụng để định ra một người nhận mail, nhiều người nhận (cùng một nội dung mail) sẽ được xác định bằng cách gởi nhiều lệnh này. DATA Reciever sẽ xử lý những dòng theo sau lệnh khi mail data đến từ sender. Lệnh này tạo ra mail data để đặt vào mail data buffer. Mail data có thể chứa bất kỳ ký tự nào trong bộ mã ASCII. Mail data được kết thúc bởi một dòng mà nó chỉ chứa một dấu chấm “ .” SEND Lệnh này được dùng để khởi tạo sự truyền mail mà ở đó maildata sẽ được truyền đi tới một hay nhiều người nhận. SEND OR MAIL (SOML) Lệnh này được sử dụng để khởi tạo sự truyền mail mà ở đó mail data một hay nhiều người nhận hoặc các mailbox. RESET (RSET) Lệnh này xác định sự truyền mail hiện tại đã bị huỷ bỏ. Các sender, recipient, mail data đã lưu sẽ bị huỷ bỏ và tất cả các bảng trạng thái, các buffer bị xoá. Receiver phải gửi một reply OK. VERIFY (VRFY) Lệnh này yêu cầu receiver xác nhận đối số là định danh một user. Nếu nó là một user name, full name của user đó (nếu receiver biết) và mailbox đặc tả đầy đủ được trả về.Lệnh này không ảnh hưởng đến reverse-path buffer, forward-path buffer và data mail buffer. EXPAND (EXPN) Lệnh này yêu cầu receiver xác nhận đối số là một mailing list(danh sách địa chỉ) và trả về một thành phần trong danh sách đó. Full name của các user (nếu biết) và những mailbox đã xác định đầy đủ được trả về trong một reply gồm nhiều dòng. HELP Lệnh này cho receiver những thông tin giúp đỡ cho sender. Lệnh này có thể nhận một đối số (có thể là tên lệnh) và trả về thông tin chi tiết. Lệnh này không ảnh hưởng đến reverse-path buffer, forward-path buffer và data mail buffer. NOOP SVTH : Trương Minh Tuyến Trang 4
- Simpo PDF GVHD: Merge Thandạc Splitsĩ.Hồ Unregistered Sỹ Bàng Version - Mailling System Lệnh này không ảnh hưởng các tham số hay các lệnh được đưa vào trước nó, nó đặc tả không có một hành động nào khác hơn là receiver gửi một reply OK. Lệnh này không ảnh hưởng đến reverse-path buffer, forward-path buffer và data mail buffer. QUIT Lệnh này định rõ receiver phải gửi một reply OK và sau đó đóng kênh truyền. Receiver sẽ không đóng kênh truyền cho đến khi nó nhận và trả lời cho lệnh QUIT (ngay cả nếu có một lỗi xảy ra). b. Cú pháp của các lệnh - Các lệnh bao gồm một mã lệnh theo sau là đối số của lệnh. Mã lệnh là 4 ký tự alphabetic. Không phân biệt chữ thường hoặc chữ hoa. - Giữa mã lệnh và đối số là một hoặc nhiều khoảng trắng. Tuy nhiên trong reverse-path và forward-path, kiểu chữ rất quan trọng. Đặc biệt, trên một số host, tên user cũng phân biệt kiểu chữ hoa và thường. - Đối số bao gồm một chuỗi ký tự có chiều dài biến đổi kết thúc bằng chuỗi ký tự “ “. - Dấu ngoặc vuông biểu diễn cho một vùng đối số tuỳ chọn. - Sau đây là những lệnh SMTP: HELO MAIL FROM: RCPT TO: DATA RSET SEND FROM: SOML FROM: SAML FROM: VRFY EXPN HELP [ ] NOOP QUIT c. Ví dụ về một giao dịch của SMTP 1. Server : 220 sample2 Simple Mail Transfer Service Ready khi được kết nối qua nghi thức TCP/IP, máy nhận trả lời với mã 220 đầu báo cho máy gởi biết dịch vụ SMTP đã sẵn sàng. 2. Client : HELLO tmt01vn Bên nhận đã sẵn sàng, bên gởi gởi HELLO và xưng tên người gởi 3. Server : 250 hello. Trả với mã 250 báo cho biết bên nhận đã sẵn sàng 4. Client : MAIL FROM: Bên gởi dùng lệnh MAIL để khởi động phiên giao dịch. Cú pháp như trên cho bên nhận biết địa chỉ bên gởi ( mailbox của bên gởi ) để bên nhận gởi thông báo lỗi nếu có về bên gởi 5. Server : 250 OK Trả lời với mã 250 cho biết sẵn sàng 6. Client : RCPT TO: 7. Server: 250 OK 8. Client : RCPT TO: phungkhn1@yahoo.com SVTH : Trương Minh Tuyến Trang 5
- Simpo PDF GVHD: Merge Thandạc Splitsĩ.Hồ Unregistered Sỹ Bàng Version - Mailling System Muốn gởi cho bao nhiêu người dùng bấy nhiêu lệnh RCPT kèm theo địa chỉ nhận, bên nhận nếu đúng sẽ trả về mã 250 kèm theo OK 9. Server : 550 No such user here Báo kèm theo mã 550 cho biết không có mailbox trên địa chỉ trên đối với nơi nhận 10. Client : DATA Báo cho bên nhận biết dữ liệu bắt đầu từ sau từ DATA 11. Server : 354 Start mail input; end with . Mã 354 báo cho biết đã sẵn sàng nhận mail, kết thúc mail với ký tự CRLF.CRLF 12. Client : Bắt đầu thân của mail 13. v v 14. Client : ( đến khi kết thúc nhấn CRLF.CRLF ) 15. Server : 250 OK 16. Client : QUIT Phát lệnh báo kết thúc phiên giao dịch 17. Server : 221 sample2 Service closing transmission channel Mã 221 đóng kết nối đã thiết lập Ví dụ trên sau phiên làm việc mail được gởi tới địa chỉ mail phungkhn@yahoo.com 3. GIAO THỨC POP3(RFC1081, RFC1082) - Post Office Protocol Version 3 (Pop3) là một giao thức chuẩn trên internet cho phép một một workstation có thể truy xuất động đến một maildrop trên một server từ xa. Có nghĩa là Pop3 được dùng để cho phép workstation lấy mail mà server đang giữ nó. - Port chuẩn dành cho dịch vụ Pop3 đươc qui ước là TCP port 110. Pop3 server sẽ khởi động và lắng nghe trên port này. Một client muốn sử dụng các dịch vụ của Pop3 thì nó phải thiết lập một kết nối tới Pop3 server. Khi kết nối được thiết lập thì Pop3 server sẽ gởi tới client một lời chào. Sau đó, Pop3 Client và Pop3 Server sau đó trao đổi các request và reply cho đến khi kết nối được đóng hay loại bỏ. - Các lệnh trong Pop3 không phân biệt chữ thường và chữ hoa, bao gồm một tập từ khoá (chiều dài từ 3 đến 4 ký tự), có thể có hoặc không có đối số theo sau (chiều dài của đối số có thể lên đến 40 ký tự). Các từ khoá và đối số phân cách nhau bởi một ký tự trắng đơn, và không phải là các ký tự đặc biệt. - Các reply trong Pop3 bao gồm phần chỉ định trạng thái và từ khoá có thể có các thông tin hỗ trợ theo sau. Chiều dài của reply có thể lên tới 512 ký tự, kết thúc bằng cặp CRLF. Có hai loại chỉ định trạng thái là: “+OK” và “-ERR”. Server phải gởi các chỉ định trạng thái ở dạng chữ hoa. a. Các lệnh của POP3: Các lệnh có tác dụng trong quá trình xác nhận (authorization): USER username: + Đối số username là một chuỗi định danh một mailbox, chỉ có ý nghĩa đối với server. + Trả lời: +OK tên mailbox có hiệu lực. -ERR không chấp nhận tên mailbox. SVTH : Trương Minh Tuyến Trang 6
- Simpo PDF GVHD: Merge Thandạc Splitsĩ.Hồ Unregistered Sỹ Bàng Version - Mailling System PASS string: + Đối số là một password cho mailbox hay server. + Trả lời: +OK khoá maildrop và sẵn sàng. -ERR password không hiệu lực. -ERR không được phép khoá maildrop. Các lệnh có tác dụng trong quá trình giao dịch (transaction): STAT: + Không có đối số. + Trả lời: +OK nn mm. “+OK” theo sau là khoảng trắng đơn, tiếp theo là nn: số message, khoảng trắng đơn, mm: kích thước của maildrop tính theo byte. + Các message được đánh dấu xoá không được đếm trong tổng số. LIST [msg]: + Đối số: số thứ tự của message, có thể không tham khảo tới các message đã được đánh dấu xoá. + Trả lời: +OK scan listing follow. -ERR nosuch message. Một scan listing bao gồm số thứ tự message (message number) của message đó, theo sau là khoảng trắng đơn, và kích thước chính xác của message đó tính theo byte. RETR msg: + Đối số: số thứ tự của message, có thể không tham khảo tới các message đã được đánh dấu xoá. + Trả lời: +OK message follows -ERR no such message Trả lời của lệnh RETR là multi-line. DELE msg: + Đối số: số thứ tự của message, có thể không tham khảo tới các message đã được đánh dấu xoá. + Trả lời: +OK message deleted -ERR no such message Pop3 server sẽ đánh dấu xoá các message này. Tuy nhiên, quá trình xoá thật sự sẽ diễn ra ở trạng thái cập nhật (Update). NOOP: + Không có đối số. + Trả lời: +OK Pop3 server không làm gì hết, chỉ hồi âm lại cho client với trả lời: “+OK”. RSET: + Không có đối số. + Trả lời: +OK. Phục hồi lại các message đã bị đánh dấu xoá bởi Pop3 server. QUIT: + Không có đối số. + Trả lời: +OK. SVTH : Trương Minh Tuyến Trang 7
- Simpo PDF GVHD: Merge Thandạc Splitsĩ.Hồ Unregistered Sỹ Bàng Version - Mailling System b. Ví dụ về một session của Pop3: Giai đoạn 1 : Nhận dạng user CLIENT : USER Tuyentm // cho biết tên user là Tuyentm SERVER : +OK // báo thành công CLIENT : PASS kimphung // cho biết password SERVER : +OK complet: maildrop has 2 messages ( 520 octets ) Giai đoạn 2 : Trao đổi CLIENT : STAT // số mail có trong mailbox SERVER : +OK 2 520 // có 2 mail với tổng kích thước là 520 CLIENT : LIST // Liệt kê các ID và kích thước các mail SERVER : +OK 2 message ( 520 octets ) SERVER : 1 110 // mail thứ 1 kích thước 110 SERVER : 2 410 // mail thứ 2 kích thước 410 CLIENT : LIST 1 // Cho thông tin về mail có ID là 1 SERVER : +OK 1 110 CLIENT : LIST 4 SERVER : -ERR nosuch message, only 2 message in maildrop .v v Giai đoạn 3 : CLIENT : QUIT ; đóng kết nối TCP hiện hành SERVER : +OK dhbk POP3 server signing off Chú ý rằng các message bị đánh dấu để xoá bằng lệnh DELE thực sự chưa bị xoá ngay để nếu sau đó ta có thể dùng lệnh phục hồi không xoá bằng lệnh RSET, chúng chỉ thực sự bị xoá bỏ khỏi maildrop khi bước vào giai đoạn Update ( khi gởi lệnh QUIT). 4. GIAO THỨC IMAP4(RFC2060, RFC2193 ) - Internet Message Access Protocol (IMAP) cung cấp lệnh để phần mềm thư điện tử trên máy khách và máy chủ dùng trong trao đổi thông tin phiên bản 4( IMAP4rev1). Đó là phương pháp để người dùng cuối truy cập thông điệp thư điện tử hay bản tin điện tử từ máy chủ về thư trong môi trường cộng tác. Nó cho phép chương trình thư điện tử dùng cho máy khách - như Netscape Mail, Eudora của Qualcomm, Lotus Notes hay Microsoft Outlook - lấy thông điệp từ xa trên máy chủ một cách dễ dàng như trên đĩa cứng cục bộ. - IMAP khác với giao thức truy cập thư điện tử Post Office Protocol (POP). POP lưu trữ toàn bộ thông điệp trên máy chủ. Người dùng kết nối bằng đường điện thoại vào máy chủ và POP sẽ đưa các thông điệp vào in-box của người dùng, sau đó xoá thư trên máy chủ. Hai giao thức này đã được dùng từ hơn 10 năm nay. Theo một nhà phân tích thì khác biệt chính giữa POP (phiên bản hiện hành 3.0) và IMAP (phiên bản hiện hành 4.0) là POP3 cho người dùng ít quyền điều khiển hơn trên thông điệp. a. Các lệnh của IMAP4: - Những tập lệnh của IMAP4rev1 được định nghĩa trong rfc2060 cũng nhưng quá trình bắt đầu và kết thúc của một phiên làm việc. Vì trong chương trình em chỉ sử SVTH : Trương Minh Tuyến Trang 8
- Simpo PDF GVHD: Merge Thandạc Splitsĩ.Hồ Unregistered Sỹ Bàng Version - Mailling System dụng một số lệnh cơ bản trong bộ giao thức này, dưới đây là ý nghĩ cũng như cách sử dụng chúng. CAPABILITY - Arguments: none - Kết quả trả về : OK - capability completed BAD - command unknown or arguments invalid - Đây là lệnh thực hiện trước tiên của bất kỳ một trình mail Client nào muốn lấy mail từ trình chủ bằng giao thức IMAP, mục đích là kiểm tra version giao thức có đáp ứng được yêu cầu không. Version hiện nay đang dùng là IMAP4(IMAP4rev1). Ví dụ C: abcd CAPABILITY S: * CAPABILITY IMAP4rev1 S: abcd OK CAPABILITY completed LOGIN - Arguments: [user name] [password ] - Kết quả trả về là: OK - login completed, now in authenticated state NO - login failure: user name or password rejected BAD - command unknown or arguments invalid - Lệnh này để xác nhận người sử dụng có hợp pháp không? Nếu thành công thì người dùng sẽ thực hiện các thao tác lệnh tiếp theo. Ví dụ C: a001 LOGIN tuyentm01 kimphung S: a001 OK LOGIN completed CHECK - Arguments: none - Kết quả trả về: OK - check completed BAD - command unknown or arguments invalid - Lệnh này dùng để kiểm tra tại thời điểm này lệnh SELECT đã thực hiện hay chưa, nếu thực hiện rồi trả về OK. SELECT - Arguments: mailbox name (tên hòm thư) - Kết quả trả về : OK - select completed, now in selected state NO - select failure, now in authenticated state: no such mailbox, can't access mailbox BAD - command unknown or arguments invalid - Lệnh Select dùng để nhận biết được hòm thư có bao nhiêu thư bao gồm thư mới, thư đọc rồi và thư đã xoá. Lệnh này cho phép ta thay đổi thuộc tính của hòm thư cũng như nhưng lá thư mà chúng lưu trữ bởi các lệnh khác trong IMAP. Ví dụ C: A142 SELECT INBOX S: * 172 EXISTS S: * 1 RECENT S: * OK [UNSEEN 12] Message 12 is first unseen S: * OK [UIDVALIDITY 3857529045] UIDs valid S: * FLAGS (\Answered \Flagged \Deleted \Seen \Draft) S: * OK [PERMANENTFLAGS (\Deleted \Seen \*)] Limited SVTH : Trương Minh Tuyến Trang 9
- Simpo PDF GVHD: Merge Thandạc Splitsĩ.Hồ Unregistered Sỹ Bàng Version - Mailling System S: A142 OK [READ-WRITE] SELECT completed. - Trong ví dụ trên chúng ta quan tâm các thông số sau: EXISTS : tổng số lá thư mà hòm thư này lưu trữ ví dụ trên là 172 lá thư. RECENT : là số lá thư mới trong thời gian gần đây mà người sử dụng chưa đọc ví dụ trên là 1. UNSEEN : là tổng số lá thư củ mà người dùng chỉ nhìn thấy nhưng nội dung chưa xem qua. UIDVALIDITY : dùng để chỉ định trạng thái của hòm thư đây là một thông số không quan trong.Mổi mail Server sẽ có cách đặc tả thông số này khác nhau tuỳ từng mục đích sử dụng nó của các nhà quản trị mail thông số này liên quan đến lệnh UID. CLOSE - Arguments: none - Kết quả trả về : OK - close completed, now in authenticated state NO - close failure: no mailbox selected BAD - command unknown or arguments invalid - Lệnh này dùng để đóng lệnh SELECT lại hay có thể hiểu loại bỏ lệnh này và không lưu lại các thuộc tính đã thay đổi với hòm thư này. FETCH - Arguments: message set message data item names - Kết quả: OK - fetch completed NO - fetch error: can't fetch that data BAD - command unknown or arguments invalid - Lệnh dùng để hiển thị nội dung của một lá thư. Thông số theo sau gồm có hai thông số: đầu tiên là số thứ tự của lá thư và thông số thư hai là message data item names nhưng thông số này phải tuân theo RFC822 được trình bày ở trên. Ví dụ: C: A654 FETCH 2:4 (FLAGS BODY[HEADER.FIELDS (DATE FROM)]) S: * 2 FETCH S: * 3 FETCH S: * 4 FETCH S: A654 OK FETCH completed UID - Arguments: là các lệnh trong IMAP - Kết quả trả về: OK - UID command completed NO - UID command error BAD - command unknown or arguments invalid EXAMINE - Arguments: mailbox name - Kết quản trả về: OK - examine completed, now in selected state NO - examine failure, now in authenticated state: no SVTH : Trương Minh Tuyến Trang 10
- Simpo PDF GVHD: Merge Thandạc Splitsĩ.Hồ Unregistered Sỹ Bàng Version - Mailling System such mailbox, can't access mailbox BAD - command unknown or arguments invalid - Lệnh này tương tự như lệnh SELECT cùng một kế quả trả về nhưng khi dùng lệnh này chúng ta chỉ xem thông tin không thay đổi được trạng thái của hòm thư cũng như các thuộc tính của nó. Ví dụ: C: A932 EXAMINE Inbox S: * 17 EXISTS S: * 2 RECENT S: * OK [UNSEEN 8] Message 8 is first unseen S: * OK [UIDVALIDITY 3857529045] UIDs valid S: * FLAGS (\Answered \Flagged \Deleted \Seen \Draft) S: * OK [PERMANENTFLAGS ()] No permanent flags permitted S: A932 OK [READ-ONLY] EXAMINE completed CREATE - Arguments: tên hòm thư cần tạo. - Kết quả trả về:OK - create completed NO - create failure: can't create mailbox with that name BAD - command unknown or arguments invalid - Lênh tạo ra một hòm thư mới với tên đã chọn và trả lại là OK nếu quá trình tạo ra hòm thư trên Server không gặp lỗi. Ví dụ: C: A003 CREATE Tuyen S: A003 OK CREATE completed C: A004 CREATE Inbox S: A004 No mailbox name Exist DELETE - Arguments: tên hòm thư cần xoá. - Kết quả trả về:OK - delete completed NO - delete failure: can't delete mailbox with that name BAD - command unknown or arguments invalid - Lệnh xoá hòm thư, nếu xoá thành công thì kết quả nhận được là OK. Ví dụ: C: A682 LIST "" * S: * LIST () "/" Inbox S: * LIST () "/" Tuyen S: A682 OK LIST completed C: A683 DELETE Tuyen S: A683 OK DELETE completed C: A684 DELETE Tuyen S: A684 NO Name "Tuyen" has inferior hierarchical names C: A686 LIST "" * S: * LIST () "/" Inbox S: A686 OK LIST completed RENAME SVTH : Trương Minh Tuyến Trang 11
- Simpo PDF GVHD: Merge Thandạc Splitsĩ.Hồ Unregistered Sỹ Bàng Version - Mailling System - Arguments: (tên hòm thư tồn tại) (tên hòm thư mới). - Kết quả: OK - rename completed NO - rename failure: can't rename mailbox with that name, can't rename to mailbox with that name BAD - command unknown or arguments invalid - Lệnh chuyển đổi tên hòm thư, kết quả là OK nếu thành công. COPY - Arguments: tên lá thư đến tên hòm thư - Kết quả trả về:OK - copy completed NO - copy error: can't copy those messages or to that name BAD - command unknown or arguments invalid - Đây là lệnh copy một lá thư từ hòm thư này sang hòm thư khác. Ví dụ: C: A003 COPY 2:4 MEETING S: A003 OK COPY completed SUBSCRIBE - Arguments: tên hòm thư - Kết quả trả về: OK - subscribe completed NO - subscribe failure: can't subscribe to that name BAD - command unknown or arguments invalid - Lệnh dùng để thiết lập thuộc tính active của hòm thư,tuy nhiên nó không thể thay đổi được đặc tính hòm thư hay nói cách khác nó dùng để kiểm tra xem hòm thư này có tồn tại hay không UNSUBSCRIBE - Arguments: tên hòm thư - Kết quả trả về:OK - unsubscribe completed NO - unsubscribe failure: can't unsubscribe that name BAD - command unknown or arguments invalid - Lệnh này ngược lại với SUBSCRIBE nghĩa là nó loại bỏ thuộc tính active của hòm thư. LIST - Arguments: tên hay những ký tự đặc trưng. - Kết quả trả về:OK - list completed NO - list failure: can't list that reference or name BAD - command unknown or arguments invalid - Nếu tên hay những ký tự theo sau hợp lệ thì lệnh này trả về tập tên các hòm thư, thường tên hay ký tự theo sau là “% ,*, “”, /, String*,”. Chúng ta tạm hiểu nó như một lệnh Dir trong MS-DOS. Ví dụ: C: A101 LIST "" "" S: * LIST (\Noselect) "/" "" S: A101 OK LIST Completed SVTH : Trương Minh Tuyến Trang 12
- Simpo PDF GVHD: Merge Thandạc Splitsĩ.Hồ Unregistered Sỹ Bàng Version - Mailling System C: A102 LIST Tuy* "" S: * LIST (\Noselect) "/" "" S: A102 OK LIST Completed C: A102 LIST * * S: * LIST () "/*" "Inbox" S: * LIST () "/*" "Tuyen" S: * LIST () "/*" "Phung" S: A102 OK LIST Completed C: A102 LIST Tuy* * S: * LIST () "tuy*" "tuyen" S: A102 OK LIST Complete LUSB - Arguments: tên hay những ký tự đặc trưng. - Kết quả trả về: OK - list completed NO - list failure: can't list that reference or name BAD - command unknown or arguments invalid Lệnh này tương tự như list nhưng chỉ khác một điều là nhưng hòm thư nhận được phải ở trạng thái active. STATUS - Arguments: tên hòm thư (trạng thái) - Kết quả trả về:OK - status completed NO - status failure: no status for that name BAD - command unknown or arguments invalid - Lệnh này trả về trạng thái hiện tại của hòm thư, nó không làm ảnh hưởng đến sự chuyển đổi của hòm thư cũng như các trạng thái của các lá thư. Trạng thái theo sao hiện nay trong IMAP4rev1 như sau.chức năng của lệnh này dùng để check mail. MESSAGES : số thư mới trong hòm thư RECENT : số lá thơ củ. UIDNEXT : giá trị UID tiếp theo sẽ được gán cho một lá thư mới trong hòm thư UIDVALIDITY : giá trị UID của hòm thư. UNSEEN : nhưng lá thư của mà người dùng chưa xem nội dung. Ví dụ C: A042 STATUS tuyen (MESSAGES RECENT) S: * STATUS tuyen (MESSAGES 23 RECENT 40) S: A042 OK STATUS completed NOOP - Arguments: none - Kết quả trả về: OK - noop completed BAD - command unknown or arguments invalid - Lệnh này thực chất không làm gì cả mà mục đích để kiểm tra xem giữa mail Client và mail Server còn liên lạc với nhau không. SVTH : Trương Minh Tuyến Trang 13
- Simpo PDF GVHD: Merge Thandạc Splitsĩ.Hồ Unregistered Sỹ Bàng Version - Mailling System Ví dụ C: a002 NOOP S: a002 OK NOOP completed . . . C: a047 NOOP S: * 22 EXPUNGE S: * 23 EXISTS S: * 3 RECENT S: * 14 FETCH (FLAGS (\Seen \Deleted)) S: a047 OK NOOP completed STORE Arguments: message set message data item name value for message data item Responses: untagged responses: FETCH Result: OK - store completed NO - store error: can't store that data BAD - command unknown or arguments invalid - Thiết lập lại trạng thái của thư, mỗi lá thư có nhưng trạng thái như thư mới nhận là Recent tiếp theo là trạng thái chưa đọc Unsen, đọc rồi Seen và trạng thái xoá Deleted và một số cờ đặt trưng khác. - Nếu thêm trạng thái thì dùng lệnh trong Arguments tương ứng là +FLAGS hay +FLAGS.SILENT - Nếu loại bỏ trạng thái thì dùng lệnh trong Arguments tương ứng là -FLAGS hay -FLAGS.SILENT - FLAGS.SILENT là thiết lập lại trạng thái server hồi đáp lại là hiên tại lá thư đó đang ở những trạng thái nào lệnh này ngược lại với lệnh –FLAGS ví dụ C: A003 STORE 2:4 +FLAGS (\Deleted) S: * 2 FETCH FLAGS (\Deleted \Seen) S: * 3 FETCH FLAGS (\Deleted) S: * 4 FETCH FLAGS (\Deleted \Flagged \Seen) S: A003 OK STORE completed C: A003 STORE 2:4 +FLAGS.SILENT (\Deleted) S: A003 OK STORE completed EXPUNGE Command Arguments: none Responses: untagged responses: EXPUNGE Result :OK - expunge completed NO - expunge failure: can't expunge (e.g. permission denied) BAD - command unknown or arguments invalid Lệnh dùng để kiểm tra những lá thư có trạng thái deleted và loại nó ra khỏi hòm thư, đưa vào thùng rác(hòm thư trash). Nếu những như hòm thư Trash được chọn thì những lá thư này sẽ được xoá ra khỏi mail của bạn. SVTH : Trương Minh Tuyến Trang 14
- Simpo PDF GVHD: Merge Thandạc Splitsĩ.Hồ Unregistered Sỹ Bàng Version - Mailling System LOGOUT - Arguments: none - Kết quả tả về: OK - logout completed BAD - command unknown or arguments invalid - Lệnh dùng để đóng kết nối lại sao một phiên làm việc. Ngoài các lệnh trên trong IMAP4 còn một số lệnh khá hay khác như SEARCH, AUTHENTICATE, vì thời gian và năng lực có hạn nên đồ án của em có lẽ chỉ dừng lại ở các lệnh trên. b. Sự khác biệt giữa hai giao thức POP3 và IMAP4 - Nói một cách đơn giản nhất, IMAP đặt sự kiểm soát e-mail lên server trong khi nhiệm vụ duy nhất của POP là "ném" toàn bộ thông điệp e-mail về chỗ trình client yêu cầu, và xong là "phủi tay". Theo nhận định của Terry Gray Giám đốc Networks & Distributed Computing ở University of Washington, và là người dùng IMAP 5 năm nay phát biểu: "Nhu cầu truy cập đến một nơi lưu trữ thư duy nhất từ nhiều máy khác nhau vào những thời điểm khác nhau là lý do chủ yếu cho sự bùng nổ mối quan tâm đến IMAP, và là nguyên nhân tại sao mọi nhà cung cấp hệ thống thư điện tử có tầm cỡ hiện nay đều đang hoặc sẽ hỗ trợ nó". Qua đó, cho ta thấy được giao thức IMAP vẫn là giao thức đọc mail tốt và an toàn nhất. - Hơn nữa, với các thông điệp e-mail được lưu giữ ở server, tất cả các các thao tác trên thông điệp đều có thể thực hiện được, chẳng hạn như có thể chỉ đọc phần header của thông điệp (xem thêm ở danh sách tính năng dưới đây). Ngoài khả năng thao tác trên thông điệp, dùng IMAP còn có những lợi ích khác nữa. Ví dụ, khi người dùng làm việc trên hai hay nhiều máy PC, chẳng hạn một máy để bàn, một máy di động, họ không cần phải lo lắng về việc thư từ nằm vương vãi trên các máy client khác nhau. Cũng vậy, đối với những cơ quan có người dùng di động và cả những máy PC để cố định, chẳng hạn như các trường học hay cơ quan y tế, IMAP là một giải pháp lý tưởng ố theo ý kiến của một chuyên gia phụ trách công nghệ. - Một lợi điểm khác của IMAP là e-mail có thể được tự động sao dự phòng trong server của xí nghiệp và tại máy cá nhân. Những thông điệp quan trọng sẽ được người dùng chép về máy client, và bản sao vẫn để lưu tại máy server. Tuy nhiên, phần lớn người dùng có khuynh hướng để lại các thông điệp ở server. Làm như vậy sẽ giúp cơ quan có thể có kế hoạch tổ chức việc sao dự phòng (backup) cho toàn bộ e-mail của cơ quan một cách dễ dàng. Tất nhiên việc quyết định tổ chức sao dự phòng tập trung phụ thuộc chủ yếu vào mức độ quan trọng của nội dung e-mail, nhưng nếu e-mail nằm rải rác trên các máy client thì khi cần thực hiện sao dự phòng bạn sẽ gặp rất nhiều khó khăn. - IMAP cũng làm giảm nhu cầu mà e-mail đòi hỏi trên mạng. Người dùng trước đây phải tải xuống toàn bộ e-mail họ có với POP, dù e-mail đó có chứa file gắn kèm lớn nhiều megabyte, thì giờ đây họ có thể tải xuống một cách có chọn lọc toàn bộ hay một phần nào đó của bức thư. Kết quả, theo ý kiến các nhà cung cấp, thì phần lớn người dùng ít tải thư về hơn. Kỹ thuật e-mail trên server còn có nghĩa là chi phí thiết lập server sẽ tăng lên khá nhiều so với POP. c. Những tính năng xuất sắc nhất của IMAP SVTH : Trương Minh Tuyến Trang 15
- Simpo PDF GVHD: Merge Thandạc Splitsĩ.Hồ Unregistered Sỹ Bàng Version - Mailling System - Thật ra thì nhiều tính năng trong danh sách sau đây có thể có trong các trình client e-mail riêng. Nhưng hãy nhớ rằng Internet Messaging Access Protocol (IMAP) cung cấp một thứ mà các chương trình kia không có: độc lập với nhà cung cấp, và đang được chuẩn hoá. + Người dùng có thể chỉ cần xem phần header của thông điệp để xác định thông điệp nào cần đọc. + IMAP có thể chèn các thông điệp vào folder ở xa. + Nó cho phép tạo ra các nhãn hiệu chuẩn hay được định nghĩa bởi người dùng cho thông điệp. Ví dụ, nhãn hiệu có thể dùng để định danh các nhóm làm việc, các dự án, v.v + Do các thông điệp IMAP có khuynh hướng được giữ lại tại server chứ không phải ở các máy client riêng lẻ, có thể cập nhật được chúng. IMAP hỗ trợ cập nhật đồng thời trong các folder dùng chung và thông báo cho người dùng về việc cập nhật. + Người dùng có thể có nhiều folder trong một hộp thư đến (inbox), và có thể thiết lập chúng theo nhiều cách, như tạo cây thư mục. + Người dùng có thể lựa chọn để đọc các phần của thông điệp MIME, như truy cập phần thân của thông điệp và bỏ qua phần gắn kèm. + Người dùng có thể tìm kiếm các thông điệp trên server. 5. Chức năng Replay hay Forward. - Có một vấn đề cần nói đến là khi trình mail Server nhận được một lá thư mà người nhận thư không thuộc quyền quản lý của trình mail server đang chạy, làm cách nào để đảm bảo thư đến được người dùng?.Cụ thể là với một địa chỉ mail như name@yahoo.com hay name@hotmail.com làm cách nào biết được địa chỉ mail server thực sự?. Chúng ta dựa vào tên domain mail. Mỗi mail Server sẽ đăng ký với DNS server nhưng tên miền mà nó quản lý theo dạng MX record(Mail Exchange Record). Ngoài ra ta có thể dùng một mail server trung gian để chuyển mail đến đích. + ServerReply: là trình server mail đang chạy sẽ chuyển nội dung lá thư mà địa chỉ mail đến mà không thuộc quyền quản lý thông qua một mail Server khác có hỗ trợ dịch vụ này, thông thường thì rất ít trình Mail Server hỗ trợ dịch vụ này. Vì việc này sẽ làm cho trình chủ bị quá tải và tính bảo mật sẽ không được an toàn. Trên mạng internet các mail server của vnn.vn có hổ trợ dịch vụ server mail trung gian này. + ServerForward: đây là một phương pháp tối ưu và hiệu quả nhất. Cụ thể là khi nhận được một lá thư mà địa chỉ đến không thuộc quyền quản lý, trình mail server đang chạy sẽ phân tích xem Domain mail này thuộc quyền quản lý của Server mail nào và địa chỉ máy đang chạy tên gì thông qua máy server DNS cổng kết nối là 53 (DNS Server lưu trữ các địa chỉ máy server đang chạy trên mạng Internet, ở việt nam có 2 Server DNS tên là hcm-server1.vnd.net và dng-server2.vnd.net). Sau đó tiến hành gởi mail đến người nhận thông qua server mà nó đang quản lý. Ví dụ: ServerForward có tính năng tương tự nhu Nslookup.exe của dòng họ windows server. Sau đây là một ví dụ phân giải tên domain yahoo.com thành địa chỉ mail server thực thụ bằng chương trình nslookup.exe trong windows Server hay MXLookup.class trong chương trình là như nhau. C:\winnt> nslookup Default Server: hcm-server1.vnd.net Address: 203.162.4.1 >set type=MX SVTH : Trương Minh Tuyến Trang 16
- Simpo PDF GVHD: Merge Thandạc Splitsĩ.Hồ Unregistered Sỹ Bàng Version - Mailling System >yahoo.com yahoo.com MX preference=1, mail exchanger = mx1.mail.yahoo.com yahoo.com MX preference=1, mail exchanger = mx2.mail.yahoo.com yahoo.com MX preference=5, mail exchanger = mx4.mail.yahoo.com từ ví dụ trên ta thấy domain mail yahoo.com có tới 3 server mail quản lý đó là mx1.mail.yahoo.com, mx2.mail.yahoo.com và mx4.mail.yahoo.com. Ta sẽ chon ra một mail Server trong 3 mail server trên và gởi thư đến mail server này khi người nhận mail có domain mail là yahoo.com. CÁC TÍNH CHẤT ƯU VÀ KHUYẾT ĐIỂM CỦA JAVA a. Các tính chất cơ bản: - Đơn giản(simple) :Cú pháp của java thực ra giống cú pháp của C++ trong các phiên bản mới đây. Mặc dù java không phải là ngôn ngữ được ưa chuộng nhất hiện nay nhưng trong thời điểm này java là ngôn ngữ hay hơn cả. Một điểm khác nữa là java rất nhỏ, nó có thể tạo ra những phần mềm chạy độc lập trên các máy tính nhỏ kích thước bộ biên dịch và các lớp thư viện của nó chỉ có 40K. - Hướng đối tượng(Ọbect oriented): mọi ứng dụng của java điều phải được xây dựng trên các đối tượng. mỗi lớp có nhiều phương thức(method) và vùng(field). Phương thức là những chức năng mà đối tượng dùng để trả lời các tác động lên đối tượng. - Phân tán(distributed): Java được thiết kế để hỗ trợ các ứng dụng phân tán bằng các lớp mạng(java net). Ví dụ như lớp URL của java có thể truy xuất dễ dàng đến máy chủ ở xa, nó có thể mở hoặc truy cập đến các đối tượng thông qua mạng dễ dàng như một lập trình viên đang sử dụng ngay trên máy của mình. - kiểu tỉnh(statically typed): tất cả các đối tượng được sử dụng trong chương trình phải được khai báo trước khi sử dụng. Điều này giúp cho trình biên dịch java có thể xác định và báo cáo các xung đột. - Biên dịch(Compiled): trước khi chúng ta chạy một chương trình bằng java thì chương trình này phải được dịch lại bằng một trình dịch java(máy ảo java) kết quả sẽ đưa ra một file “bye-code” tương đương với một file mã máy, có thể thực hiện được trong bất kỳ hệ điều hành nào mà có trình thông dịch java(JVM). Trình thông dịch này đọc file “bye-code” và dịch các lệnh “bye-code” sang ngôn ngữ máy. - Thông dịch(Interpreter): java là một ngôn ngữ thông dịch( thật ra nó là ngôn ngữ vừa thông dịch vừa biên dịch) nên nó trở nên khá khả chuyển. - Mở rộng(Extensible): các chương trình java hỗ trợ các hệ thống riêng mà các hàm được viết bằng một ngôn ngữ khác thường là C++,Visual Basic. Hỗ trợ cho các hệ thống riêng giúp cho người lập trình viết các hàm mà có thể thực hiện nhanh hơn các hàm tương đương viết bằng java. Các hệ thống riêng này được liên kết động với chương trình java. Khi java được cải thiện về tốc độ thì các hệ thống riêng này sẽ không cần thiết nữa. - Mạnh mẽ(robust): giúp cho lập trình viên tạo nên những chương trình chắc chắn, không phạm nhiều vào những lỗi khi chạy(runtime error). Java không cho phép các lập trình viên khai báo các biến một cách tuỳ tiện mà các biến này phải tường minh. Ngay cả kiểu dãy cũng không phải là một con trỏ trong C mà là một kiểu thực. Nhờ đó mà những lỗi thường gặp như cấp phát bộ nhớ, bộ nhớ tràng, trùng lắp bộ nhớ, đã được java giải quyết triệt để. SVTH : Trương Minh Tuyến Trang 17
- Simpo PDF GVHD: Merge Thandạc Splitsĩ.Hồ Unregistered Sỹ Bàng Version - Mailling System - An Toàn(Secure): hệ thống java không gì kiểm tra mọi sự truy cập bộ nhớ mà còn đảm bảo không có virus nào làm ngưng một applet đang chạy. - Bảo mật(Sercurity): Java được viết cho các ứng dụng chạy trên môi trường phân tán do đó java phải được thiết kết trên một hệ thống không virus, không bị phá rối, không biến con trỏ. Bộ thông dịch luôn kiểm tra chặt chẽ các mã byte. - Khả chuyển: Do tạo được các máy ảo java tương thích với môi trường được cài đặt sẽ tạo nên kiến trúc trung tính trong java, các ứng dụng java viết sao cho chạy được trong máy ảo java. Mặt khác, các kiểu dữ liệu của java được định nghĩa không phụ thuộc vào bộ xử lý hay hệ điều hành mà các ứng dụng cài đặt. - Hiệu quả cao: rõ ràng so với chương trình được biên dịch hoàn toàn bằng C hay C++ các chương trình java không có hiệu quả cao hơn. Nhưng với tính năng giao diện đồ hoạ, sự đơn giản, nhỏ gọn từ đó ta có thể nói là hiệu quả chung của các ứng dụng java là đáng khích lệ so với tính phức tạp của C/C++. - Đa tuyến: Tính năng này cho phép chúng ta có thể thực hiện nhiều tiến trình song và tương hỗ lẫn nhau tránh được tính tuần tự nhàm chán và những thời gian chết trong chờ đợi. b. Ưu điểm của java - Được Sun mô tả như là một ngôn ngữ lập trình đơn giản, hướng đối tượng, hiểu - mạng, có thể biên dịch, mạnh, an toàn, độc lập với cấu trúc, dễ di chuyển, hiệu suất cao, đa luồng, và có tính động. Những điều đó không dễ giải thích. Vậy thì, cụ thể Java làm được gì? - Về cơ bản, nó giúp các nhà phát triển phần mềm thực hiện được những việc sau: Thứ nhất: họ có thể xây dựng nên các applet Java, đó là những trình ứng dụng mini được phân phối qua Internet và chạy trong một trình duyệt Web hiểu Java. Các applet Java tăng cường cho trang Web khả năng tương tác phong phú hơn và tính đa phương tiện tốt hơn so với khi dùng HTML bình thường. Thứ hai: các nhà phát triển phần mềm có thể xây dựng các trình ứng dụng hoàn chỉnh bằng Java, như bộ xử lý văn bản, bảng tính, hoặc bộ chương trình văn phòng tổng hợp (như Corel đang làm chẳng hạn). Ưu điểm của cách làm này là các trình ứng dụng chỉ cần viết một lần mà chạy được trên hầu hết mọi loại máy tính. Thứ ba: Java đáp ứng không những tính dễ chuyển mà còn cả cách xử lý đồng nhất của chương trình trên các hệ thống khác nhau. Thứ tư: Việc quản lý bộ nhớ: So với ngôn ngữ C v à C++, Các chương trình Java được quản lý về bộ nhớ ở mức hệ thống và người lập trình không bao giờ phải lo lắng về chuyện đó. Thư viện thời gian chạy của Java sẽ giám sát các cấu trúc dữ liệu.Java là một môi trường độc lập, đó là một lợi thế quan trọng cho phép Java hơn hẳn những ngôn ngữ khác, đặc biệt là cho những hệ thống cần làm việc trên nhiều môi trường khác nhau. c. Nhược điểm của Java - Java có tốc độ thực thi chương trình phải thông qua JVM nên tốc độ rất chậm so với các ngôn ngữ khác. SVTH : Trương Minh Tuyến Trang 18
- Simpo PDF GVHD: Merge Thandạc Splitsĩ.Hồ Unregistered Sỹ Bàng Version - Mailling System - khi cài đặt và tiết lập các ứng dụng java thường rất phức tạp hơn các ngôn ngữ khác vì thế mà java hiện nay chưa được các lập trình viên ưa chuộng. MAIL SERVER - Chương trình được thiết kế bằng ngôn ngữ Java của hãng Sun, hỗ trợ các giao thức SMTP, POP3, IMAP4, đa miền(Domain), Lưu trữ thông tin người dùng được tổ chức theo dạng chuẩn mà các mail server hiện nay được dùng là dưới dạng cây thư mục. Còn thông tin về người sử dụng được lưu trữ trong cơ sở dữ liệu bằng Mysql thông qua cầu nối jdbc. Chương trình chạy trên mọi môi trường và dùng bất kỳ một trình mail client nào cũng có thể truy xuất đọc và gởi mail được cả. Chương trình được viết dưới dạng đa luồng nên không ảnh hưởng đến tốc độc truy xuất, khả năng xử lý cho từng người dùng khi kết nối vào cùng một lúc. Chương trình rất thân thiện với người dùng dễ hiểu và hoàn toàn đáp ứng một dịch vụ mail Server hỗ trợ đa miền. 1. Mô hình cây thư mục lưu trữ mail trên máy: - Thư được lưu trữ dưới dạng cây thư mục, thư mục gốc được mặt định là c:\MailSystem 2.Một số hình ảnh minh hoạ và diễn giải chương trình. - Sau khi khỏi đông xong chương trình trên server, nếu không gặp lỗi thì chương trình được nạp xuống thanh Systray nếu hệ điều hành đang dùng là họ Windows. - Giao diện được xử lý tiếng việt bằng font Unicode chuẩn không cần cài đặt thêm bất kỳ font nào khi chạy trên hệ điều hành Windows, nếu trên các hệ điều hành khác cần cài thêm font unicode với tên font là tahoma. SVTH : Trương Minh Tuyến Trang 19
- Simpo PDF GVHD: Merge Thandạc Splitsĩ.Hồ Unregistered Sỹ Bàng Version - Mailling System - Khi chương trình đang chạy nếu chưa login vào hệ thống thì chương trình đang ở trạng thái treo, có nghĩa là không tắc được chương trình và cũng không chỉnh đổi thay những thao tác khác trên đó nhưng chương trình vẫn lắng nghe kết nối từ Client. + Màn hình giao diện lúc đăng nhập hệ thống thành công. - Ngoài giao diện chính khi login sẽ cho biết trạng thái Server của các giao thức ta có thể cho ngừng lắng nghe từ Client hay chỉnh đổi cấu hình các Server trên. SVTH : Trương Minh Tuyến Trang 20
- Simpo PDF GVHD: Merge Thandạc Splitsĩ.Hồ Unregistered Sỹ Bàng Version - Mailling System - Khi nhận mail mà không thuộc quyền quản lý của Server thì hộp thoại sau sẽ làm nhiệm vụ như trạm trung gian chuyển mail đến đích. như hình trên thì ServerForward được chọn làm nhiệm vụ này, ta có thể sửa đổi lại cấu hình của Server này. - Khi login xong trên thanh toolbar có 4 biểu tượng bao gồm connect và Disconnect, Login và logout, có chức năng tương ứng từng tên gọi. Nhưng biểu tượng này có thể tìm thấy trong menu hệ thống trong menu này còn có chức năng lưu file và in ấn nội dung trong hộp thông báo mà giao diện chính ta nhìn thấy. Ngoài ra nó còn có một tính năng rất hay nữa đó là tự đông kiểm tra và sữa lỗi trong hệ thống mail server để cho Client truy xuất vào không gặp lỗi. - Menu hiển thị: là menu hiển thị các panel điều khiển và hiển thị tất các các Account trong hệ thống mail hay ta có thể tìm kiếm Account. + Menu công cụ là menu điều kiển chính của chương trình như thiết lập lại ngày giờ tự động cho các giao thức SMTP Server, POP3 Server, IMAP4 Server hay thay đổi thư mục lưu trữ mail trên máy server. SVTH : Trương Minh Tuyến Trang 21
- Simpo PDF GVHD: Merge Thandạc Splitsĩ.Hồ Unregistered Sỹ Bàng Version - Mailling System Theo hình trên bên trái cho thấy thư mục đang lưu trữ mail là d:\mailsystem ta có thể thay đổi thư mục này, còn hình bên phải là hình điều chỉnh cấu hình giao thức SMTP server như thiết lập giờ tự động cho giao thức smtp, cổng Client kết nối vào là 25, giờ tự động kết nối đang được chọn tại thời điểm 06:00:00 và giờ đóng kết nối là 22:00:00. + Tạo Tên miền Tạo người dùng mới Tên miền được tạo ra có hay loại đó là miễn phí hay tên miền đã được đăng ký, tất cả được thể hiện trên From đăng lý tên miền. Đăng ký một thành viên mới thuộc bất kỳ một Tên miền nào dựa vào bản đăng lý trên sau khi đăng ký thì tên miền này được tồn tại và thuộc quyền quản lý của tên miền được tạo ra. - Ngoài ra để cập nhật thông tin cũng như tên miền thì hộp dialog từ menu tool sau sẽ làm việc này. Ở đây ta thấy được thành viên nào thuộc tên miền nào và ta cũng có thể tạo thêm tên miền, tạo Account mới, xoá Account hay khoá tên miền lại (tạm thời không sử dụng), đối với Từng Account ta cũng có thể khóa lại(tạm thời không cho phép sử dụng) và cũng có thể xoá hẳn một tên miền nào đó. SVTH : Trương Minh Tuyến Trang 22
- Simpo PDF GVHD: Merge Thandạc Splitsĩ.Hồ Unregistered Sỹ Bàng Version - Mailling System Bên trái là tên miền và bên phải là những Account thuộc tên miền đó,ở hộp dialog này còn rất nhiều tính năng khác nó tương tự như một cây thư mục trong Windons. Ngoài ra chương trình còn hổ trợ những tính năng thông dụng cho chuột như nhấn trái và phải chuột. - Cũng từ menu tool này ta có thể thay đổi mật khẩu cũng như tên đăng nhập vào hệ thống chương trình. + Khi nhấn chuột phải vào Doamin và menu pop thao tác trên Domain đó hiện ra như sau. Hình má tính bị mờ đi là tên miền đó đang bị khóa quền sử dụng những Account nào thuộc quyền quản lí của tên miền này sẽ không truy xuất vào Jmail server được cho dù Account đó không bị khóa quyền sử dụng. SVTH : Trương Minh Tuyến Trang 23
- Simpo PDF GVHD: Merge Thandạc Splitsĩ.Hồ Unregistered Sỹ Bàng Version - Mailling System + Khi nhấn nhấn chuột phải vào từng Account bên cây thư mục hay từng Account bên khung dislay cũng có tính năng tương đương nhau cùng đồng thời thao tác trên Account đó. Hình có biểu tượng bị gạch chéo là Account đó tạm thời đang khóa quyền sử dụng không thể truy xuất vào Jmail server lúc này. 3.Cài đặt và chạy chương trình. - Vì chương trình được viết bằng ngôn ngữ Java mã nguồn mỡ, nên để chạy được chương trình thì điều kiện cần trước tiên là hệ điều hành dùng để chạy chương trình phải hiểu Java nghĩa là trên máy phải có máy ảo Java đang chạy. Để có được máy ảo Java tốt nhất nên cài đặt JDK mọi phiên bản của hãng Sun,khi cài đặt xong JDK chỉ cần chạy File Server.bat thì chương trình trên Server sẽ được thực thi. - Cần phải cài đặt cơ sở dữ liệu chỉ cần cài mysql server là đủ. 4.Hướng phát triển chương trình. - Nhìn chung chương trình được thực hiện khá hoàn hảo cho một dịch vụ Jmail server hỗ trợ đa miền, có tính bảo mật chặt chẽ, dễ hiểu dễ sử dụng. Nhưng nó vẫn còn những mặt cần được phát triển lên. + Chương trình mới chỉ ở mức thử nghiệm, chưa thực sự hoạt động trên Internet và đây cũng là một hướng mà chương trình cần được phát triển hỗ trợ với dịch vụ Web Server tạo nên một dịch vụ khép kín. + Mỗi một tên miền chưa có người quản trị cụ thể đây cũng là mặt hạn chế và được phát triển sau. + Chương trình chưa hỗ trợ dịch vụ đăng ký mail list và gởi mail list định kỳ, đây cũng là một khả năng rất hay của dịch vụ Jmail server. WEB MAIL - Web mail là một dịch vụ mail client rất nổi tiếng và thông dụng nhất hiện nay trên Internet. Web mail mà em sẽ trình bày cũng dựa vào những đặc tính trên. Mỗi một Web mail chỉ truy xuất và quản lý của một mail Server nào đó, Web mail này được tạo ra nhằm mục đích thể hiện rõ hơn những tính năng mà chương trình Jmail server được thiết kế ở trên. - Web mail này dùng giao thức IMAP4 và SMTP để đọc và gởi thư. Nó cũng có những tính năng rất tiễn ích và rất thân thiện với người dùng. - Web mail được thiết kế bằng ngôn ngữ JSP và trình điều khiển là Jrun của hãng allaire, lệnh truy xuất bằng giao thức SMTP và IMAP4 được kế thừa từ từ các lớp của hãng Sun, em không có viết lệnh SMTP Client và IMAP4 Cloient mà chỉ kế thừa rồi sử dụng. 1.Các giao diện của chương trình. Giao diện đăng ký Account. SVTH : Trương Minh Tuyến Trang 24
- Simpo PDF GVHD: Merge Thandạc Splitsĩ.Hồ Unregistered Sỹ Bàng Version - Mailling System - Để đăng ký một Account miễn phí từ Web mail, như ở hình trên nhấn chuột vào nút đăng lý mail mới lúc đó trang đăng ký mail mới được mở ra và điền đầy đủ những thông tin cần thiết, nếu thành công thì Account mới được tạo ra. - Để tạo một Account mới không phải miễn phí thì trước tiên phải đăng nhập vào tên miền mà bạn đã đăng ký với dịch vụ, rồi sau đó có những mục tự chọn như thêm, xoá Account, Nếu như Domain bạn bị khoá lại hay số lượng người dùng đã giới hạn thì không thể nào thêm Account mới. Hay bạn có thể khoá quyền sử dụng cho từng thành viên thuộc Domain mà bạn quản lý SVTH : Trương Minh Tuyến Trang 25
- Simpo PDF GVHD: Merge Thandạc Splitsĩ.Hồ Unregistered Sỹ Bàng Version - Mailling System Giao diện kiểm tra mail. - Để kiểm tra mail người dùng phải đăng nhập vào hệ thống, giao diện đăng nhập như sau. - Nếu trong quá trình sử dụng lỡ quên mật khẩu thì có thể tìm lại mật khẩu thông qua câu hỏi và câu trả lời mà người dùng đã đăng ký với Server mail. Đây là một tiễn ích khá hay mà bất kỳ một Web mail nào cũng hỗ trợ nó. - Sau khi đăng nhập thành công thì trang kiểm tra mail được mở ra, chào mừng thông báo là có bao nhiêu thư mới trong hộp thư Inbox và thể hiện các tính năng khác mà người dùng đã cấu hình trước đó. Khi vào trang này vì giao thức sử dụng là IMAP nên ta dễ dàng biết được có bao nhiêu thư mới và bao nhiêu thư chưa đọc trong những SVTH : Trương Minh Tuyến Trang 26
- Simpo PDF GVHD: Merge Thandạc Splitsĩ.Hồ Unregistered Sỹ Bàng Version - Mailling System lần thăm mail trước đó thông qua việc kiểm tra cờ trạng thái của từng lá thư. Sau đây là giao diện thể hiện thông tin . Theo hình trên thì hộp thư có 2 thư mới và 9 lá thư cũ chưa đọc, phía bên phải là những hộp thư mail mà thuộc tính của nó là Active, để vào xem thông tin từng lá thư trong hộp thư ta nhấn chuộc vào từng thư mục thư tương ứng, còn nút check mail là check hộp thư mặt định inbox. Trang này ta có thể cấu hình lại các hộp thư thì nhấn vào Optiont tại Folders và có thể thêm hay xoá bớt hộp thư. Thư sau khi được xoá ở các hộp thư khác sẽ được Jmail server lưu vào hộ thư Trash(đây là hộp thư rác) và xoá thư ở hộp thư này thì thư mới loại ra khỏi Account người dùng Chỉ có giao thức IMAP mới có chức năng quản lý đa hộp thư còn POP3 thì chỉ có duy nhất một hộp thư là Inbox. - Giao diện kiểm thể hiện thông tin từng lá thư trong hộp thư sau. Vào đây ta có thể thấy rõ thông tin từng lá thư bao gồm người gởi, ngày gởi, kích thước và chủ đề từng lá thư, để xem nội dung từng lá thư nhấn chuột vào cột Sụbect từng lá thư một. Ngoài ra ta còn biết được thư nào mới và thư nào chưa đọc thông qua SVTH : Trương Minh Tuyến Trang 27
- Simpo PDF GVHD: Merge Thandạc Splitsĩ.Hồ Unregistered Sỹ Bàng Version - Mailling System màu nền của từng lá thư, thư mới và chưa đọc có màu nền trắng, thư đọc rồi có màu vàng nhạt. ở đây có một điều thú vị nữa rất hay từ giao thức imap đó là chúng ta có nhiều khả năng thao tác trên thư hơn như thiết lập lại trạng thái lá thư, copy, move thư sang hộp thư khác, Thư đã khi xoá đi người dùng có thể phục hồi lại hay thiết lập lại trạng thái lá thư, 3. Giao diện thao tác Thư mục mail - Để thao tác và xử lý thư mục mail như thêm mới, đổi tên, xoá hay thiết lập trạng thái Active(show) từng thư mục hãy vào mục option. Mục này sẽ làm tất cả những gì liên quan đế thư mục mail, ngoài ra ta có thể nhấn chuột vào add để thêm một thư mục mail mới mà không cần vào Option. Trang option có giao diện như sau: Khi vào đây ta biết được hộp thư đó đang ở trạng thái nào có bao nhiêu lá thư, nếu hộp thư đang ở trạng thái Hidden thì hộp thư này không thấy trong giao diện sau khi login. - Web mail còn hỗ trợ sổ địa chỉ nghĩa là người sử dụng lưu lại địa chỉ mail của bạn bè người thân, Sổ địa chỉ này lưu trữ họ, tên, ngày sinh, email, . Giao diện sổ địa chỉ như sau. SVTH : Trương Minh Tuyến Trang 28
- Simpo PDF GVHD: Merge Thandạc Splitsĩ.Hồ Unregistered Sỹ Bàng Version - Mailling System - Giao diện soạn thư, vì giao diện có dùng java Script nên để thể hiện hết các tính năng của một trình soạn thảo nên chạy trên môi trường Explorer 5.5 trở lên. Giao diện hỗ trợ đầy đủ các tính năng cơ bản mà người dùng cần đến. Người dùng có thể gởi mail với một file đính kèm theo, chương trình chỉ mới xử lý được kèm một file đây cũng mà một mặt còn hạn chế của Web mail mà cần được cải thiện. Ngoài hai chức năng mail CC, BCC, người dùng có thể gởi mail đến nhiều người khác bằng cách mỗi địa chỉ mail cách nhau dấu chấm phẫy “;” hay dấu phẩy ”,”. Cũng như bao trình mail server và mail Client khác, nếu như địa chỉ người nhận không có thực trên mạng thì ngay lập tức Jmail server sẽ hồi âm lại cho bạn biết là địa chỉ mail mà bạn vừa gởi không đến được người nhận. Quá trình nà diễn ra ngay sau khi bạn gởi mail và bạn sẽ nhìn thấy nó khi bạn trở về hộp thư Inbox. - Ngoài ra người sử dụng có thể sửa đổi thông tin đăng ký ban đầu khi nhấn chuột vào mail Option. SVTH : Trương Minh Tuyến Trang 29
- Simpo PDF GVHD: Merge Thandạc Splitsĩ.Hồ Unregistered Sỹ Bàng Version - Mailling System - Ngoài những tính năng trên Web mail còn một số tính năng khác nhìn chung rất thân thiện và dễ sử dụng. 2. Cách cài đặt và xử lý chương trình Web mail. - Máy chủ để lưu trữ trang Web mail này phải cài đặt chương trình Java Server page đó là Jrun. -Tiếp theo phải tạo một host để cho máy Client hiểu và chạy được. Quy trình tạo host băng Jrun như sau. +Trước tiên login vào Jrun tên đăng nhập mặt định là admin còn password là trong quá trình cài đặt Jrun mà người cài đặt đã tạo. + Khi login vào có 2 cách để tạo host đó là Jrun admin Server trên cổng 8000 hoặc Jrun Default Server trên cổng 8100. SVTH : Trương Minh Tuyến Trang 30
- Simpo PDF GVHD: Merge Thandạc Splitsĩ.Hồ Unregistered Sỹ Bàng Version - Mailling System theo hình thì host được tạo ra từ cổng 8000(Admin Server) chọn mục Web Applications, trang này được mở ra nhấn chuột vào create an Applications. Sau khi điền đầy đủ những thông tin như tên ứng dụng, cổng ứng dụng, địa chỉ URL ứng dụng cuối cùng là thư múc link đến ứng dụng trên đĩa. Như hình trên sau khi tạo xong thì host ứng dụng có tên : + tiếp theo từ trình duyệt Explorer máy Client đánh đó chính là địa chỉ URL của Web mail đã đăng ký với Jrun, sau khi đăng ký xong còn một việc cần làm trên máy Server nữa là copy 2 gói tin mail.jar và activation.jar vào thư mục của Jrun đó là root_Jrun/Allaire/Jrun/servers/default/default-app/WEB-INF/lib/. 3. Những mặt hạn chế của Web mail. - Web mail cũng có những mặt hạn chế sau như gởi mail chỉ mới gởi được một file đi kèm. - Chương trình mới chạy trên mạng cục bộ, chưa có host riêng để thực hiện trên mạng Internet. - Web mail chưa tạo và cài đặt book lock các địa chỉ mail gởi đến mà không thích nhận. - Web mail chỉ check mail với giao thức IMAP chưa có mục chọn check mail với POP3. - Chưa tạo danh sách và đăng ký mail list. V. Tài Liệu Tham Khảo 1. Mạng máy tính và các hệ thống mở - TS. Nguyễn Thúc Hải. 2. Windows Internet Tour Giude –Cruising the Internet the Easy Way của michaek Fraase–Ventana Press(1994) 3. Navigating the Internet của Richard J.Smith & Mark Gibbs – Sams Publishing.) 4.Novell’s Guide to Client-Server Application and Architecture của Jeffrey D.Schank. 5. Internetworking v ới TCP/IP của Nguyễn Quốc Cường. 6. Kiến thức thiết yếu về mạng máy tính của Phùng Kim Hoàng. 7. How Learn To Java của Harvey M.Deitel và Paul J.Deitel. 8. Lý thuyết và bài tập Java của Trần Tiến Dũng. SVTH : Trương Minh Tuyến Trang 31
- Simpo PDF GVHD: Merge Thandạc Splitsĩ.Hồ Unregistered Sỹ Bàng Version - Mailling System 9. Lập trình Java của VN-Guide. 10. Java Developers Guide [6]. 11. Các Web site : htttp://www.vnn.vn/kinh_nghiem 12. Internetworking with TCP/IP vol III Douglas E. Comer and David L. Stevens. 13. Developing Intranet Applicatons with Java Jarry Ablan 14.Các RFC về SMTP, IMAP4, POP3 như RFC821, RFC822, RFC2060, RFC1275, RFC1225,RFC876, . 15.Chương trình mail client Outlook Express. 16.Chương trình mail Server MERAK. SVTH : Trương Minh Tuyến Trang 32
- Simpo PDF GVHD: Merge Thandạc Splitsĩ : H Unregisteredồ Sỹ Bàng Version - Mailling System CHƯƠNG 1 TTỔỔNNGG QUAANN VVỀ MẠNNGG VVÀ CÁÁCC DDỊỊCCH VVỤỤ TTHHÔNGG DDỤỤNNGTRÊÊNN IINNTTEERRNETT SVTH : Trương Minh Tuyến Trang 3
- Simpo PDF GVHD: Merge Thandạc Splitsĩ : H Unregisteredồ Sỹ Bàng Version - Mailling System I. Động lực thúc đẩy sự ra đời mô hình mạng Client/Server : - Ngày nay với xu hướng mạng toàn cầu hoá, thì sự liên lạc thông tin qua lại giữa các máy theo mô hình Client/Server là một trong những ứng dụng quan trong cơ bản về mạng và nó không thể thiếu trong hệ thống liên lạc thông tin hiện nay. Có rất nhiều dịch vụ hỗ trợ trên Internet theo mô hình này như e-mail, web, FPT, nhóm tin Usernet, telnet, truyền tập tin, đăng nhập từ xa, chat, Các chương trình dịch vụ ở trình khách(Client) sẽ kết nối với trình chủ ở xa(Server) sau đó gởi các yêu cầu đến trình chủ và trình chủ sẽ xử lý yêu cầu này sau đó gởi kết quả về cho trình khách. Thông thường trình chủ phục vụ cho rất nhiều trình khách đến cùng một lúc. - Vào những thập niên 90, khi bắt đầu bùng nổ sự truy cập Web cũng như mạng hoá trong các lĩnh vực của nhiều quốc gia trên thế giới trong đó có Việt Nam chúng ta. Một vấn đề đặt ra cho các nhà lập trình, các nhà quản lý và nhiều hơn nữa là những người sử dụng máy tính điều có thể truy cập thông tin trên Intranet hay Internet nhanh chóng, chính xác mà các thông tin hay dữ liệu này vẫn được an toàn. Lập trình mạng theo mô hình Client/Server sẽ là giải pháp an toàn cho các nhà lập trình. II. Nguyên tắc hoạt động mạng theo mô hình client/Server : - Mạng Client/Server đơn thuần chỉ có một tiêu chuẩn cơ bản là không có một Client nào sử dụng tài nguyên của một Client khác. Tài nguyên dùng chung (tài nguyên chính) được đặt trên một hay nhiều Server chuyên dụng theo từng dịch vụ như E-mail, file server, chat, Web, fpt, hay nói một cách khác những Client không bao giờ nhìn thấy nhau mà chỉ giao tiếp với Server. Mô hình Client/Server này rất hữu dụng trong các công ty hay những tổ chức cần đến việc quản lý tài nguyên hay người sử dụng một cách hiểu quả. - Thuật ngữ Server dùng để chỉ bất kỳ chương trình nào hỗ trợ dịch vụ có thể truy xuất qua mạng. Một Server nhận yêu cầu qua mạng thực hiện cho một dịch vụ nào đó và trả kết quả về cho nơi yêu cầu. Với những dịch vụ đơn giản nhất, mỗi yêu cầu gửi đến chỉ trong một địa chỉ IP datagram và Server trả về lời đáp trong một datagram khác. Các Server có thể thực hiện những công việc đơn giản nhất đến phức tạp nhất. Ví dụ như time-of-day Server chỉ đơn giản trả về giờ hiện hành bất cứ khi nào Client gởi tới Server này thông tin. Hay một Web Server nhận yêu cầu từ một trình duyệt (Borwser) để lấy một bản sao của trang web, Server sẽ lấy bản sao của tập tin trang web này trả về cho trình duyệt. - Mô hình Client/Server thực hiện việc phân tán xử lý giữa các máy tính. Về bản chất là một công nghệ được chia ra và xử lý bởi nhiều máy tính, các máy tính được xem là Server thường được dùng để lưu trữ tài nguyên để nhiều nơi truy xuất vào. Các Server sẽ thụ động chờ để giải quyết các yêu cầu từ Client truy xuất đến chúng. Thông thường, các Server được cài đặt như một chương trình ứng dụng. Vì vậy ưu điểm của việc cài đặt các Server như những chương trình ứng dụng là chúng có thể xử lý trên hệ máy tính bất kỳ nào hỗ trợ thông tin liên lạc theo giao thức TCP/IP hay một giao thức thông dụng khác. Như thế, Server cho một dịch vụ cụ thể có thể chạy trên một hệ chia thời gian cùng với nhưng chương trình khác, hay nó có thể xử lý trên cả máy tính cá nhân. - Một chương trình ứng dụng trở thành Client khi nó gởi yêu cầu tới Server và đợi lời giải đáp trả về. Cũng vì thế mà mô hình Client/Server là sự mở rộng tự nhiên của tiến trình thông tin liên lạc trong nội bộ máy tính và xa hơn nữa là Intarnet/Internet. Ứng dụng đầu tiên của mô hình Client/Server là ứng dụng chia sẻ file(do các tổ chức có nhu cầu chia sẻ thông tin giữa các bộ phận trong tổ chức được dễ dàng và nhanh SVTH : Trương Minh Tuyến Trang 4
- Simpo PDF GVHD: Merge Thandạc Splitsĩ : H Unregisteredồ Sỹ Bàng Version - Mailling System chóng hơn). Trong ứng dụng này thông tin được chứa trong các file đặt tại máy Server của một phòng ban nào đó. Khi một phòng ban khác có nhu cầu trao đổ thông tin với phòng ban này thì sẽ sử dụng một máy tính khác(Client) kết nối với Server và tải nhưng file cần thiết về máy Client. Tóm lại : + Nhiệm vụ của máy Client : là thi hành một dịch vụ cho người dùng, bằng cách kết nối với những chương trình ứng dụng ở máy Server, dựa vào những chuỗi nhập để chuyển yêu cầu đến Server và nhân kết quả trả về từ Server hiển thị thông tin nhân được cho người dùng. + Nhiệm vụ của máy Server : luôn lắng nghe những kết nối đến nó trên những cổng liên quan đến giao thức mà Server phục vụ. Khi máy Client khởi tạo kết nối, máy Server chấp nhận và tạo ra luồng riêng biệt phục vụ cho máy Client đó. Ngoài ra máy Server phải quản lý các hoạt động của mạng như phân chia tài nguyên chung(hay còn gọi là tài nguyên mạng) trong việc trao đổi thông tin giữa các Client, Máy Server có thể đóng vai trò là máy trạm (Client) trong trường hợp này gọi là máy Server “không thuần tuý”. Server phải đảm bảo được hai yêu cầu cơ bản nhất đối với chức năng Server : cho phép truyền dữ liệu nhanh chóng và bảo đảm tính an toàn, bảo mật và không mất mát dữ liệu. + Có thể nói mô hình Client/Server là mô hình ảnh hưởng lớn nhất tới ngành công nghệ thông tin. Mô hình này đã biến những máy tính riêng lẻ có khả năng xử lý thấp thành một mạng máy chủ(Server) và máy trạm(Workstation) có khả năng xử lý gấp hàng ngàn lần những máy tính mạnh nhất. Mô hình này còn giúp cho việc giải quyết những bài toán phức tạp một cách dễ dàng hơn, bằng cách phân chia bài toán lớn thành nhiều bài toán con và giải quyết từng bài toán con một. Nhưng quan trọng hơn hết, không phải là việc giải được các bài toán lớn mà là cách thức giải bài toán. + Ưu điểm: - Các tài nguyên được quản lý tập trung. - Có thể tạo ra các kiểm soát chặt chẽ trong truy cập file dữ liệu. - Giảm nhẹ gánh nặng quản lý trên máy Client. - Bảo mật và back up dữ liệu từ Server. + Nhược điểm: - Khá đắt tiền so với mạng ngang hàng(peer), chủ yếu do giá để lắp đặt một Server khá cao. - Server trở thành điểm tối yếu của hệ thống, nghĩa là khi Server hỏng thì toàn bộ hệ thống sẽ chết, do đó tính năng đề kháng lỗi là một trong những yêu cầu quan trọng trong mô hình này. III.Các khái niệm cơ bạn về mạng : - Ngày nay, chúng ta đã quá quen thuộc về mạng điện thoại trong việc trao đổi thông tin, tương tự mạng trong máy tính cũng sử dụng một số nguyên tắc cơ bản sau. + Bảo đảm thông tin không bị mất hay thất lạc trên đường truyền. + Thông tin được truyền nhanh chóng và kịp thời. + Các máy tính trong cùng một mạng phải nhận biết nhau. +Cách đặt tên trên mạng cũng như cách xác định các đường truyền trên mạng phải tuân theo một chuẩn thống nhất. SVTH : Trương Minh Tuyến Trang 5
- Simpo PDF GVHD: Merge Thandạc Splitsĩ : H Unregisteredồ Sỹ Bàng Version - Mailling System - Các nguyên tắc trên có vẽ rất cơ bản nhưng nó hết sức quan trọng. Nhưng tại sao cần phải nối mạng? có nhiều lý do nhưng có thể kể các lý do sau: + Tăng hiệu quả làm việc. + Xây dựng mô hình làm việc thống nhất tập trung cho tất cả mọi người sử dụng mạng. + Cho phép đưa tất cả các vấn đề cần giải quyết lên mạng dưới dạng thảo luận theo quan điểm phóng khoáng, thoải mái hơn là phải đối thoại nhau trong một không khí gò bó. + loại bỏ các thông tin thừa, trùng lặp. - Mạng có thể đơn giản chỉ gồm hai máy tính bằng cáp qua cổng máy in để truyền file, phức tạp hơn thì hiện nay có thể chia mạng ra thành các loại sau: + Mạng cục bộ(LAN-Wide Area Network) : là mạng đơn giản nhất trong thế giới mạng, là một hệ thống bao gồm các nút là các máy tính nối kết với nhau bằng dây cáp qua card giao tiếp mạng trong phạm vi nhỏ tại một vị trí nhất định. Tuỳ theo cách giao tiếp giữa các nút mạng, người ta chia làm hai loại : Mạng ngang hàng (peer to peer [Windows workgroups]) : là một hệ thống mà mọi nút đều có thể sử dụng tài nguyên của các nút khác. Nghĩa là các máy tính trên mạng đều ngang nhau về vai trò, không có máy nào đóng vai trò trung tâm. Hình 1.1 : Marry đang truy xuất tài nguyên qua mạng Mạng khách chủ (client/server) : có ít nhất một nút trong mạng đảm nhiệm vai trò trạm dịch vụ (server) và các máy khác là trạm làm việc (workstation) sử dụng tài nguyên của các trạm dịch vụ. Server chứa hầu hết tài nguyên quan trọng của mạng và phân phối tài nguyên này tới các Client. Hình 1.2 : Mô hình mạng Client/Server. SVTH : Trương Minh Tuyến Trang 6
- Simpo PDF GVHD: Merge Thandạc Splitsĩ : H Unregisteredồ Sỹ Bàng Version - Mailling System + Mạng đô thị(Metropolitan Area Networks - viết tắt là Man): Là mạng đặt trong phạm vi một đô thị hoặc một trung tâm kinh tế-xã hội có bán kính khoản 100km trở lại. Là mạng chỉ với một đường truyền thuê bao tốc độ cao qua mạng điện thoại hoặc thông qua các phương tiện khác như radio, microway, hay các thiết bị truyền dữ liệu bàng laser. MAN cho phép người dùng mạng trên nhiều vị trí địa lý khác nhau vẫn có thể truy cập các tài nguyên mạng theo cách thông thường như ngay trên mạng LAN. Tuy nhiên nhìn trên phương diện tổng thể MAN cũng chỉ là mạng cục bộ. + Mạng diện rộng(WAN – Wide Area Networks): phạm vi của mạng vượt qua biên giới quốc gia và thậm chí cả lục địa. WAN có nhiệm vụ kết nối tất cả các mạng LAN và MAN ở xa nhau thành một mạng duy nhất có đường truyền tốc độ cao. Tốc độ truy cập tài nguyên của mạng WAN thường bị hạn chế bởi dung lượng truyền của đường điện thoại thuê bao(phần lớn các tuyến điện thoại số cũng chỉ ở mức 56 kilobits/s) và chi phí thuê bao rất đắt đây là vấn đề để cho một công ty hay tổ chức nào muốn thiết lập mạng MAN cho công ty mình. + Mạng Internet : Mạng Internet là một tập hợp gồm hàng vạn mạng (LAN, MAN và WAN)trên khắp thế giới kết nối với qua một router(là thiết bị phân tuyến các luồn dữ liệu giữa các mạng) tạo thành một mạng chung trên toàn cầu theo mô hình client/Server, được phát triển vào đầu thập niên 70. Internet là công nghệ thông tin liên lạc mới, và hiện đại, nó tác động sâu sắc vào xã hội cuộc sống chúng ta, là một phương tiện cần thiết như điện thoại hay tivi, nhưng ở mức độ bao quát hơn. Chẳng hạn điện thoại chỉ cho phép trao đổi thông tin qua âm thanh, giọng nói. Với Tivi, thông tin nhận được trực quan hơn. Còn Internet đưa chúng ta vào thế giới có tầm nhìn rộng hơn và bạn có thể làm mọi thứ: viết thư, đọc báo, xem bản tin, giải trí, tra cứu và thậm chí còn thực hiện những phi vụ làm ăn, .Vì Internet là mạng của các mạng, tức bao gồm nhiều mạng máy tính kết nối lại với nhau, Số lượng máy tính nối mạng và số lượng người truy cập vào mạng Internet trên toàn thế giới đang ngày càng tăng lên nhanh chóng. Đặc biệt từ năm 1993 trở đi, mạng Internet không chỉ cho phép chuyển tải thông tin nhanh chóng mà còn giúp cung cấp thông tin, nó cũng là diễn đàn và là thư viện toàn cầu đầu tiên. Các thông tin được đặt rải rác trên toàn cầu có thể truyền thông được với nhau như một thiết bị Modem và đường dây điện thoại. Internet bắt đầu từ đầu năm 1969 dưới cái tên là ARPANET(Advanced Research Projects Agency) còn gọi là ARPA. Nó thuộc bộ quốc phòng Mỹ (DoD). Đầu tiên nó chỉ có 4 máy được thiết kế để minh hoạ khả năng xây dựng mạng bằng Cách dùng máy tính nằm rải rác trong một vùng rộng. Vào năm 1972, khi ARPANET được trình bày công khai, đã được 50 trường đại học và các viện nghiên cứu nối kết vào. Mục tiêu của ARPANET là nghiên cứu hệ thống máy tính cho các mục đích quân sự. Chính phủ và quân đội tìm kiếm những phương cách để làm cho mạng tránh được các lỗi, mạng này thiết kế chỉ cho phép các văn thư lưu hành từ máy tính này đến máy tính khác, đối với chính phủ và quân đội, máy tính đã có những công dụng rõ ràng và sâu rộng. Tuy nhiên, một trong những mối bận tâm chính yếu là tính đáng tin cậy vì nó có liên quan đến vấn đề sinh tử. Kế hoạch ARPANET đã đưa ra nhiều đường nối giữa các máy tính. Điều quan trọng nhất là các máy tính bạn có thể gởi các văn thư bởi bất kỳ con đường khả dụng nào, thay vì chỉ qua một con đường cố định. Đây chính là nơi mà vấn đề về giao thức đã xuất hiện. Đầu năm 1980 trung tâm DARPA thử nghiệm SVTH : Trương Minh Tuyến Trang 7
- Simpo PDF GVHD: Merge Thandạc Splitsĩ : H Unregisteredồ Sỹ Bàng Version - Mailling System giao thức TCP/IP và được các trường đại học mỹ cho phép nối với hệ điều hành UNIX BSD ( Berkely Software Distribution). Hệ điều hành UNIX là hệ phát triển mạnh với rất nhiều công cụ hỗ trợ và đảm bảo các phần mềm ứng dụng có thể chuyển qua lại trên các họ máy khác nhau (máy mini, máy tính lớn và hiện nay là máy vi tính). Bên cạnh đã hệ điều hành UNIX BSD còn cung cấp nhiều thủ tục Internet cơ bản, đưa ra khái niệm Socket và cho phép chương trình ứng dụng thâm nhập vào Internet một cách dễ dàng. Internet có thể tạm hiểu là liên mạng gồm các máy tính nối với nhau theo một nghi thức và một số thủ tục chung gọi là TCP/IP (Transmission Control Protocol/Internet Protocol).Thủ tục và nghi thức này trước kia đã được thiết lập và phát triển là cho một đề án nghiên cứu của Bộ Quốc Phòng Mỹ với mục đích liên lạc giữa các máy tính nối đơn lẻ và các mạng máy tính với nhau mà không phụ thuộc vào các hãng cung cấp máy tính. Sự liên lạc này vẫn được bảo đảm liên tục ngay cả trong trường hợp có nút trong mạng không hoạt động. Ngày nay, Internet là một mạng máy tính có phạm vi toàn cầu bao gồm nhiều mạng nhỏ cũng như các máy tính riêng lẻ được kết nối với nhau để có thể liên lạc và trao đổi thông tin. Trên quan điểm Client / Server thì có thể xem Internet như là mạng của các mạng của các Server, có thể truy xuất bởi hàng triệu Client. Việc chuyển và nhận thông tin trên Internet được thực hiện bằng nghi thức TCP/IP. Nghi thức này gồm hai thành phần là Internet protocol (IP) và transmission control protocol (TCP) (được nguyên cứu ở những phần sau). IP cắt nhỏ và đóng gói thông tin chuyển qua mạng, khi đến máy nhận, thì thông tin đó sẽ được ráp nối lại. TCP bảo đảm cho sự chính xác của thông tin được chuyền đi cũng như của thông tin được ráp nối lại đồng thời TCP cũng sẽ yêu cầu truyền lại tin thất lạc hay hư hỏng. Tuỳ theo thông tin lưu trữ và mục đích phục vụ mà các server trên Internet sẽ được phân chia thành các loại khác nhau như Web Server, email Server hay FTP Server. Mỗi loại server sẽ được tối ưu hoá theo mục đích sử dụng. Từ quan điểm người sử dụng, Internet trông như là bao gồm một tập hợp các chương trình ứng dụng sử dụng những cơ sở hạ tầng của mạng để truyền tải những công việc thông tin liên lạc. Chúng ta dùng thuật ngữ "interoperability" để chỉ khả năng những hệ máy tính nhiều chủng loại hợp tác lại với nhau để giải quyết vấn đề. Hầu hết người sử dụng truy cập Internet thực hiện công việc đơn giản là chạy các chương trình ứng dụng trên một máy tính nào đó gọi là máy client mà không cần hiểu loại máy tính(Server) đang được truy xuất, kỹ thuật TCP/IP, cấu trúc hạ tầng mạng hay Internet ngay cả con đường truyền dữ liệu đi qua để đến được đích của nó.Chỉ có những người lập trình mạng cần xem TCP/IP như là một mạng và cần hiểu một vài chi tiết kỹ thuật. SVTH : Trương Minh Tuyến Trang 8
- Simpo PDF GVHD: Merge Thandạc Splitsĩ : H Unregisteredồ Sỹ Bàng Version - Mailling System Hình 1.4 : Liên lạc trên Internet Các kiểu kết nối Internet: + Kết nối quay số(dial-up connection): rẻ tiền nhất nhưng tốc độ truy cập bị hạn chế và có thể bị gián đoạn bất ngờ khi quá tải kênh truyền. + Kết nối qua các tuyến điện thoại có tốc độ truyền 56kbs/s tốc độ có khá hơn kiểu quay số nhưng không đáng kể. Tuy nhiên, với tốc độ phát triển cực kỳ nhanh chóng của nhu cầu trao đổi thông tin trên mạng Internet, người ta xây dựng một kết nối có tốc độ cực nhanh đó là các tuyến backone, là các siêu xa lộ sử dụng loại cáp quan để truyền dữ liệu với tốc độ lên tới 622 megabits/s. + Mạng Intranet, Extranet và Internet : Khi bạn xây dựng một mạng LAN, MAN hoặc WAN theo chuẩn Internet thì bạn đã tạo ra một mạng Intranet. Khi bạn kết nối mạng Intranet vào Internet và bắt đầu giao tiếp với thế giới bên ngoài bạn đã tạo ra một Extranet. IV.Các ứng dụng Client/Server trên Internet thông dụng : Tuỳ theo thông tin lưu trữ và mục đích phục vụ mà các Server trên mạng Internet sẽ được phân chia thành các loại như Web server, Email server, Chat Server, hay FPT server, mỗi loại sẽ được tối ưu hoá theo mục đích sử dụng giao thức và cổng kết nối khác nhau. 1. World Wide Web(www): + Web là một ứng dụng khá hoàn hảo và phổ biến nhất hiện nay, và ngày nay nó cấu thành phần lớn nhất của Internet dựa trên kỹ thuật biểu diễn thông tin gọi là siêu văn bản, trong đó các từ được chọn trong văn bản có thể được mở rộng bất cứ lúc nào để cung cấp đầy đủ hơn thông tin về từ đó. Sự mở rộng ở đây theo nghĩa là chúng có thể liên kết tới các tài liệu khác: văn bản, hình ảnh, âm thanh, hay hỗn hợp các loại .có chứa thông tin bổ sung. Nói cách khác World Wide Web là phần đồ hoạ của Internet. Thuở ban đầu, Internet là hệ thống truyền thông Internet là hệ thống truyền thông dựa trên văn bản; việc liên kết với những site khác có nghia là phải gõ những địa chỉ mã hoá dài dằng dặc với độ chính xác 100%. Công nghệ World Wide Web xuất hiện như là một vị cứu tinh. Khả năng đặt hình ảnh lên Web Site bất ngờ làm cho SVTH : Trương Minh Tuyến Trang 9
- Simpo PDF GVHD: Merge Thandạc Splitsĩ : H Unregisteredồ Sỹ Bàng Version - Mailling System thông tin trên Web trở nên hấp nên hơn, lôi cuốn hơn. Ngoài ra HTTP (Hypertext Transfer Protocol) cho phép trang Web kết nối với nhau qua các siêu liên kết (hyperlink), nhờ vậy mà người dùng dễ dàng "nhảy" qua các Web site nằm ở hai đầu trái đất, World Wide Web chỉ là một phần cấu thành nên Internet ngoài ra còn có rất nhiều thành phần khác như: E-mail, Gopher, Telnet, Usenet Các trình duyệt ở các máy Client sẽ thay mặt người sử dụng yêu cầu những tập tin HTML từ Server Web bằng cách thiết lập một kết nối với máy Server web và đưa ra các yêu cầu tập tin đến Server. Server nhận những yêu cầu này, lấy ra những tập tin và gởi chúng đến cửa sổ của trình duyệt ở Client. + Web Server là web cung cấp thông tin ở dạng siêu văn bản, được biểu diễn ở dạng trang. Các trang có chứa các liên kết tham chiếu đến các trang khác hoặc đến các tài nguyên khác trên cùng một Web Server hoặc trên một Web Server khác. Các trang tư liệu siêu văn bản sau khi soạn thảo sẽ được quản lý bởi chương trình Web Server chạy trên máy Server trong hệ thống mạng. Cơ chế hoạt động của Web server + Máy server Web dùng giao thức HTTP để lấy tài nguyên Web xác định thông qua URL. HTTP là một giao thức mức ứng dụng được thiết kế sao cho truy cập tài nguyên Web nhanh chóng và hiệu quả. Giao thức này dựa vào mô hình request- reponse. Dịch vụ Web xây dựng theo mô hình client/server, trong đó Web browser đóng vai trò là client gởi các yêu cầu dưới dạng URL đến server. Web server trả lời bằng cách trả về một trang Hypertext Markup Language (HTML). + Trang HTML có thể là một trang tĩnh, tức là nội dung của nó đã có dạng xác định và được lưu trên Web site, hoặc một trang Web động (nội dung không xác định trước) mà server tạo ra tại thời điểm client yêu cầu để trả lời cho yêu cầu của client, hoặc một trang liệt kê các file và folder trên Web site. Hình 1.3 : Web browser gửi yêu cầu URL đến Web server + Web browser gửi yêu cầu URL đến Web server Mỗi trang trong một intranet hoặc trên Internet có một URL (Uniform Resource Location) duy nhất định vị chúng. Web browser yêu cầu một trang bằng cách gửi một URL đến một Web server. Web server sẽ dùng các thông tin trong URL để định vị và tổ chức một trang HTML để gửi về cho Web browser. Một chuỗi URL nói chung có dạng sau: :// / Trong đó: Tiền tố chỉ ra giao thức được sử dụng cho dịch vụ, ví dụ giao thức Hypertext Transport Protocol (HTTP) được dùng cho dịch vụ Web, giao thức FTP, gopher, là tên DNS (Domain Name System) của máy Web server. là đường dẫn đến thông tin được yêu cầu trên server. SVTH : Trương Minh Tuyến Trang 10
- Simpo PDF GVHD: Merge Thandạc Splitsĩ : H Unregisteredồ Sỹ Bàng Version - Mailling System Bảng sau ví dụ về các địa chỉ URL khác nhau: Protocol Domain name Path http:// www.hcmuns.edu.vn /vanphong/dtao.htm https:// www.company.com /catalog/orders.htm (secure HTTP) gopher:// gopher.college.edu /research/astronomy/index.htm ftp:// orion.bureau.gov /stars/alpha quadrant/startlist.txt + Web server trả lời yêu cầu của Web browser Hình1.4 : Web server trả lời yêu cầu URL đến Web browser Web server sẽ trả một trang HTML về cho Web browser, các trang HTML thuộc một trong 3 kiểu sau: Trang Web tĩnh (Static webpage) : là những trang HTML được chuẩn bị sẵn. Web server chỉ đơn giản là lấy trang này gởi về cho Web browser mà không gọi thi hành một chương trình hay một script nào khác. người dùng yêu cầu một trang Web tĩnh bằng cách nhập vào một chuỗi URL hoặc click chuột vào một siêu liên kết trỏ tới URL. Trang Web động (Dynamic webpage) : là những trang Web được tạo ra tại thời điểm client gửi yêu cầu để đáp ứng yêu cầu của user. Server có thể sẽ gọi chạy một chương trình khác, sử dụng các API của server, các ngôn ngữ kịch bản CGI script, query cơ sở dữ liệu tuỳ theo các thông tin mà web browser cung cấp. Danh sách liệt kê(Directory listing) : Nếu user gửi yêu cầu mà không mô tả một file cụ thể, thì có thể tạo một trang mặc nhiên cho Web site hay cho một thư mục, hoặc cấu hình server cho phép duyệt thư mục. Nếu sử dụng trang HTML mặc nhiên cho thư mục, thì trang này sẽ được gửi cho Web browser, còn nếu không có thì một directory listing (phiên bản HTML của Windows Explorer hay File Manager chạy trên trình duyệt) được trả về cho user dưới dạng một trang HTML, trong đó mỗi file và thư mục thể hiện như một siêu liên kết. Sau đó user có thể nhảy đến một file bất kỳ bằng cách click vào siêu liên kết tương ứng trong directory-listing. SVTH : Trương Minh Tuyến Trang 11
- Simpo PDF GVHD: Merge Thandạc Splitsĩ : H Unregisteredồ Sỹ Bàng Version - Mailling System 2. Thư điện tử (E-Mail): - Là dịch vụ rất phổ biến và thông dụng trong mạng Internet/Intranet và hầu như không thể thiếu được trong Internet/Intranet hiện nay. Tuy nhiên không phải là dịch vụ “từ đầu - đến cuối” (end to end). Nghĩa là dịch vụ này không đòi hỏi hai máy tính gởi và nhận thư phải nối trực tiếp với nhau để thực hiện việc chuyển thư. Nó là dịch vụ kiểu lưu và chuyển tiếp (store and forward) thư được chuyển từ máy này sang máy khác cho tới khi máy đích nhận được. Người nhận cũng chỉ thực hiện một số thao tác đơn giản để lấy thư, đọc thư và nếu cần thì cho in ra. Cách liên lạc này thuận tiện hơn nhiều so với gởi thư thông thường qua bức điện hoặc Fax, lại rẻ và nhanh hơn. Cách thực hiện việc chuyển thư không cần phải kết nối trực tiếp với nhau để chuyển thư, thư có thể được chuyển từ máy này đến máy khác cho tới máy đích Giao thức truyền thống sử dụng cho hệ thống thư điện tử của Internet là SMTP(Simple Mail Transfer Protocol). Cơ chế hoạt động của thư điện tử(E-mail): - Giao thức liên lạc : mặc dù gởi thư trên Internet sử dụng nhiều giao thức khác nhau, nhưng giao thức SMTP (Single Message Transfer Protocol) được dùng trong việc vận chuyển mail giữa các trạm. Giao thức này đặc tả trong hai chuẩn là trong RFC 822 (định nghĩa cấu trúc của thư ) và RFC 821(đặc tả giao thức trao đổi thư giữa hai mạng) ngoài ra trong rfc2821 sẽ nói rõ các qui luật và cách hoạt động của giao thức. Là giao thức cơ bản để chuyển thư giữa các máy Client, SMTP có một bộ gởi thư, một bộ nhận thư, và một tập hợp lệnh dùng để gởi thư từ người gởi đến người nhận. Giao thức SMTP hoạt động theo mô hình khách/chủ (Client/ Server) với một tập lệnh đơn giản, trình khách (SMTP mail Client) sẽ bắt tay với trình chủ (SMTP mail Server) gởi các yêu cầu tiếp nhận mail. Trình chủ đọc nội dung mail do trình khách gởi đến và lưu vào một thư mục nhất định tương ứng với từng user trên máy chủ. Phần này sẽ được làm rõ hơn trong nhưng chương sau. - Cứ mỗi trạm e-mail thường bao gồm ít nhất là hai dịch vụ: POP3 (Post Office Protocol Version 3) có nhiệm vụ nhận/trả thư từ/tới e-mail client và dịch vụ SMTP (Simple E-mail Transfer Protocol) có nhiệm vụ nhận/phân phối thư từ/đến POP3 đồng thời trao đổi thư với các trạm e-mail trung gian. POP3 được tìm thấy trong rfc1725 hay RFC 1939, là một giao thức đơn giản nhất, cho phép lấy mail về từ trình chủ POP3 SVTH : Trương Minh Tuyến Trang 12
- Simpo PDF GVHD: Merge Thandạc Splitsĩ : H Unregisteredồ Sỹ Bàng Version - Mailling System Server. Ngoài tra trạm e-mail này có thể bổ sung thêm một số dịch vụ khác như ESMTP, IMAP và dịch vụ MX Record của dịch vụ DNS hay dịch vụ chuyển tiếp mail(Forward or relay). IMAP(INTERNET MESSAGE ACCESS PROTOCOL - VERSION 4rev1) thực chất là giao thức mới bổ Sung và mở rông hơn của giao thức POP3 còn thiếu. IMAP cho phép đọc, xoá, gởi, duy chuyển mail ngay trên máy chủ. Điều này rất thuận tiện cho người nhận mail phải thường xuyên di chuyển mail từ máy này sang máy khác trong quá trình làm việc. Tuy nhiên chi phí để cài đặt một trạm e-mail có giao thức IMAP là rất cao so với giao thức POP3. - Mỗi người dùng (client) đều phải kết nối với một E-mail Server gần nhất (đóng vai trò bưu cục địa phương) phải có một tên (e-mail account) trên một trạm e- mail và sử dụng chương trình e-mail client (ví dụ như Eudora, Netscape ). Sau khi soạn thảo xong thư và đề rõ địa chỉ đích (người nhận) rồi gửi thư tới E-mail-Server của mình. E-mail Server này có nhiệm vụ sẽ tự động kiểm tra và định hướng chuyển thư tới đích hoặc chuyển thư tới một E-mail-Server trung gian khác. Thư chuyển tới E- mail-Server của người nhận và được lưu ở đó. Đến khi người nhận thiết lập tới một cuộc kết nối tới E-mai-Server đó thì thư sẽ chuyển về máy người nhận, nếu không thì thư vẫn tiếp tục giữ lại ở server đảm bảo không bị mất. - Phần khác của ứng dụng thư điện tử là cho phép người sử dụng đính kèm (attachments) theo thư một tập tin bất kỳ (có thể dạng nhị phân chẳng hạn chương trình chạy). E-mail đã và đang hết sức thành công đến nỗi những người sử dụng Internet phục vụ dùng nó đối với hầu hết các trao đổi của họ. Một lý do làm e-mail Internet phổ biến là vì việc thiết kế nó rất cẩn thận: giao thức làm cho việc "phát thư" có độ tin cậy cao. không chỉ hệ thống thư tín trên máy của người gởi tương tác trực tiếp trên máy của người nhận mà giao thức còn đặc tả một thông điệp không thể bị xoá bởi người gởi cho đến khi người nhận đã thật sự có một phiên bản của thông điệp trên bộ lưu trữ (đĩa cứng chẳng hạn)của họ. - Như vậy để gởi/nhận thư người sử dụng chỉ cần quan tâm tới cách sử dụng chương trình e-mail client. Hiện nay có nhiều chương trình e-mail client như Microsoft Outlook Express, Eudora Pro, Peagasus mail, 3. Dịch vụ Chat: - Chat là tài nguyên được mọi người sử dụng trên Internet ưa chuộng nhất. Đây là tài nguyên rất lý thú, nó cho phép bạn thiết lập các cuộc đối thoại thông qua máy vi tính với người dùng khác trên Internet. Sau khi bạn đã thiết lập được hệ thống này, những gì bạn gõ trên máy tính của bạn gần như tức thời trên máy tính kia và ngược lại. Những cuộc trao đổi thông qua chương trình Chat là sự đối mặt trực tiếp giữa hai người đối thoại với nhau thông qua ngôn ngữ viết nên sẽ chậm hơn so với đối thoại bằng miệng nhưng chỉ có lợi ích nhất là với những người không cùng ngôn ngữ vì gõ- đọc dễ hơn nghe-nói và trong một số trường hợp khác thì gõ(viết) dễ hơn là nói. 4. Dịch vụ FPT (File Transfer Protocol) - Là dịch vụ truyền tập tin(tệp) trên Internet. FPT cho phép dịch chuyển tập tin từ trạm này sang trạm khác, bất kể trạm đó ở đâu và sử dụng hệ điều hành gì, chỉ cần chúng đều được nối với Internet và có cài đặt FPT. FPT là một chương trình phức tạp vì có nhiều cách khác nhau để xử lý tập tin và cấu trúc tập tin, và cũng có nhiều cách lưu trữ tập khác nhau. - Để khởi tạo FPT từ trạm làm việc của mình người sử dụng chỉ gõ : Fpt SVTH : Trương Minh Tuyến Trang 13
- Simpo PDF GVHD: Merge Thandạc Splitsĩ : H Unregisteredồ Sỹ Bàng Version - Mailling System - Fpt sẽ thiết lập liên kết các trạm xa và bạn sẽ đăng nhập vào hệ thống(login/password). Vì fpt cho phép truyền tập tin theo cả hai chiều. Để chuyển tập tin của mình đến trạm ở xa dùng lệnh put, và ngược lại dùng lệnh get để lấy thông tin về. Ngoài ra trong một số trường hợp nó có thể đổi tên, tạo, xoá thư mục .FPT Client sử dụng dịch vụ để lấy(get) các tập tin từ FPT Server về máy của mình (download) hoặc gởi(put) các tập tin lên FPT server (upload). ftp>put source-file destination-file ftp>get source-file destination-file - FTP theo nghĩa tiếng việt là nghi thức truyền file giữa các máy tính này đến máy tính khác thông qua mạng. Nếu như nghi thức TCP/IP gồm có các lớp Application, lớp TCP, lớp IP, lớp Network, lớp Datalink và lớp Physical thì FTP thuộc lớp ứng dụng (Application). - WWW là một dịch vụ hấp dẫn, nó thay thế hầu hết những chức năng của FTP. Tuy nhiên chỉ có FTP mới cho phép copy file từ máy tính Client đến Server. Nếu một người dùng từ xa muốn làm điều này thì chắc chắn họ phải dùng FTP. Những loại file có thể truyền được bằng FTP rất phong phú, từ các file tư liệu(document) cho đến các file Multimedia như file hình ảnh, âm thanh. Hình 1.5 Mô hình truyền nhận File FPT Người sử dụng chương trình fpt Client kết nối với fpt Server, để kết nối thành công người dùng phải biết địa chỉ IP hoặc tên của máy chủ chạy fpt Server được gọi là trạm ở xa(Romote host) và máy chạy fpt Client được gọi là trạm địa phương(local host), thường thì chúng ta(người sử dụng) chỉ sử dụng chương trình fpt Client. 5. Đăng nhập từ xa Telnet - Telnet là một chương trình dùng giao thức Telnet, nó là một phần của bộ giao thức TCP/IP. Nó cho phép người sử dụng từ một trạm làm việc của mình có thể đăng nhập vào một mạng ở xa qua mạng và làm việc với hệ thống y như một trạm cuối nói trực tiếp với trạm ở xa đó. - Máy tính ở xa, còn được gọi là telnet, sẽ chấp nhận nối kết telnet từ một máy tính trên một hệ thống TCP/IP. bởi vì Internet là một mạng TCP/IP, telnet sẽ làm việc một cách hài hoà giữa các máy tính nối đến nó nếu như dịch vụ telnet được cài đặt trên SVTH : Trương Minh Tuyến Trang 14
- Simpo PDF GVHD: Merge Thandạc Splitsĩ : H Unregisteredồ Sỹ Bàng Version - Mailling System máy tính của bạn. các thành phần telnet và server thoả thuận trong cách mà chúng sẽ dùng kết nối, vì thế mặc dù các hệ thống không cùng loại chúng vẫn tìm thấy một ngôn ngữ chung. telnet cũng có những giới hạn của nó, nếu lưu thông trên mạng kết nối từ xa có thể khiến cho sự cập nhật từ màn hình trở nên chậm hơn. Telnet thường dùng cho các mục đích công cộng và thương mại, cho phép những người dùng ở xa tìm kiếm các cơ sở dữ liệu lớn, phức tạp, và nó cũng là nguồn tài nguyên có giá trị trong giáo dục giúp cho việc nghiên cứu của bạn trở nên hấp dẫn hơn. - Ðể khởi động Telnet, từ trạm làm việc của mình người sử dụng chỉ việc gõ: telnet Người sử dụng kết nối đến Server Telnet(thường gọi là daemon) sẽ sử dụng cổng 23 cho những kết nối đến Server. Để hiểu rõ việc truyền thông giữa Telnet Client và Telnet Server thì bộ RFC 854 nói lên mối liên lạc này. RFC 854 xác định được 3 thành phần cơ bản trong bộ giao thức Telnet. Khái niệm thiết bị đầu cuối ảo(Network Virtual Terminal). Những qui tắc tuỳ chọn cho việc dàn xếp để chuyển dữ liệu. Sự tương xứng giữa thiết bị đầu cuối và các tiến trình. 6. Archie (tìm kiếm tập tin) Phát triển tại đại học McGill ở Canada, Archie là một loại thư viện khổng lồ sẽ tự động và đều đặn tạo ra một số lớn các thông tin gởi đến máy chủ trên Internet và lập chỉ mục các tập tin của chúng để tạo ra một cơ sở dữ liệu duy nhất có thể tìm kiếm được. CSDL này còn là mục lục của dữ liệu danh mục, một sự biên dịch các tập tin có sẵn trên mọi máy chủ, Archie quét qua các máy chủ Internet một cách thường xuyên, và CSDL này thường xuyên được cập nhật. thực sự thì Archie không phải là một hệ thống độc lập, thay vì vậy nó là một nhóm các máy chủ. mỗi máy chủ archie đáp ứng cho sự tra hỏi các máy chủ Internet của chính nó để tạo nên cơ sở dữ liệu cho chính nó. 7. Gopher(Dịch vụ tra cứu thông tin theo thực đơn) Gopher cho phép ta truy cập vào nhiều nguồn tài nguyên khác nhau, nhiều loại dịch vụ của Internet. Là một hệ thống làm việc theo Client/Server dưới dạng thực đơn(Menu), có thể duy chuyển từ menu này sang menu khác. Nếu thông tin cần tìm không có ở trạm kết nối thì Gopher Server sẽ tự động nối đến trạm khác. Hệ thống Gopher phát triển bởi đại học Minnesota và được miễn phí cho các hoạt động phi lợi nhuận, Gopher có thể được dùng trên một số hệ thống máy tính như: UNIX, DOS, Microsoft Windows, Macintosh, OS/2 Phần mềm Client chạy trên máy tính của bạn có thể chạy trên bất kỳ máy nào của Gopher. Với Gopher bạn có thể đi xuyên qua Internet và đi đến những nơi mà không có người dùng nào đã từng đi đến, cách mà nó thực hiện bởi tổng hợp các công cụ Internet như: Telnet, FPT, để khi bạn tìm ra một đề mục tương quan đến những gì bạn đang tìm kiếm, bạn có thể đi trực tiếp đến nó mà không cần một trình tiện ích, hãy nhập vào địa chỉ của mục tiêu việc tìm kiếm Gopher sẽ lấy tất cả điều này cho bạn. 8. Tìm kiếm thông tin theo chỉ số (WAIS) Cũng giống như Gopher, WAIS( Wide Area Information Server) cho phép tìm kiếm và truy cập thông tin trên mạng(phần lớn là thông tin văn hoá) mà không cần biết chúng đang thực sự ở đâu. WAIS cũng hoạt động theo mô hình Client/Server, tuy nhiên ngoài WAIS Client và WAIS Server còn thêm WAIS indexer thực hiện việc cập SVTH : Trương Minh Tuyến Trang 15
- Simpo PDF GVHD: Merge Thandạc Splitsĩ : H Unregisteredồ Sỹ Bàng Version - Mailling System nhật dữ liệu mới, sắp xếp theo chỉ số để tiện trong việc tìm kiếm. WAIS không chỉ cho phép hiển thị tập tin văn bản mà còn những tập tin đồ hoạ. Nó là nguồn quan trọng giúp cho các nguồn thông tin trên Internet có thể truy xuất được. WAIS là một trong những chương trình đầu tiên dựa vào tiêu chuẩn Z39.50( tiêu chuẩn của American National Standard), nó là hệ thống đầu tiên dùng tiêu chuẩn này, nó trở thành một dạng thức tìm kiếm phổ biến, WAIS có thể nối đến bất kỳ CSDL hoặc máy Client có dùng Z39.50. 9. Dịch vụ tên miền (Domain Name System - DNS) - Việc định danh các phần tử của liên mạng bằng các con số như trong địa chỉ IP rõ ràng là không làm cho người sử dụng hài lòng, bởi chúng khó nhớ, dễ nhầm lẫn. Vì thế người ta đã xây dựng hệ thống đặt tên (name) cho các phần tử của Internet, cho phép người sử dụng chỉ cần nhớ đến các tên chứ không cần nhớ đến các địa chỉ IP nữa. Ta có thể biết thêm thông tin cách hoạt động của dịch vụ này thông qua RFC 1035. - Hệ thống này được gọi là DNS (Domain Name System). Ðây là một phương pháp quản lý các tên bằng cách giao trách nhiệm phân cấp cho các nhóm tên. Mỗi cấp trong hệ thống được gọi là một miền (domain), các miền được tách nhau bởi dấu chấm. Số lượng domain trong một tên có thể thay đổi nhưng thường có nhiều nhất là 5 domain. Domain có dạng tổng quát là local-part@domain-name. trong đó : Local-part thường là tên của một người sử dụng hay nhóm người sử dụng do người quản lý mạng nội bộ qui định. Còn domain-name được gán bởi các Trung tâm thông tin mạng (NIC) các cấp. Domain cấp cao nhất là cấp quốc tế(com, org, net, ) sau đó là cấp quốc gia và mỗi quốc gia được gán một tên miền riêng biệt gồm hai chữ cái. Ví dụ vn (Việt Nam), us (Mỹ), ca (Canada), fr (Pháp), v.v Trong từng quốc gia lại được chia thành 6 domain cao nhất và tiếp tục đi xuống các cấp thấp hơn. Quốc gia VN Domain Phạm vi sử dụng Gov các tổ chức chính phủ (phi quân sự) Edu các cơ sở giáo dục gov edu com mil org net Com các tổ chức kinh doanh, thương mại Mil các tổ chức quân sự hut Org các tổ chức khác Net các tài nguyên mạng fit - Mỗi một Domain cấp chính cần phải cung cấp cho một DNS Server, DNS s Server này có nhiệm vụ lưu trữ địa chỉ các Domain con của nó nhằn mục đích giúp người sử dụng tìm kiếm và truy xuất vào các địa chỉ này một cách dễ dàng. Các DNS Server đều liên lạc được với nhau. 10. Dịch vụ nhóm tin (Use Net News Groups) Là dịch vụ cho phép nhiều người ở nhiều nơi khác nhau có thể tham gia công tác hay trao đổi về một chủ đề riêng nào đó hoặc những người có cùng mối quan tâm giống nhau có thể tham gia vào một nhóm tin để trao đổi về vấn đề đó. Mỗi chủ đề được thảo luận trong một nhóm riêng biệt. Chủ đề của một nhóm trong một nhóm riêng biệt. Chủ đề của một nhóm tin thì vô cùng phong phú ví dụ như: nhóm tin thuộc SVTH : Trương Minh Tuyến Trang 16
- Simpo PDF GVHD: Merge Thandạc Splitsĩ : H Unregisteredồ Sỹ Bàng Version - Mailling System nhạc cổ điển, nhóm tin về thể thao, nhóm tin khoa học Xoay quanh mọi vấn đề trong cuộc sống, có thể nói không có vấn đề gì không có trong nhóm tin, mỗi nhóm tin có thể có nhiều nội dung thảo luận. Khi bạn gởi một bản tin đến một nhóm tin chủ thì chủ đó sẽ tiếp tục gởi bản tin đến một nhóm chủ cùng cộng tác trên Internet, và thông tin có thể lấy từ các Server (máy chủ) khác nhau. Vì vậy những người khác có thể lấy về và đọc bản tin đó từ News Server mà họ nối tới. Việc gởi bản tin tới nhóm tin cũng tương tự như E-mail chỉ khác ở chỗ là địa chỉ gởi là địa chỉ của nhóm tin và việc lấy các văn bản về đọc cũng tương tự như lấy và đọc E-mail. Và người sử dụng cũng chỉ cần biết đến một server tin duy nhất, đó là server tin mà mình kết nối vào. Mọi sự trao đổi, tương tác giữa các server tin và các nhóm tin là hoàn toàn trong suốt đối với người sử dụng. Với dịch vụ này, người sử dụng có thể nhận được thông tin cần thiết từ nhiều người từ khắp thế giới. SVTH : Trương Minh Tuyến Trang 17