Tìm hiểu về các Web server thông dụng hiện nay và các nghi thức truyền nhận mail cơ bản như SMTP và POP3 - Nguyễn Ngọc Bình
Bạn đang xem 20 trang mẫu của tài liệu "Tìm hiểu về các Web server thông dụng hiện nay và các nghi thức truyền nhận mail cơ bản như SMTP và POP3 - Nguyễn Ngọc Bình", để 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:
- tim_hieu_ve_cac_web_server_thong_dung_hien_nay_va_cac_nghi_t.pdf
Nội dung text: Tìm hiểu về các Web server thông dụng hiện nay và các nghi thức truyền nhận mail cơ bản như SMTP và POP3 - Nguyễn Ngọc Bình
- z ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình LUẬN VĂN TỐT NGHIỆP KHOA CƠNG NGHỆ THƠNG TIN Đề tài: Tìm hiểu về các Web server thơng dụng hiện nay và các nghi thức truyền nhận mail cơ bản như SMTP và POP3. trang 1
- ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình A. YÊU CẦU CỦA ĐỀ TÀI: Bao gồm các phần sau: Tìm hiểu về các Web server thơng dụng hiện nay: + Microsoft Internet Information Server + Apache Web Server Trình bày về đặc điểm về khả năng, cài đặt, vận hành, hỗ trợ các ứng dụng Web và so sánh các điểm mạnh, yếu, các ưu nhược điểm giữa chúng. Tìm hiểu về hệ thống mailing list: Tìm hiểu về các nghi thức truyền nhận mail cơ bản như SMTP và POP3. Tìm hiểu cách vận hành và cài đặt của các hệ thống mail trên các hệ điều hành thơng dụng: + Internet Mail. + Linux Mail. B. CƠ SỞ LÝ THUYẾT: CHƯƠNG I TÌM HIỂU VỀ CÁC WEB SERVER THƠNG DỤNG I. GIỚI THIỆU VỀ HỆ ĐIỀU HÀNH WINDOWS NT 1. Thế nào là một hệ điều hành mạng: Mạng bao gồm các tài nguyên (máy trạm, máy in ) và các thiết bị truyền thơng (router, bridge). Với việc ghép nối các máy tính thành mạng thì cần thiết phải cĩ một hệ thống phần mềm cĩ chức năng quản lý tài nguyên, tính tốn và xử lý truy cập một cách thống nhất trên mạng, hệ như vậy được gọi là hệ điều hành mạng. Mỗi tài nguyên của mạng như file, đĩa, thiết bị ngoại vi được quản lý bởi một tiến trình nhất định và hệ điều hành mạng điều khiển sự tương tác giữa các tiến trình và truy cập đến các tiến trình đĩ. Quản lý các tài nguyên: tập tin ở xa, nạp và chạy các App dùng chung, I/O với các thiết bị mạng dùng chung, chỉ cấp phát CPU trong tiến trình NOS. Căn cứ vào việc truy cập tài nguyên trên mạng mà người ta chia thực thể trong mạng thành hai loại chủ và khách, trong đĩ máy khách (Client) truy cập được vào tài nguyên của mình nhưng khơng chia xẻ tài nguyên của nĩ với mạng, cịn máy chủ (Server) là máy tính nằm trên mạng và chia xẻ tài nguyên của nĩ với người dùng mạng. Hiện nay các hệ điều hành mạng thường được chia làm hai loại là hệ điều hành mạng ngang hàng và hệ điều hành mạng phân biệt (clent/server). Với hệ điều hành mạng ngang hàng, mỗi máy tính trên mạng vừa cĩ thể đĩng vai trị chủ lẫn khách tức là chúng cĩ thể sử dụng tài nguyên của mạng lẫn chia xẻ tài nguyên của nĩ cho mạng. Ví dụ: Lantastic của Artisoft, Netware của Novell, Windows (for Workgroup, 95, NT client) của Microsoft. Với hệ điều hành mạng phân biệt các máy tính được phân biệt chủ và khách, trong đĩ máy chủ mạng (Server) giữ vai trị chủ và các máy người dùng giữ vai trị trang 2
- ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình khách (các trạm). Khi cĩ nhu cầu truy cập tài nguyên trên mạng các trạm tạo ra yêu cầu và gửi chúng tới server và sau đĩ server thực hiện và gửi trả lời. 2. Hệ điều hành mạng Windows NT Windows NT là hệ điều hành mạng cao cấp của hãng Microsoft. Phiên bản đầu tiên cĩ tên là Windows NT 3.1 phát hành năm 1993 và phiên bản server là Windows NT Advanced Server (trước đĩ là LAN manager for Windows NT). Năm 1994 phiên bản Windows NT Server và Windows NT Workstation phiên bản 3.5 được phát hành. Tiếp theo đĩ là sự ra đời các phiên bản 3.51. Các phiên bản Workstation cĩ thể sử dụng để thành lập mạng ngang hàng, cịn các phiên bản Server dàng cho quản lý file tập trung, in ấn và chia sẻ các ứng dụng. Năm 1995, Windows NT Workstation phiên bản 4.0 và Windows NT Server 4.0 ra đời đã kết hợp với cấu trúc khung của người anh em Windows 95 nổi tiếng phát hành trước đĩ khơng lâu (trước đây cấu trúc khung của Windows NT giống Windows 3.1) đã được kết hợp giao diện quen thuộc, dễ sử dụng của Windows 95 và sự mạnh mẽ, an tồn, bảo mật cao của Windows NT. Windows NT cĩ hai bản mà nĩ đi đơi với hai cách tiếp cận mạng khác nhau. Hai bản này gọi là Windows NT Workstation và Windows NT server. Với hệ điều hành chuẩn của NT ta cĩ thể xây dựng mạng ngang hàng, server mạng và mọi cơng cụ quản trị cần thiết cho server mạng, ngồi ra cịn cĩ thể cĩ nhiều giải pháp về xây dựng mạng diện rộng. Cả hai bản Windows NT Workstation và Windows NT server cùng được xây dựng trên cơ sở nhân NT chung và các giao diện và cả hai cùng cĩ những đặc trưng an tồn theo tiêu chuẩn C2. Windows NT Workstation được sử dụng để kết nối những nhĩm người sử dụng nhỏ, thường cùng làm việc trong một văn phịng. Tuy nhiên với Windows NT server ta cĩ một khả năng chống hỏng hĩc cao, những khả năng cung cấp dịch vụ mạng lớn và những lựa chọn kết nối khác nhau, Windows NT server khơng hạn chế số người cĩ thể thâm nhập vào mạng. Với Windows NT server ta cũng cĩ những cơng cụ quản trị từ xa vào mạng mà cĩ thể thực hiện việc quản trị những máy tính ở xa. Nĩ tích hợp với tất cả những sơ đồ mạng BUS, STAR, RING và hỗn hợp. Windows NT là hệ điều hành cĩ sức mạnh cơng nghiệp đầu tiên cho số lượng khổng lồ các máy tính IBM compatible, Windows NT là một hệ điều hành thực sự dành cho người dùng, các cơ quan, các cơng ty xí nghiệp. Windows NT là một hệ điều hành đa nhiệm, đa xử lý với địa chỉ 32 bit bộ nhớ. Nĩ yểm trợ các ứng dụng của DOS, Windows, Win 32 GUI và các ứng dụng dựa trên ký tự. Windows NT server là hệ điều hành mạng, đáp ứng cho mạng cục bộ (LAN) vừa đáp ứng cho mạng diện rộng (WAN) như Intranet, Internet. Windows NT server hơn hẳn các hệ điều hành khác bởi tính mềm dẻo, đa dạng trong quản lý. Nĩ vừa cho phép quản lý mạng theo mơ hình mạng phân biệt (Client/Server) vừa quản lý theo mơ hình mạng ngang hàng (Peer to Peer). Windows NT server đáp ứng tốt nhất các dịch vụ viễn thơng, một dịch vụ được sử dụng rộng rãi trong tương lai. Windows NT server cài đặt đơn giản, nhẹ nhàng và điều quan trọng nhất là nĩ tương thích với hầu như tất cả các hệ mạng, nĩ khơng địi hỏi người ta thay đổi những gì đã cĩ. Cho phép dùng các dịch vụ truy cập từ xa, cĩ khả năng phục vụ đến 64 cổng truy nhập từ xa. trang 3
- ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình Đáp ứng cho các máy trạm Macintosh nối với Windows NT server. Windows NT server yểm trợ mọi nghi thức mạng chuẩn như NETBUEI, IPX/SPX, TCP/IP và các nghi thức khác. Windows NT cũng tương thích với những mạng thơng dụng hiện nay như Novell netware, Banyan VINES và Microsoft LAN Manager. Đối với mạng lớn và khả năng thâm nhập từ xa, sản phẩm Windows NT server cũng cung cấp các chức năng bổ sung nhu cầu , khả năng kết nối với máy tính lớn và máy Macintosh. III. TỔNG QUAN VỀ WEB SERVER : Web Server: Web server là một phần mềm server đằng sau WWW. Nĩ lắng nghe những yêu cầu từ phía client, chẳng hạn như một trình duyệt như Netscape hoặc Microsoft Internet Explorer. Khi nhận được một yêu cầu từ phía client, nĩ sẽ xử lý những yêu cầu đĩ và trả về một vài dữ liệu dưới dạng một fom chứa các trang được định dạng dưới dạng văn bản hoặc hình ảnh. Trình duyệt Web trả lại dữ liệu này với khả năng tốt nhất cĩ thể và trình đến người sử dụng. Khái niệm về Web server đơn giản chỉ là một chương trình mà chúng chờ đợi những yêu cầu từ phía client và đáp ứng những yêu cầu đĩ khi nhận được. Web server kết nối với các trình duyệt hoặc các client sử dụng giao thức HTTP, đĩ là một giao thức đã được chuẩn hĩa các phương thức của các yêu cầu gửi đi và xử lý các yêu cầu đĩ. Nĩ cho phép rất nhiều các client khác nhau kết nối với các server cung cấp mà khơng gặp bất kỳ một trở ngại nào trong vấn đề tương thích. Hầu hết các tài liệu yêu cầu hoặc đáp ứng đều phải được định dạng bằng ngơn ngữ HTML. HTML là một phần của một ngơn ngữ đánh dấu khác gọi là SGML, nĩ được sử dụng rộng rãi bởi nhiều tổ chức và trong các chính phủ liên bang. HTML là nguồn sống của Web. Nĩ là một ngơn ngữ đánh dấu đơn giản được sử dụng để định dạng văn bản. Trình duyệt thơng dịch các thơng tin đánh dấu này và hiển thị các thơng tin cần đáp ứng này với khả năng tốt nhất cĩ thể. Quan trọng hơn nữa, HTML cho phép liên kết với các tài liệu và tài nguyên khác, đây là sự thể hiện tính siêu văn bản của Web. Siêu văn bản cho phép người sử dụng xem một tài liệu khác lưu trữ ở trên cùng một máy hoặc trong một máy khác đặt ở một nơi khác trên thế giới. Nĩ cho phép thơng tin tồn tại hầu như dưới dạng ba chiều. Người sử dụng khơng những chỉ cĩ thể đọc tài liệu mà cịn cĩ thể chuyển đến một chỗ khác. Tiến trình tìm và mang thơng tin về hồn tồn trong suốt đối với người sử dụng. Nĩ là một ngơn ngữ uyển chuyển và dễ sử dụng. Sự điều hướng thơng tin qua nhiều thơng tin theo một cách đặc biệt. Nĩ cho phép ngwời sử dụng thu thập thơng tin một cách dễ dàng và hiển thị chúng theo cách mà người sử dụng dễ lựa chọn nhất. Nếu bất ngờ người sử dụng hỏi bằng cách nào để tạo ra một trang Web. Thì họ sẽ giáp mặt với hàng loạt các vấn đề cĩ liên quan mà họ cần phải tìm hiểu trước khi bắt đầu viết mã một trang HTML đầu tiên. Vấn đề quan trọng nhất và là lý do cơ bản nhất là phải lựa chọn phần mềm server nào để sử dụng, với những thơng tin cơ bản nhất mà cuốn báo cáo này cung cấp, sự lựa chọn cĩ lẽ là khơng khĩ. trang 4
- ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình Các vấn đề mà cần phải quan tâm khi lựa chọn một Web server để giao phĩ cơng việc cho nĩ. - Phần mềm trả tiền hay đươc miễn phí. - Dễ cài đặt. - Dễ cấu hình. - Dễ mở rộng hoặc tuỳbiến một vài diện mạo của server. - Các đặc trưng cơ bản. - Sự phát triển liên tục. - Hỗ trợ bảo mật. - Mã nguồn sẵn cĩ. - Hỗ trợ cơng nghệ. - Hỗ trợ nền tảng. - Hỗ trợ đối với các phần mềm thứ ba. IV. INTERNET INFORMATION SERVER (IIS): IIS là một dịch vụ tuỳ chọn của Windows NT server cung cấp các tính năng về Web site. Giải pháp phổ biến nhất của Microsoft cho một Web site là chạy IIS trên nền Windows NT server. IIS là một thành phần cơ bản để xây dựng một Internet hoặc Intranet server trền nền Windows NT 4.0, Workstation và Win 95. IIS được tích hợp đầy đủ trong Windows NT 4.0. Với một bộ đầy đủ IIS và Windows NT 4.0 người sử dụng sẽ nhận được sự thuận tiện khi xây dựng một cơ chế bảo mật trên Windows NT server và Windows NT File System (NTFS). Người sử dụng cĩ thể sử dụng các kỷ thuật Internet thêm vào được cung cấp bởi IIS để nâng cao các tính năng Microsoft Back Office, bao gồm các thành phần sau: - Hệ thống quản trị cơ sở dữ liệu Microsoft SOL Server Client/Server. - Hệ thống thơng báo Microsoft Exchange Server Client/Server. - Microsoft Proy Server. - Microsoft SNA Server kết nối với mạng IBM enterprise. - Hệ thống quản lý Server của Microsoft (tập trung quản lý các hệ thống phân tán). -Microsoft Commercial Internet Server (MCIS). Với IIS người sử dụng cĩ thể triển khai liên tục các ứng dụng mạng lên các server ra đời muộn các nội dung Web mơi nhất. IIS đầy đủ hỗ trợ các hệ thống ngơn ngữ lập trình VB, VB Script, J ScriptTM được phát triển bởi Microsoft và Java Component Nĩ cũng hỗ trợ các ứng dụng CGI dành cho các ngơn ngữ lập trình Web cơ sở và ISAPI mở rộng và các bộ lọc. 1. Cài đặt IIS trên Windows NT server: Microsoft cung cấp các chương trình cài đặt khá thân thiện để cài đặt IIS trên Windows NT server. Các bước cơ bản là lấy chương trình từ NT Option Pack hoặc tải từ Internet và chạy Setup.exe. Windows NT Option Pack: IIS là một thành phần của Windows NT Option Pack. Một bộ Windows NT Option Pack sau khi cài đặt đầy đủ phải bao gồm các thành phần sau: trang 5
- ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình Microsoft Transaction Server. (MTC) Microsoft Management Console. (MMC) Microsoft Index Server. Microsoft Certificate Server. Microsoft Site Server Express. (SSE) - MTS là một thành phần cơ bản giải quyết các tiến trình hệ thống cho các quá trình phát triển, phá huỷ và quản lý sự thi hành ở mức cao và các ứng dụng server mạnh. - MMC là một ứng dụng xuyên suốt phân chia các cơng cụ quản lý mà nĩ cĩ thể đưa ra các cách để quản trị các chương trình mạng, thêm vào đĩ MMC được kết hợp với các sản phẩm của Microsoft như: Windows NT và tất cả các sản Office.phẩm thuộc MS Back Trong khi MMC tự nĩ khơng đưa cho người sử dụng bất kỳ một chức năng nào được thêm vào cả mà chỉ cung cấp một mơi trường chung cho snap-ins. Snap- ins cung cấp mơi trường quản trị ảo cho mỗi sản phẩm tương thích của nĩ. Snap-ins được trình bày trong IIS như là một dịch vụ quản lý Internet (ISN). Khi IIS khởi động, MMC cũng sẽ được khởi động và nạp vào snap-ins. Trong tương lai tất cả các sản phẩm của MS Back Office bao gồm cả Windows, Windows NT, các cơng cụ quản trị mạnh sẽ được chuyển sang MMC. Một bộ IIS phải bao gồm đầy đủ các thành phần sau: Content Index (Index Server). FTP Publishing Service. IIS Admin Service (Internet Service Manager snap-in). Microsoft Network News Transfer Protocol (NNTP) Service. Microsoft Simple Mail Transfer Protocol (SMTP) Service. MSDTC (Microsoft Distributed Transaction Coordinator). World Wide Web Publishing Service. 2. Quản lý IIS Web server: + HTTP server: Dịch vụ này tạo một WWW server cơng cộng. Server này tạo nhiều trang HTML cho phép người sử dụng cĩ thể chạy các ứng dụng CGI để thi hành các cơng việc thêm vào ở server dựa trên các yêu cầu của client. Văn bản, hình ảnh, âm thanh và các tài nguyên khác cĩ thể được tải xuống WWW client. + Gopher Server: Dịch vụ này cung cấp các tài nguyên cho các Gopher client. Server gửi các file, các danh sách thư mục và các mục chọn trình đơn khác đến Gopher client. + FTP server: Dịch vụ này là một cập nhật đến server được cài đặt sẵn trên Windows NT (TM), nĩ chuyển các file cĩ sẵn đến FTP client. Mặc dù WWW đã thay thế hầu hết các chức năng của FTP, tuy nhiên chỉ FTP mới cĩ thể được sử dụng để sao chép các file từ một máy client đến một máy server. Nếu những người truy cập từ xa cần làm việc đĩ, họ phải sử dụng FTP. + Sự dễ dàng chia xẻ: Tất cả các dịch vụ trên là một phần của một tiến trình như nhau với mục đích là làm hạn chế sử dụng bộ nhớ ngồi và tăng hiệu quả. IIS cũng hỗ trợ thi hành sự giám sát các bộ đếm và kiểm tra SNMP với FTP, Gopher, HTTP Bộ đếm SNMP nằm dưới nút IIS của cây tên MIB. + Internet Server API: trang 6
- ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình Các API này cung cấp các ứng dụng cho giao diện với IIS. Cĩ 2 cách để các API này sử dụng: + Các phần mở rộng CGI: Các API này cho phép người sử dụng viết các CGI DLL mà nĩ ở trong vùng bộ nhớ giống như IIS. Đây là sự khác biệt từ một CGI bình thường cĩ thể thi hành, mà nĩ là một tiến trình rời rạc. Sử dụng các phần mở rộng này làm tăng khả năng thi hành của server và làm giảm bộ nhớ yêu cầu. + Bộ lọc: Các API này cĩ thể được sử dụng để viết các DLL mà nĩ ngăn chặn tất cả khảng năng tải HTTP đang được nhận bởi server. Một ứng dụng cĩ thể được viết mà nĩ thực hiện nén, giải nén, mã hĩa, giải mã hoặc thêm vào các xác thực. + Internet Service Manager: Cơng cụ này được sử dụng để cấu hình và theo dõi tất cả các IIS trên một mạng. Nĩ sử dụng RPC để cấu hình IIS trên một máy khác. + Các ứng dụng client: IIS hỗ trợ các giao thức HTTP, Gopher, FTP và các client những giao thức này như là các trình duyệt : Internet Explorer, Netscape. + Internet Database Connector (IDC): - Với IDC người sử dụng cĩ thể: - Truy cập ODBC tương thích với các cơ sở dữ liệu. - Tạo trang Web quản lý cơ sở dữ liệu. - Chèn, cập nhật và xĩa thơng tin cơ sở dữ liệu do người sử dụng muốn nhập vào từ trang Web. - Thực hiện các câu lệnh SQL khác. 3. IIS WWW Server: WWW là một bộ tập hợp các thơng tin của client và server. Dữ liệu siêu văn bản (hyper text) được chia xẻ bởi các server đang chạy phần mềm Web và được truy cập bởi các client đang chay một phần mềm ứng dụng Web gọi là trình duyệt Web. WWW server cung cấp các thơng tin phân tán và phần mềm, nhưng theo hướng site hơn là hướng thư mục. Tài liệu Web là một tài liệu siêu văn bản được viết bằng ngơn ngữ đánh dấu siêu văn bản (HTML), và với các thẻ đặc biệt để liên kêt đến nội dung các tài liệu khác, chúng được gọi là siêu liên kết (hypelink). Với siêu liên kết, xuất phát từ một trang tài liệu người sử dụng cĩ thể đi đến mọi nơi trên thế giới để xem những trang tài liệu khác chỉ bằng bước kích chuột vào liên kết mà trình duyệt thể hiện. WWW đi kèm với mơ hình mạng client/server và sử dụng giao thức HTTP giữa client và server. Tài liệu được chứa trên nhiều các server tự trị trên Internet và được truy cập bởi HTTP client gọi là trình duyệt Web. Để truy cập vào tài nguyên WWW, client phải: + Chạy một trình duyệt WWW chẳng hạn như Internet Explorer(TM) Masaic(TM) hoặc Netscape(TM) Cĩ vài WWW client cĩ sẵn và chúng cĩ thể được tải xuống trực tiếp từ Internet. + Kết nối đến một WWW server bằng cách cung cấp một địa chỉ URL và gửi yêu cầu HTTP. Điển hình như client yêu cầu một file (trang HTML, hình ảnh ) trang 7
- ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình hoặc thư mục đang hiển thị từ server, client cũng cĩ thể gửi một ứng dụng đến server. Server sẽ đáp ứng với trạng thái hoạt động hoặc thành cơng hoặc bị lỗi và dữ liệu trả về cho yêu cầu của client. Sau khi dữ liệu được gửi đi, kết nối sẽ đĩng lại và khơng cĩ phần nào của tài liệu đã gửi được giữ lại trên server. Mỗi đối tượng trong một tài liệu HTTP địi hỏi một kết nối khác nhau. WWW với giao thức HTTP đã trở thành một cánh thơng dụng để truy cập tài liệu trên Internet. WWW cung cập một cách dễ dàng nhất để truy cập dữ liệu trên Internet hoặc trên mạng Intranet của các cơng ty. A) CÁC TIỆN LỢI CỦA VIỆC SỬ DỤNG DỊCH VỤ WWW: - Trình duyệt WWW hỗ trợ nhiều kiểu dữ liệu. Một trình duyệt WWW cĩ thể tự động tải xuống và hiển thị các file văn bản, hình ảnh, chạy video, sound clip và khởi chạy các ứng dụng trợ giúp cho tất cả các loại file phổ biến. Người sử dụng khơng cần biết trình duyệt tải xuống hoặc sử dụng các file dữ liệu ở xa như thế nào chỉ đơn giản là trình duyệt đã giúp ta trong việc tải xuống và hiển thị các file. Một ví dụ: Một WWW client đang mở một file ảnh BMP, người sử dụng sẽ thấy nĩ hiển thị ngay lập tức nĩ trong cửa sổ ứng dụng của WWW client. Nếu sử dụng một ứng dụng khác, chẳng hạn như FTP sẽ chỉ tải file xuống và lưu trên đĩa, người sử dụng sẽ phải chạy một ứng dụng khác chẳng hạn như Paint Bruh để xem nĩ. - Trình duyệt WWW hỗ trợ nhiều giao thức. Trình duyệt WWW khơng cĩ giới hạn để truy cập chỉ một kiểu server. Trình duyệt WWW hỗ trợ nhiều giao thức để truy cập file trên một FTP server, các bảng chọn trên Gopher server, Newgroups và tài nguyên WWW. B) GIỚI THIỆU VỀ GIAO THỨC HTTP: HTTP là một giao thức được sử dụng chủ yếu trên Internet ngày nay. HTTP là một giao thức đi tiên phong trong sự phát triển Web. Nĩ cĩ một đặc điểm chung là tính khơng biên giới. Giao thức hướng đối tượng này được sinh ra từ sự cần thiết cho một giao thức tồn cầu để làm đơn giản việc truy cập vào Internet. HTTP là một giao thức client/server nằm ở tầng ứng dụng của mơ hình phân tần Internet. Bằng việc mở rộng những phương thức hay dịng lệnh, người sử dụng cĩ thể sử dụng HTTP cho nhiều chức năng khác nhau, kể cả chức năng quản lý hệ thống tên server và các đối tượng phân tán. HTTP khơng ngừng được cải tiến, dẫn đến việc W3C được đưa ra vào năm 1994 đã phát triển thành một tiêu chuẩn chung cho Web. C) HOẠT ĐỘNG CỦA HTTP: Các tiến trình xảy ra khi Client mở một tài liệu HTNL trên một WWW server: 1/ Kết nối TCP: Mặc định HTTP server sẽ lắng nghe ở cổng 80. Trình duyệt lựa chọn một cổng cục bộ (>1024) và thực hiện một kết nối TCP đến cổng một server trước khi dữ liệu được gửi. Một HTTP server cĩ thể lắng nghe ở một cổng khác, tuy nhiên client cần phải cung cấp sơ thứ tự cổng chính xác ở URL để cĩ thể kết nối. 2/ Yêu cầu phía Client: trang 8
- ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình Dịng yêu cầu: Chứa một câu lệnh yêu cầu gọi là phương thức và địa chỉ URL của đối tượng được giải quyết yêu cầu bởi phương thức. + Phương thức: Được sử dụng để chỉ thị cho server thi hành một cơng việc đặc biệt. Hầu hết các server bao gồm cả IIS chỉ hỗ trợ 3 phương thức bởi vì các phương thức khơng được thi hành bởi hầu hết các trình duyệt. GET: Phương thức này chỉ thị cho HTTP server gửi đến một đối tượng (các Web site, file, hình ảnh ) bằng địa chỉ URL. Phương thức này chỉ dùng trên HTTP client. HEAD: Phương thức này cũng giống như GET, tuy nhiên nĩ chỉ trả về thơng tin header của đối tượng chứ khơng phải tồn bộ dữ liệu. POST: Phương thức này được sử dụng bởi HTTP client để gửi một đối tượng lên server. Ví dụ: GET www.microsoft.com/HTTP + Trường tiêu đề của gĩi tin: Đây là một tập các trường mơ tả client và kiểu dữ liệu được gửi. + Dữ liệu: Nếu một client gửi một dữ liệu chẳng hạn một form đến một server, nĩ sẽ nằm trong phiên này của yêu cầu. 3/ Server trả lời: WWW server nhận một yêu cầu và quá trình này căn cứ trên phương thức yêu cầu chứa trong dịng lệnh yêu cầu. Server sau đĩ sẽ trả lời. Dịng Status : Chỉ ra yêu cầu thành cơng hoặc bị lỗi. Message Header Field: Nĩ cung cấp các thơng tin về server và kiểu dữ liệu trả về. Dữ liệu trả lời: Đây là dữ liệu yêu cầu ở dạng bit. 4/ Đĩng kết nối. D) GIỚI THIỆU VỀ SECURE SOCKETS LAYER (SSL) SSL cung cấp một kết nối bảm đảm bằng cách mã hĩa và giải mã dữ liệu. Một SSL-enable server giống như IIS cĩ thể kết nối với một SSL-enable client chẳng hạn như trình duyệt Internet Explorer. Giao thức SSL nằm ở tầng trình diễn OSI và di chuyển dữ liệu từ tầng ứng dụng HTTP đến tầng chuyển vận TCP. Nĩ chịu trách nhiệm cho việc chứng nhận, mã hĩa và kiểm tra tính tồn vẹn của dữ liệu. Chức năng chứng nhận bảo đảm rằng dự liệu được gửi đến đúng một server cần gửi và server thì bảo đảm. Việc mã hĩa dữ liệu bảo đảm dữ liệu khơng thể bị đọc bởi bất kỳ một người nào khác ngồi server nhận. Giải mã dữ liệu bảm đảm dữ liệu khơng bị sửa đổi hoặc thay thế trong quá trình truyền đi. Khi một client kết nối đến một WWW server sử dụng SSL sẽ xảy ra các tiến trình sau: Client dành lấy chứng nhận server: Client và Server tự giới thiệu về chúng lẫn nhau bằng thơng điệp HELLO và trao đổi thơng tin (chứa các phương thức mã hĩa) để sử dụng, tại phiên trao đổi thơng tin, chứng nhận server (chứa một khố cơng khai ủa server) và dữ liệu ngẫu nhiên sẽ được truyền đi. Client xác minh server: Client xác minh chứng nhận server từ một chứng thực và sau đĩ sử dụng nĩ để gửi một thơng điệp để xác thực server. Nếu server khơng chuyển lại việc xác thực là đúng, client sẽ cảnh báo cho người sử dụng “server is not who it claims to be “ hoặc cĩ thể là một “trojan” server. trang 9
- ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình Client/server xác nhận khĩa chứng thực để sử dụng cho phiên này: Nếu server trả lời lại thành cơng, client và server sẽ tạo ra một khĩa bí mật ngẫu nhiên (chỉ ra như một Master Key trong đặc tả SSL) từ việc trao đổi dữ liệu ngẫu nhiên và phương thức mã hĩa điển hình (chẳng hạn như RSA) Giải mã dữ liệu với một khĩa: Tất cả các dữ liệu gửi ngồi kênh SSL thì được mã hĩa với một khĩa bí mật. 4. Tổ chức Web site: Các Web site phải tự nhập một mình cĩ nghĩa là nĩ tự hỗ trợ chính nĩ. Mỗi Web site cĩ thể di chuyển dến một máy khác để cân bằng việc tải xuống hoặc chỉ là cho mục đích lưu thơng trên mạng. Để làm được việc này, chúng phải tự hỗ trợ mình, tự cĩ các bảo mật riêng và các phạm vi ứng dụng riêng. Nếu người sử dụng là một nhà cung cấp Internet, họ sẽ muốn thiết kế, di chuyển và cĩ người sử dụng cập nhật các Web site mà khơng quấy rầy đến các site khác trên cùng một máy. Giao thức HTTP sử dụng các URL để yêu cầu các file từ Web server. Từ khi hầu hết các file đều chứa trong hệ thống file, IIS cần chuyển một URL sang một tên đầy đủ của file, IIS làm cơng việc này cho mỗi yêu cầu. Tuy nhiên, nĩ sẽ đưa lên người quản trị để cấu hình server mà URL ánh xạ đến thư mục đĩ. Để thiết kế cấu trúc hệ thống file trên một máy mà nĩ host nhiều Web site, người sử dụng cần biết sự khác nhau giữa thư mục gốc (Home Dir), thư mục gốc ảo (Virtual Root) và thư mục con (Sub Dir). Người sử dụng cũng cần biết khi nào thì phải sử dụng chúng. Home Dir: Một URL chứa một tên miền đang yêu cầu thư mục chủ. Ví dụ, URL dưới đây yêu cầu một file mặc định trong thư mục chủ: Cơng việc của người quản trị cần phải làm là giúp đỡ Web server ánh xạ URL đến thư mục chủ. Trong ví dụ trên, thư mục chủ của Web site này sẽ được ánh xạ đến: C:\inetpub\wwwroot Sub Dir: Sub Dir là một thư mục kế thừa một ánh xạ URL từ một cấu trúc hệ thống file. Ví dụ, nếu thư mục này đã tồn tại: C:\intetpub\wwwroot\sale3 Sau đĩ, URL này cũng đã tồn tại: Thư mục con khơng cần được định nghĩa đến Web server bởi người quản trị hệ thống. Bởi vì chỉ cần tạo ra một thư mục cha bằng Explorer là thư mục sẽ được tạo, khơng cần phải điều chỉnh trong cấu hình IIS. Virtual Root: Virtual Root là một thư mục con của một URL mà nĩ được ánh xạ đến các thư mục trong hệ thống file mà khơng thừa kế sự tồn tại của các hệ thống file này. Ví dụ: Nếu người sử dụng muốn site của họ chứa trong một URL đến: C:\inetpub\maketing\website\extenal trang 10
- ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình Thư mục ảo sẽ tạo ra một Web site hiển thị như thể nĩ là một cấu trúc thư mục khác hơn hiện tại nĩ cĩ trong hệ thống file. Khi nào thì cần sử dụng thư mục ảo: Thư mục ảo được sử dụng khi thư mục con khơng được sử dụng. Bởi vì thư mục con khơng giống như một Web server và chúng khơng cĩ tất cả chức năng của một thư mục ảo, chúng cĩ thể được dùng ở mọi nơi. Thêm vào đĩ, thư mụ con cịn tổ chức tất cả các file chứa trong một nơi trung tâm cho các Web site. Các thư mục ảo dược dùng khi tất cả các file trong thư mục ảo khơng thể chứa được trên cùng một ổ đĩa. Ví dụ: Nếu người sử dụng cĩ một Web site mà lớn hơn 2 Gb họ khơng thể chứa tất cả chúng trên cùng một ổ đĩa. Trong trường hợp này họ sẽ cần đến các Web site phân tán trong nhiều thư mục ảo trên các thư mục ở mỗi ổ đĩa. Để làm được người sử dụng phải chia Web site của họ lên nhiều đĩa. Về mặt lý thuyết, các truy cập ngẫu nhiên ngang qua nhiều ổ đĩa sẽ nhanh hơn các truy cập trên cùng một đĩa. Nếu người sử dụng cĩ nhiều Web site và đang chia xẻ thơng tin, các thư mục ảo cĩ thể sử dụng để hồn thành cơng việc này. Ví dụ, nếu phải chia xẻ hình ảnh, cả hai Web site cùng cĩ một thư mục ảo gọi là Graphic mà nĩ ánh xạ tới cùng một vị trí trên ổ đĩa. Điều này sẽ khơng làm được với thư mục con. Sự cập nhật các file trong thư mục Graphic sẽ ảnh hưởng đến cả hai site. 5. Các kiểu của bảng thuộc tính của dịch vụ WWW Cĩ 3 kiểu (hoặc cịn gọi là lớp) khác nhau của bảng thuộc tính: Master, Default và File. Người sử dụng cĩ thể định cấu hình riêng cho từng site của mình một trong 3 kiểu trên. Nhưng mọi sự thay đổi đều cĩ ràng buộc với nhau, nĩ sẽ ảnh hưởng đến các site con và các file. Các loại bảng khác nhau của bảng thuộc tính sẽ cĩ ích về khía cạnh phân cấp. Với bảng thuộc tính Master nằm ở phân cấp cao nhất và bảng thuộc tính File nằm ở cấp thấp nhất. Master: Các bảng thuộc tính Master quyết định các thuộc tính mặc định của các Web site ảo đã tạo với sự thiết lập của IIS, mà các Web site này quyết định các thuộc tính của các file đã được tạo ra trong mỗi Web site. Trong suốt quá trình cài đặt, IIS sẽ nạp các thuộc tính mặc định cho các bảng thuộc tính Master. Mỗi site ảo mà người sử dụng tạo ra sẽ kế thừa việc thiết lập này. Nếu họ thay đổi thiết lập ban đầu của bảng thuộc tính Master, các Web site ảo con sẽ kế thừa các thiết lập mới này nhưng các Web site ảo tạo trước đĩ sẽ giữ nguyên. Default: Quá trình cài đặt sẽ tạo ra các Web site với các thuộc tính mặc định của nĩ. Những các file nào mà được tạo ra với Web site mặc định sẽ kế thừa các thiết lập này. File: Các file tạo ra trong thư mục ảo sẽ kế thừa các thiết lập của thư mục ảo đĩ, ứng với các file được tạo ra trong các trang Web mặc định sẽ kế thừa các bảng thuộc tính của Web site đĩ. Sau khi một file được tạo ra thì các thuộc tính được cấu hình ở mức file. trang 11
- ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình 6. Bảng thuộc tính WWW: Dịch vụ WWW trên IIS cĩ thể cấu hình 9 bảng thuộc tính sau: Web Site: Sử dụng bảng thuộc tính Web Site để thiết lập sự nhận biết Web site, chỉ rõ số kết nối cho phép và cho phép hoặc cấm truy cập vào một Web site. Operators: Sử dụng bảng thuộc tính Operators để điều khiển các tài khoản người dùng nào cĩ quyền quản trị các Web site của người sử dụng. Performance: Sử dụng bảng thuộc tính Performance để điều chỉnh cho thật tốt sự thi hành của các Web site. ISAPI filter: Sử dụng bảng thuộc tính ISAPI filter chứa các bộ lọc ISAPI. Người sử dụng cĩ thể sử dụng ISAPI để chạy các ứng dụng từ xa. Yêu cầu một URL mà nĩ ánh xạ đến một bộ lọc đang hoạt động tại các ứng dụng đĩ. Cĩ thể sử dụng các thơng sơ cài đặt của nĩ để ánh xạ một tên file đến bộ lọc cho phép trên một Web server. Home Direcory: Sử dụng bảng thuộc tính Home Direcory để thay đổi thư mục chứa các Web site và điều chỉnh các thuộc tính của nĩ. Document: Sử dụng bảng thuộc tính Document để chỉ định một tài liệu mặc định và gán các chức năng mặc định cho Web site. Directory Security: Sử dụng bảng thuộc tính Directory Security để cấu hình các tính năng bảo mật cho Web server. HTTP Header: Sử dụng bảng thuộc tính HTTP Header để thiết lập các gia trị trả về của trình duyệt trong phần header của một trang HTML. Custom Error: Sử dụng bảng thuộc tính Custom Error để liệt kê các thơng báo trả về trình duyệt dành cho các lỗi HTTP. 7. Cấu hình WWW - Chia xẻ thư mục, file: Bảng thuộc tính của thư mục WWW trong Internet Service Manager (ISM) cho phép người quản trị chia xẻ các thư mục và file cho WWW client. Những thư mục này là những thư mục cụ bộ từ phân vùng FAT/NTFS hoặc là các thư mục từ những server khác mà IIS cĩ thể truy cập được. WWW chia xẻ kết nối mặc định: Khi mà một client chỉ cung tên server ngay tại địa chỉ URL gọi là thư mục chủ. Ví dụ, nếu một client mở một địa chỉ: dịch vụ IIS trả về một tài liệu mặc định trong thư mục chủ trên www.microsofts server. Các thư mục chia xẻ khác vơi thư mục chủ được tham chiếu đến thư mục ảo. - Sử dụng ISM để chia xẻ thư mục: Cĩ hai hộp thoại hiện ra cùng với ISM khi ta cấu hình việc chia xe thư mục WWW. Thẻ Directory, WWW hiện thị danh sách tất cả các cấu hình thư mục ảo WWW. Nĩ cũng cho phép người sử dụng thiết lập các thuộc tính kềm theo cho tất cả các thư mục chia xẻ. + Tài liệu mặc định: File này được trả về khi người sử dụng mở một thư mục và khơng chỉ định tên file. Điển hình cho file này là các file tên default.htm hoặc index.htm. + Thư mục đang duyệt: Nếu người sử dụng mở một thư mục mà khơng chứa một tài liệu mặc định, server sẽ trả về một danh sách các file trong thư mục. trang 12
- ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình + Bảo mật: IIS cĩ nhiều chức năng bảo mật để giữ gìn server và dữ liệu của người sử dụng khỏi những cuộc xâm nhập bất hợp pháp và hacker. IIS dựa vào sự thiết lập của Windows NT (TM) và một hệ thống chứng nhận C2. Giữ an tồn cho IIS server là một sự kết hợp của việc thiết lập bảo mật cho Windows NT và các chứng năng bảo mật của dịch vụ IIS. Thêm vào đĩ nếu server kết nối với Internet, một bộ chọn kênh (rooter) hoặc bức tường lửa cĩ thể được thiết lập để cung cấp thêm độ an tồn. 8. Thư mục ảo: Thư mục ảo là một thư mục phi vật lý chứa trong thư mục chủ của dịch vụ IIS (WWW hoặc FTP) nhưng nĩ xuất hiện trong suốt đối với người sử dụng vào các Web site này. Thư mục ảo tăng khả năng linh hoạt cho việc người sử dụng quyết định lưu trữ file ở đâu trên server của họ. Bằng cách sử dụng các thư mục ảo để cĩ thể cập nhật và truy cập dễ dàng nhất. Nĩ cũng cho phép tăng thêm dung lượng lưu trữ cho Web site mà khơng cần phải tắt server. Thư mục ảo cĩ thế thiết lập cho cả dịch vụ WWW lẫn FTP chạy trên IIS. Thư mục ảo cĩ thể tạo ra các thư mục định vị ở: - Trên cùng một đĩa: Như là các thư mục chủ WWWroot hoặc FTProot. - Một đĩa ở một máy khác trong mạng cục bộ. - Ở một đĩa của máy khác trên mạng, mà máy này phải cùng tên miền với máy cĩ dịch vụ IIS. a) Thư mục ảo cục bộ: Người sử dụng cĩ thể tạo ra các thư mục ảo cục bộ cho các thư mục được lưu trữ trên bất kỳ đĩa nào trên một máy tính được cài đặt IIS. Khi cấu hình một thư mục ảo cục bộ, người sử dụng phải cài đặt một biệt danh cho thư mục. Biệt danh này cĩ thể là tên thư mục hoặc một tên bất kỳ nào khác mà nĩ nhận diện một Web site đến người sử dụng. Họ cũng phải cung cấp một đường dẫn đầy đủ cho thư mục ảo. b) Thư mục ảo từ xa: Sử dụng thư mục ảo từ xa cho các thư mục đã được cài đặt trên các máy khác với tên miền của máy đã cài đặt IIS. Cũng như đối với các thư mục ảo cục bộ, khi người sử dụng cấu hình một thư mục ảo từ xa, họ được yêu cầu tạo một biệt danh cho thư mục và phải cung cấp một một đia chỉ cho thư mục tuân theo quy ước UNC (quy ước đặt tên địa chỉ tồn cục). Để truy cập thư mục với một UNC, phải nhập vào một tên của người sử dụng và password phù hợp. Tên người sử dụng và password sẽ được sử dụng bởi người truy cập vào dữ liệu chứa trong thư mục ảo. Chú y: Chắc chắn rằng tài khoản của người sử dụng mà đã thiết lập sẽ cho phép truy cập Internet đến một thư mục ảo từ xa mà chỉ cung cấp một quyền tối thiểu cho việc sử dụng site này. Đừng nên dùng tài khoản của nhà quản trị để truy cập các thư mục ảo. c) Thư mục ảo từ xa và FrontPage: Cơng cụ quản lý và soạn thảo FrontPage tự động quản lý việc sử dụng các thư mục ảo. Khi được cài đặt, FrontPage sẽ khởi tạo các thư mục ảo cho các thư trang 13
- ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình mục chứa các phần mở rộng cĩ thể thực thi. Thêm vào đĩ, ban cĩ thể cho phép các phần mở rộng của file chuyển thành các đối tượng cĩ thể thực thi được bằng cách đánh dấu vào các thư mục chứa chúng, chẳng hạn như các đối tượng mở rộng sau: Active Server Pages (.ASP) Các file Internet database connector (.idc) CGI Phần mở rộng ISAPI (.dll) Perl Script (.pl) Chú ý: bởi vì FrontPage khơng hỗ trợ đối với các vùng cĩ nội dung khơng liền nhau vì vậy khơng thể dùng thư mục ảo để trộn các vùng cĩ nội dung khơng liền nhau trong FrontPage. 9. Server ảo: Nhiều tên miền cĩ thể được host lên một máy đơn đang chạy IIS bằng chách sử dụng server ảo. Với nhiều server ảo người sử dụng cĩ thể host nhiều site Web và site FTP lên một máy đơn đang chạy IIS, điều này cĩ nghĩa là khơng cần cấp một máy và một phần mềm trọn gĩi cho mỗi site này. Người sử dụng đơn giản chỉ cần một địa chỉ IP duy nhất cho mỗi tên miền được phân cơng đến server và bằng cách sử dụng Host Header người sử dụng cĩ thể sử dụng một địa chỉ IP cho nhiều tên miền. Tuy nhiên chỉ site WWW mới cĩ thể sử dụng Host Header. Server ảo cũng tập trung hĩa việc áp dụng và đơn giản hĩa việc nâng cấp các phần mềm server. Việc host nhiều server ảo lên cùng một máy cĩ thể giảm bớt sự thi hành của phía server nĩi chung và server ảo sử dụng Host Header địi hỏi một giao thức HTTP phiên bản 1 tương hợp với trình duyệt Web. Host Header: Khả năng của các Host Header của HTTP phiên bản 1 cho phép người sử dụng kết hợp nhiều tên của máy Host với chỉ một địa chỉ IP. IIS sử dụng thơng tin Host Header để đổi địa chỉ các tên khác nhau của server ảo. Để sử dụng Host Header người sử dụng phải chuyển đổi từ Host name thành địa chỉ IP sử dụng cả hệ thống tên miền (DNS) server hoặc các file của các Host. Chức năng của file host là hỗ trợ sự chuyển đổi từ các tên Host thành các địa chỉ IP. Chú ý: IIS cung cấp các trình duyệt Web khơng tương thích với một danh sách các server tương thích với địa chỉ IP cho trước. Khi người sử dụng chọn một server, một cookie mới sẽ được thay thế trên ổ đĩa của người sử dụng và cookie này sẽ được sử dụng cho những lần truy cập sau đến server ảo. 10. IIS FTP Server: FTP là một giao thức được dùng để truyền nhận file giữa hai máy trên mạng Internet. FTP là một giao thức ra đời sớm nhất được sử dụng trên mạng TCP/IP và mạng Internet. Mặc dù WWW đã thay thế hầu hết các chức năng của FTP, FTP vẫn cịn được sử dụng để chép một file từ một client đến một server trên Internet. Khơng như HTTP, FTP sử dụng 2 cổng, một để truyền và một để nhận file. Như vậy FTP vẫn cịn cĩ hiệu lực hơn HTTP cho những tác vụ đặc biệt của việc truyền file. trang 14
- ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình Để sử dụng FTP truyền file giữa hai máy, cả hai máy đều phải cĩ vai trị riêng, một là FTP Client, một là FTP Server. FTP Client ra lệnh cho server tải xuống hoặc đưa lên một file cũng như tạo và thay đổi các thư mục. FTP sử dụng giao thức TCP như một phương tiện cho tất cả các kết nối và dữ liệu trao đổi giữa client và server. TCP là một phương thức kết nối cĩ định hướng, cĩ nghĩa là cĩ một phiên kết nối được thành lập giữa client và server trước khi dữ liệu được truyền đi. Sự kết nối cịn lại này hoạt động trong tồn bộ phiên hoạt động của FTP. Giao thức cĩ định hướng này rất nổi tiếng về độ tin cậy và sự phục hồi lỗi ứng với các đặc điểm sau: - Điều khiển luồng: Bởi vì các client và server đều tham gia trong việc truyền các gĩi tin vì vậy các vấn đề về việc truyền tin như là các gĩi tin làm tràn bộ nhớ và lạc mất các gĩi tin là khơng thể xảy ra. - Sự chứng nhận: Máy tính gửi các gĩi dữ liệu và mong chờ một tín hiệu chứng nhận từ các máy tính nhận. Sự chứng nhận này kiểm tra xem máy đĩ đã nhận được gĩi tin hay chưa. - Sự truyền lại: Nếu việc truyền đi của máy tính khơng nhận được một tín hiệu ACK ứng với một khoảng thời gian đã định trước, nĩ sẽ giả định rằng gĩi tin đĩ đã bị mất hoặc bị thất lạc thì sau đĩ nĩ sẽ truyền lại gĩi tin đĩ. Tính tuần tự: Tất cả các gĩi tin sẽ được đánh số và gửi cùng lúc, vì thế máy nhận sẽ biết cách tổ chức dữ liệu nhận được. - Checksum: Tất cả các gĩi tin được chứa trong một checksum để đảm bảo tính tồn vẹn của dữ liệu. Nếu dữ liệu bị thất lạc ở một nơi nào đĩ trong suốt quá trình truyền, checksum sẽ chỉ ra rằng dữ liệu nhận được khơng giống với dữ liệu gửi. a) Các thuộc tính của FTP trên IIS: Mỗi site FTP mà người sử dụng tạo ra đều cĩ một bảng thuộc tính riêng của nĩ. Những cài đặt chung hoặc các thuộc tính cho mỗi site được hiển thị trong các bảng thuộc tính này. Dịch vụ FTP sử dụng 5 bảng thuộc tính để cấu hình cho các dịch vụ FTP, cụ thể như sau: FTP Site. (Site FTP) Security Account. (Bảo mật tài khoản) Messages. (Thơng báo) Home Directory. (Thư mục gốc) Directory Secuity. (Bảo mật thư mục) Trong suốt quá trình cài đặt, IIS gán các giá trị mặc định cho việc thiết lập trên các bảng thuộc tính khác nhau. Người sử dụng cĩ thể dùng chung các tài liệu trên site FTP của họ mà khơng phải thay đổi các thiết lập mặc định này nhưng cũng dễ dàng trong việc thay đổi các thuộc tính được thiết lập theo ý thích. Mỗi site FTP được tạo ra và mỗi file ứng với mỗi site FTP đều cĩ một thuộc tính riêng mà người sử dụng cĩ thể điều chỉnh để tuỳ biến những cấu hình thiết lập tên từng site một hoặc từng file một. Họ cũng cĩ thể điều chỉnh việc thiết lập các thuộc tính mặc định các site và các file con đã thiết lập tuỳ biến trước đĩ. Cĩ 3 kiểu (hoặc các lớp) của các bảng thuộc tính FTP với IIS và chúng tương tự như 3 lớp của bảng thuộc dùng trên các site WWW. Các lớp thuộc tính FTP gồm: Master, Dedault và File. Người sử dụng cĩ thể tuỳ biến cấu hình của 3 kiểu trang 15
- ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình thuộc tính này của bảng thuộc tính nhưng khi thay đổi cấu hình ở một nơi nào đĩ thì nĩ cũng ảnh hưởng đến các site và các file con mà họ đã tạo. b) Bảo mật FTP Các đặc trưng bảo mật của dịch vụ FTP cũng giống như dịch vụ WWW. Khác nhau cơ bản ở chỗ khơng cĩ giao thức cho việc thiết lập bảo mật dữ liệu của FTP giống như HTTP và SSL - Truy cập phía server: Dịch vụ i cĩ thể được cấu hình trên trang thuộc tính Security Account cho các kết nối đến client và những địa chỉ IP đặc biệt. Đây là một cách tốt để ngăn chặn những người sử dụng khơng mong muốn truy cập vào server. - Truy cập phía người dùng: Dành cho các server với các file chung, các client thường kết nối dưới một tên người dùng ẩn danh. Nếu dịch vụ FTP được cấu hình cho phép điều này trong thuộc tính Security Account, nĩ sẽ ánh xạ tên người dùng ẩn danh đến một cấu hình tài khoản của người sử dụng Windows NT. Tài khoản mặc định tạo ra là IUSR_computername và được sử dụng bởi IIS. Nếu cho phép sử dụng tên người dùng ẩn danh bị tắt. Người sử dụng sẽ được cung cấp một tên người dùng chính xác. Tên người dùng này phải đúng là mơt tài khoản Windows NT ở FTP Server hoặc trong một miền mà FTP Server cung cấp. - Truy cập tài nguyên FTP: Dịch vụ FTP cĩ thể cấu hình trên trang thuộc tính Security Directory để cho phép Client chỉ cĩ thể đọc hoặc ghi lên file trong một thư mục được chia xẻ. - Truy cập File: Nếu các yêu cầu đã qua các kiểm tra bảo mật trước đĩ, dịch vụ FTP sẽ đưa các yêu cầu này đến hê thống file để đạt được tài nguyên. Dịch vụ FTP đĩng vai trị của người sử dụng FTP Client khi tạo ra các yêu cầu. Nếu hệ thống file từ chối truy cập đến tài nguyên, FTP server sẽ trả về khoảng 550 tên file “Access Denied” (từ chối truy cập). Các truy cập file được cấu hình bằng cách sử dụng File Manager hoặc các thuộc tính file trong Explorer. V. APACHE WEB SERVER: 1. Giới thiệu về Apache Web Server: Apache là một phần mềm Web server được cung cấp bởi tập đồn Apache Group. Đây là một Web server được hỗ trợ để chạy chủ yếu trên UNIX va LINUX và rất được phổ biến bởi tính chặt chẽ, uyển chuyển và linh hoạt. Hiện nay Apache là một Web server đang quản lý hơn 50% số Web site đang cĩ trên thế giới. 2. Tổ chức Web site: Trước khi bắt đầu xây dựng một Web site, người sử dụng cĩ thể muốn tìm hiểu tổ chức của nĩ. Khi cĩ nhiều hơn các khả năng suy nghĩ về các cách tổ chức cấu trúc một Web site, người sử dụng cĩ thể suy nghĩ về nĩ như một viễn cảnh đi lại. Trong những suy nghĩ thêm của nĩ về khía cạnh này, sẽ nảy sinh ra những câu hỏi: Người sử dụng cĩ thể làm gì để dễ dàng giữ gìn Web site của mình? Các quy ước nào sẽ làm đơn giản Web site của họ? 3. Cài đặt Apache trên Windows: Chạy file Apache.msi đã tải Apache về, người sử dụng sẽ phải nhập các thơng tin sau: trang 16
- ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình - Cĩ hay khơng việc chạy Apache cho tất cả mọi người sử dụng (như một dịch vụ) hoặc cài đặt Apache để chạy trên một cửa sổ giao tiếp khi chọn shortcut khởi động Apache. - Tên Server, tên miền và tài khoản email của người quản trị. - Tên thư mục để cài Apache vào (mặc định là C:\Program Files\Apache Group\Apache mặc dù người sử dụng cĩ thể thay đổi sang một thư mục bất kỳ mà họ muốn) - Kiểu cài đặt. Chức năng “Complete” sẽ cài đặt mọi thứ, bao gồm cả mã nguồn nếu người sử dụng đã tải về gĩi –srm.msi. Chọn cài đặt “Custom” nếu khơng muốn chọn cài đặt tài liệu hoặc mã nguồn từ gĩi cài đặt này. Trong suốt quá trình cài đặt Apache sẽ cấu hình các file trong thư mục conf cho thư mục lựa chọn cài đặt của người sử dụng, tuy nhiên nếu bất kỳ những file nào trong thư mục này đã tồn tại chúng sẽ khơng bị chép chồng lên. Sau khi cài đặt xong, người sử dụng sẽ phải sửa đổi các file cấu hình trong thư mục conf. Những file này sẽ được cấu hình trong suốt quá trình cài đặt để sẵn sàng cho Apache chạy từ thư mục mà họ đã cài đặt vào với các tài liệu phục vụ từ thư mục con htdocs. Cĩ rất nhiều chức năng trước khi bắt đầu thực sự sử dụng Apache. Tuy nhiên, để việc khởi động nhanh chĩng các file này nên làm việc theo các cài đặt mặc định. Nếu người sử dụng tháo cài đặt Apache khỏi hệ thống, các cấu hình và các file log sẽ khơng được gỡ ra. Người sử dụng phải sẽ cần phải xĩa các cây thư mục đã cài đặt (mặc định là C:\Program File\Apache Group\Apache) nếu người sử dụng khơng muốn giữ các cấu hình của họ và các file Web khác. Từ khi fie httpd.conf đã được cấu hình để sử dụng Apache, người sử dụng cũng phải phải gỡ bỏ nĩ và các file khác mà đã được tạo cũng như bất kỳ các file log nào mà Apache đã tạo. 4. Chạy Apache trên Windows: a) Chạy như một dịch vụ: Đây là các tốt nhất nếu muốn Apache tự động khởi động khi khởi động máy và giữ Apache vẫn chạy khi đã log-off. Để khởi động Apache như một dịch vụ, trước hết cần phải cài đặt Apache như một dịch vụ. Nhiều dịch vụ Apache cĩ thể được cài đặt với mỗi tên và cấu hình khác nhau. Để cài đặt một dịch vụ Apache mặc định cĩ tên “Apache”. Chọn “Install a Sevice for All User” khi bắt đầu bung gĩi cài đặt Apache. Sau khi cài xong cĩ thể khởi động dịch vụ Apache bằng cách mở cửa sổ Service, chọn Apache, nhắp chuột vào Start, Apache sẽ bắt đầu chạy, ẩn trên màn hình. Sau đĩ cĩ thể ngừng Apache bằng cách nhắp chuột vào Stop. Cĩ một lựa chọn khác để sử dụng dịch vụ Apache từ các dịng lệnh sau tại cửa sổ giao tiếp: Net start Apache Net Stop Apache Sau khi khởi động Apache, người sử dụng cĩ thể kiểm tra nĩ bằng cách sử dụng thủ tục như sau để chạy trên cửa sổ giao tiếp: Apache –n “service name” Để chắc chắn việc đang sử dụng các dịch vụ được cấu hình mặc định của Apache. Cĩ nhiều dịch vụ khác của Apache được cài đặt và chạy như một dịch vụ. Các dịng lệnh sau sẽ khởi động, khởi động lại, Tắt và Ngừng các dịch vụ: - Apache –n “service name” –k start. trang 17
- ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình - Apache –n “service name” –k restart. - Apache –n “service name” –k shutdown. - Apache –n “service name” –k stop. Ký hiệu chuyển đảo –n để chỉ các dịch vụ Apache mặc định, cịn khi khơng cĩ –n mà chỉ cĩ –k dịng lệnh sẽ chỉ định rằng Apache đang chạy trên một cửa sổ giao tiếp, trường hợp này chỉ yêu cầu đối với các tên dịch vụ của Apache cĩ chứa khoảng trắng. Ngồi ra để Stop Apache trên cửa sổ giao tiếp cịn cĩ thể ấn tổ hợp phím Ctrl + C hoặc Ctrl + Break. b) Chạy Apache trên cửa sổ giao tiếp: Một khi đĩng cửa sổ giao tiếp sẽ kết thúc việc chạy Apache. Tại biểu tượng Start menu và trình Windows NT Service Manager cĩ thể cung cấp một giao diện đơn giản để quản trị Apache. Nhưng dễ dàng nhất để làm việc là từ dịng lệnh. Khi làm việc với Apache điều quan trọng nhất là việc tìm các file cấu hình. Người sử dụng cĩ thể chỉ ra file cấu hình bằng hai cách (dùng các dịng lệnh): * -f chỉ đến đường dẫn một file cấu hình: apache –f c:\myserver\conf\my.conf apache –f test\test.conf * -n đường dẫn đến một file cấu hình của một dịch vụ Apache đã được cài đặt. apache –n “service name” Trong các trường hợp trên, Server Root phải được thiết lập trong file cấu hình. Nếu người sử dụng chỉ ra một tên file cấu hình với –n và –f. Apache sẽ sử dụng tên file được biên dịch ở trong server, thường là “conf/httpd.conf”. Gọi đến Apache với ký hiệu chuyển đảo –v sẽ hiển thị các giá trị đã đánh nhãn SERVER- CONFIG-FILE. Apache sẽ quyết định ServerRoot của nĩ bằng các cách sau: - Một chỉ thị SeverRoot qua ký hiệu chuyển đảo –c. - Ký hiệu chuyển đảo –d trên dịng lệnh. - Thư mục đang làm việc hiện thời. - Một khĩa registry được tạo nếu người sử dụng cài đặt nhị phân. - SeverRoot được biên dịch bên trong server. SeverRoot được biên dịch bên trong server thường là “/apache”. Nếu gọi đến Apache với ký hiệu chuyển đảo –v sẽ hiển thị các giá trị được đánh nhãn giống như là của “HTTPD Root”. Khi gọi đến Apache từ trình đơn Start. Apache thường bỏ qua các thơng số vì thế sử dụng khố registry là một kỹ thuật vẫn được ưa thích hơn cho Apache. Trong quá trình cài đặt, một khĩa registry sẽ được tạo, ví dụ: HKEY_Local_machine\Sofware\ApacheGroup\Apache\1.3.13\ServerRoot Khĩa này được biên dịch vào trong server và cĩ thể cho phép kiểm tra các phiên bản mới mà khơng tác động đến phiên bản hiện thời. Dĩ nhiên, phải chắc rằng khơng cài đè phiên bản mới lên phiên bản cũ trong hệ thống file. Giá trị của khĩa này là thư mục “ServerRoot” chứa trong thư mục Conf. Khi Apache khởi động, nĩ sẽ đọc file httpd.conf từ thư mục này. Nếu thư mục này chứa chỉ thị ServerRoot mà nĩ khác với thư mục đang tồn tại trong khĩa registry, Apache trang 18
- ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình sẽ quên khĩa registry và sử dụng thư mục được thiết lập trong file cấu hình. Nếu người sử dụng chép một thư mục Apache hay các file cấu hình đến một nơi khác, nĩ sẽ vẫn cịn cho đến khi cập nhật lại thư mục ServerRoot trong file httpd.conf đến một nơi khác. Để chạy Apache từ dịng lệnh như một ứng dụng giao tiếp, sử dụng dịng lệnh: apache Apache sẽ được bắt đầu và sẽ vẫn chạy cho đến khi người sử dụng nhấn tổ hợp phím Ctrl – C. Để kiểm tra việc thiết lập các thơng số cho file cấu hình dùng lệnh: apache –t Lệnh này được sử dụng để thay đổi các file cấu hình khi Apache vẫn cịn đang chạy. Người sử dụng cĩ thể tạo ra các thay đổi, xác nhận việc thay đổi là tốt bằng lệnh “apache –t”, sau đĩ khởi động lại Apache với “apache –k restart”. Apache sẽ đọc lại các file cấu hình cho phép thực hiện bất kỳ một tiến trình nào để hồn thành mà khơng xảy ra gián đoạn. Bất kỳ một yêu cầu nào cũng sẽ được phục vụ với việc sử dụng cấu hình mới. 5. Kiểm tra Apache trên Windows: Chạy Command Prompt danh sách Program của trình đơn Start. Chọn thư mục đã cài đặt Apache vào và gõ lệnh apache và đọc các thơng báo lỗi (nếu cĩ). Sau đĩ xem lại file error.log cho các cấu hình bị thiết lập sai. Nếu người sử dụng chấp nhận mặc định khi cài đặt Apache, các dịng lệnh sẽ là: c: cd "\program files\apache group\apache" apache Wait for Apache to exit, or press Ctrl+C more <logs\error.log Sau khi xem file error.log người sử dụng sẽ thấy một vài vấn đề bị lỗi và họ cĩ thể sửa chữa và khởi động lại một lần nữa. Sau khi khởi động, Apache sẽ chạy (như ở cửa sổ giao tiếp hoặc như một dịch vụ) và sẽ bắt đầu lắng nghe ở cổng 80, trừ phi người sử dụng thay đổi Port, Listen hoặc BindAddress (trong file cấu hình). Hãy thực hiện kết nối đến server và truy cập trang Web mặc định bằng cách mở trình duyệt và nhập vào URL sau: Trình duyệt sẽ trả lại một trang Welcome và một liên kết đến sổ hướng dẫn Apache như sau: trang 19
- ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình Nếu khơng người sử dụng sẽ nhận được một thơng báo lỗi, cĩ thể xem lại file error.log trong thư mục log. Nếu máy tính khơng nối mạng, họ cĩ thể sử dụng URL sau đây: Một khi các cài đặt cơ sở đang làm việc, người sử dụng phải cấu hình các thuộc tính của nĩ bằng cách sửa đổi nội dung các file trong thư mục conf. 6. Virtual Host: Vitual Host là một sức mạnh thật sự của Apache. Virtual Host cho phép Apache Web Server chạy cùng lúc nhiều Web site. Apache là một HHTP server đầu tiên cung cấp các hỗ trợ cho việc xây dựng một virtual site. Trong khi các server của NCSA và các server khác cũng cung cấp sự hỗ trợ virtual site nhưng Apache cung cấp một khả năng thi hành tốt hơn và cĩ nhiều điểm đặc trưng hơn các server khác. Chỉ mới nhìn qua, dường như sự thuận lợi chính của virtual site là chỉ để tơ điểm, nĩ cho phép nhiều Web site được đánh địa chỉ tên miền của nĩ trên các máy đơn đã được chia xẻ. Tuy nhiên sự thuận lợi của nĩ nhiều kết quả rõ ràng nằm trong cách quản trị Web site và cách những máy khác sử dụng nĩ. Một Virtual host thường được tạo ra nhằm mục đích như sau: - Khách hàng cĩ thể dễ dàng truy cập các Web site của mình trên các server cho thuê. Từ khi người thuê server cĩ thể sử dụng tên miền của chính mình, các địa chỉ cĩ khuynh hướng ngắn đi. Điều này đã giúp đỡ việc đưa ra tính chuyên nghiệp đồng nhất trên thế giới. Những người sử dụng thích nhớ những địa chỉ ngắn hơn từ khi tên miền cĩ một vài sự thích hợp với tên của các tập đồn cơng ty. - Rút gọn tối đa các máy tính và phần cứng mạng, nhiều site tốc độ chậm cĩ thể nằm ở tại một máy đơn, điều này làm giảm bớt giá thành của việc đưa một site lên mạng. - Giảm bớt giá thành về con người kết hợp với các hệ thống quản trị. Thay cho việc quản lý và cấu hình một server chuyên dụng cho các tên miền. Một Web server chỉ cần duy trì vài file cấu hình và một số các box. Điều này sẽ dẫn đến việc giảm một số hệ thống cần để duy tu nĩ, như vậy việc duy trì một mảng sẽ đơn giản hơn và ít tốn kém hơn. trang 20
- ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình Bởi vì hầu hết các Web site khi tạo ra đều khơng đủ đường truyền lưu thơng để sử dụng hết các tài nguyên trên một máy đơn, điều đĩ là sự khát khao từ một người quản trị cá nhân cho phép một server đơn giản trên mạng và chạy như nhiều máy khác nhau thay vì dành cho phần cứng và tiền bạc để mỗi site được đưa lên, một vài server cấu hình các lệnh để đưa ra các kết quả như nhau: một virtual site. Bởi vì phí tổn để cài đặt một server cĩ thể chia xẻ cho nhiều site, thời gian để cấu hình và quản lý Web site được giảm đi rất nhiều. Virtual host đã đem lại một khía cạnh chắc chắn của việc tạo ra một trang Web di động. Khi một site là ảo, nĩ dễ dàng di chuyển đến một Web server khác trong cùng một mạng hoặc ở một nơi nào khác. Đây chính là vấn đề của việc chuyển chỗ các trang HTML của các site đến một máy mới và điều chỉnh các thơng tin DNS (Domain Name Server) của site đưa lên một server mới. Để việc thích nghi với DNS được cập nhật, đơn giản chỉ cần tạo ra sự đổi hướng trên server cũ . Điều này cho phép sự lưu thơng được trơi chảy mà khơng cĩ sự sai sĩt, đĩ là một vấn đề quan trọng với các site đang lớn mạnh đang được lưu thơng để tạo ra kinh doanh. Về mặt lịch sử, khi người sử dụng muốn một site đang host sử dụng tên miền của họ, sự lựa chọn cĩ thể được là mua hoặc thuê một máy tính và dùng nĩ để cấu hình như một Web server. Phải chịu các phí tổn để tiêu tốn cho việc quản lý server này. Các phí tổn này dễ thường là rất lớn, việc này đã thúc đẩy các nhà cung cấp dịch vụ Internet (ISP) thêm vào các cách để hỗ trợ nhiều Web site trên một host, điều này dẫn đến một vài giải pháp gần đây, chẳng hạn như Home Page Approach. Home Page Approach tạo ra một địa chỉ giống như: Home Page Approach là một cách thích hợp để phục vụ các trang người dùng cục bộ. Nhưng khi dùng nĩ để phục vụ cung cấp thơng tin lớn và đang được truy cập thường xuyên bởi một số lớn người sử dụng thì việc này sẽ tạo ra một địa chỉ tồi mà rất khĩ nhớ, tên nhạp vào dài, dễ xảy ra sai sĩt phía người sử dụng và trơng khơng được chuyên nghiệp lắm. Xây dựng một virtual host: Các phạm vi liên quan của virtual host, virtual site và multihomed server thơng thường được sử dụng thay thế cho nhau. Để dễ hiễu hơn, chỉ cần suy nghĩ chúng như sau: Để tạo một virtual site, thì cần phải cấu hình một virtual host, để virtual host làm việc cần phải tạo một mutihomed server, như vậy rõ ràng là cĩ sự khác nhau giữa chúng. Một máy tính multihomed là mơt máy tính cĩ thể trả lời cùng một lúc đến nhiều địa chỉ IP. Một máy tính mày cĩ thể được truy cập bởi nhiều tên (chẳng hạn như www.mailhost.foo.com và www.foo.com) mà nĩ thi hành cho các địa chỉ IP như nhau khơng thể là một máy tính Multihomed. Việc đặt bí danh, một khả năng cung cấp bởi DNS trong một bảng ghi tài nguyên CNAME , hoặc liệt kê các tên máy tính trên etc/host/file đằng sau các địa chỉ IP thì chỉ tiện lợi cho người sử dụng đang truy cập vào một tài nguyên trên mạng. Thơng thường người ta mất nhiều thời gian để nhớ tên, và một vài tên chẳng hạn như WWW hoặc FTP thì là tiêu chuẩn đặc trưng cho các máy tính mà nĩ đưa lên mạng các dịch vụ với tên tương tự. Người sử dụng chỉ cần nhớ tên miền nơi các tài trang 21
- ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình nguyên nơi các tài nguyên đĩ sử dụng tên truyền thống (chẳng hạn www.aple.com, www.mailhost.com hoặc ftp.aple.com ) Một máy Multihomed cần nhiều hơn thế, nĩ phải trả lời cho cùng lúc hai hoặc nhiều địa chỉ IP chẳng hạn địa chỉ IP 1.2.3.4 là địa chỉ được ấn định bởi mạng làm việc Internet của người sử dụng cung cấp khi họ sign up với chúng. 7 .Virtual site: Virtual site là một Web site mà nĩ cùng nằm trên một server với các Web site khác. Mỗi Web site thì được truy cập bằng tên của chúng và chia xẻ tất cả tài nguyên phần cứng với các virtual site khác. Mặc dù tất các yêu cầu đều được trả lời bằng các xử lý như nhau trên HTTP server, nhưng các trang chủ khác nhau được trả về cho mỗi site phụ thuộc vào tên hoặc địa chỉ IP sử dụng khi truy cập các thơng tin. Một vấn đề về mạng khác là việc phải đánh địa chỉ trước khi cĩ thể multihome là DNS. DNS cung cấp một tên máy đến dịch vụ chuyển sang IP. Khi tên máy được đánh số, con người thích sử dụng tên máy hơn. DNS chuyển các tên sang số và các số sang tên. Sự thay đổi này cĩ ý nghĩa là nếu người sử dụng kết nối với Internet, và đang chạy với một tên server . Nếu khơng thì ngược lại khơng một ai khác chạy nĩ. Nếu người sử dụng khơng phải đang chạy với DNS của chính mình, họ sẽ cần phải ngang hàng với quyền quản trị mạng của chính mình để thi hành bất kỳ sự thêm vào hoặc thay đổi DNS. 8. Cấu hình Apache trên Windows: a) Các file cấu hình của Apache server: Web server sẽ đọc 3 file chứa các chỉ thị cấu hình. Bất kỳ một chỉ nào nào được hiển thị trong các file này đều sẽ được thực hiện. Conf/httpd.conf: Chứa các chỉ thị mà nĩ điều khiển sự thi hành của server. Tên file cĩ thể được lướt qua với ký hiệu khả chuyển –f. Conf/srm.conf: Chứa các chỉ thị mà nĩ điều khiển sự chỉ định các tài liệu mà server cung cấp cho các client. Tên file cĩ thể được lướt qua với chỉ thị ResourceConfig. Conf/access.conf: Chứa các chỉ thị mà nĩ điều khiển sự truy cập các tài liệu. Tên file cĩ thể được bỏ qua với chỉ thị AccessConfig. b) Thiết lập cấu hình Apache trên Windows: Apache được cấu hình bởi các file trong thư mục conf. Các file này cũng giống như các file được sử dụng để cấu hình cho Unix nhưng cĩ một vài chỉ thị khác cho Apache trên Windows. Quá trình cấu hình sẽ được bắt đầu bằng cách tham khảo httpd.conf và các chỉ thị của nĩ. Mặc dù các file access.conf và srm.conf cịn tồn tại song chúng là những file cũ mà khơng được sử dụng nhiều bởi hầu hết các nhà quản trị và người sử dụng sẽ khơng tìm thấy bất kỳ chỉ thị nào ở đĩ. Httpd.conf chứa rất nhiều các tư liệu của chính nĩ, được sinh ra bởi các chỉ thị cấu hình mặc định gửi gắm khi khởi động với Apache server. Bắt đầu bằng cách đọc các lời chú thích để hiểu file cấu hình và làm một số thay đổi nhỏ, khởi động lại Apache trong một cửa sổ giao tiếp với mỗi thay đổi. Nếu người sử dụng tạo ra một lỗi, nĩ sẽ dễ dàng sao lưu để định dạng lần làm việc cuối cùng . trang 22
- ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình Các khác nhau của Apache trên Windows chính là: + Bởi vì Apache trên Windows thì đang luồng, nĩ khơng sử dụng các tiến trình riêng biệt cho mỗi yêu cầu như là của Unix. Thay cho việc thường chỉ cĩ 2 tiến trình đang chạy: Một tiến trình cha và một tiến trình con để xử lý các yêu cầu. Với tiến trình con mỗi yêu cầu được xử lý bởi một luồng riêng.Vì thế tiến trình quản lý các chỉ thị là khác nhau: + Các chỉ thị mà chấp nhận các tên file như các đối số phải sử dụng các tên file kiểu Windows thay cho các tên file Unix. Tuy nhiên, bởi vì Apache server sử dụng các tên file kiểu Unix bên trong, phải tiến hành cắt bớt, khơng cắt phần sau. Các ký tự điều khiển cĩ thể được sử dụng, nếu bỏ qua, ký tự điều khiển với Apache khả thi sẽ đảm nhận. + Apache trên Windows cĩ khả năng nạp các mơ đun ngay khi chay mà khơng biên dịch lại server. Nếu Apache biên dịch bình thường, nĩ sẽ cài đặt một số mơ đun tuỳ chọn trong thư mục /module, để kích hoạt chúng hoặc các mơ đun khác sử dụng lệnh sau đây: LoadModule status_module modules/mod_status.so + Apache cũng cĩ thể nạp các phần mở rộng ISAPI (các dịch vụ ứng dụng Internet) chẳng hạn các ứng dụng được sử dụng bởi Microsoft IIS và các server Windows khác. (Chú ý: Apache khơng nạp các bộ lọc ISAPI). + Khi đang chạy CGI script, các phương thức Apache tìm kiếm các giải thích cho script được cấu hình đang sử dụng chỉ thị ScriptInterpreterSource. 9. Apache và các dịch vụ hỗ trợ: a) HTTPD: Tên dịng lệnh: httpd [ -X ] [ -R libexecdir ] [ -d serverroot ] [ -f config] [ -C directive ] [ -c directive ] [ -D parameter ] Mơ tả: là một chương trình HTTP server . Nĩ được thiết kế để chạy như một tiến trình deamon một mình. Khi dùng đến dịch vụ này, nĩ sẽ tạo ra một nhĩm các tiến trình con để đáp ứng các yêu cầu. Để ngừng dịch vụ này, nĩ sẽ gửi một tín hiệu TERM đến tiến trình cha. PIG của tiến trình này sẽ ghi lên một file và dưa vào file cấu hình. HTTPD sẽ được gọi bởi Internet deamon inetd mỗi khi cĩ một kết nối đến dịch vụ HTTP đã được thiết lập. Các đối số cụ thể của dịng lệnh -R libexecdir: Tham số này chỉ cĩ hiệu lực nếu Apache được cài đặt với tập SHARED_CORE cho phép, nĩ tác động đến nhân nhị phân của Apache để thay thế vào trong một file đối tượng chia xẻ động (DSO). File này được dị tìm trên một đường dẫn hardcoded bên dưới ServerRoot mặc định -d serverroot: Thiết lập giá trị ban đầu của chỉ thị ServerRoot đến serverroot. Chức năng này cĩ thể bị bỏ qua bởi dịng lệnh ServerRoot trong file cấu hình. Mặc định server root là usr/local/apache. -f : Thực thi các lệnh trong file config khi Startup. Nếu file config khơng bắt đầu với a/, lúc đĩ nĩ sẽ lấy một một đường dẫn cĩ liên quan đến ServerRoot. Mặc định của nĩ là conf/httpd.conf. -C directive: Thực hiện cấu hình các chỉ thị trước khi đọc file config. -c directive: Thực hiện cấu hình các chỉ thị sau khi đọc file config. trang 23
- ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình -D parameter: Thiết lập một thơng số cấu hình mà nĩ cĩ thể sử dụng với cặp thẻ trong các file cấu hình để bỏ qua cĩ điều kiện hoặc thực hiện các lệnh. b) APACHECTD: Là một đầu vào các HTTP server. Nĩ được thiết kế để giúp người quản trị điều khiển các chức năng của Apache HTTPD deamon. Tên dịng lệnh: apachectl command [ ] Với các lệnh: Start: Khởi động Apache deamon. Đưa ra một thơng báo lỗi nếu chương trình đang chạy lúc đĩ. Stop: Ngừng dịch vụ Apache deamon. Restart: Khởi động lại Apache deamon bằng cách gửi cho nĩ một SIGHUP. Lệnh này tự động kiểm tra các file cấu hình qua văn bản cấu hình trước khi bắt đầu khởi động lại để chắc chắn rằng Apache vẫn cịn đang hiện diện trong máy. Fullstatus: Hiển thị đầy đủ các báo cáo trạng thái từ mod_status. Để lệnh này được thi hành, cần phải cho phép mod_status trên server và một trình duyệt text_based chẳng hạn như Lynx cĩ sẵn trong hệ thống. URL sử dụng nĩ để truy cập bản báo cáo trạng thái cĩ thể được thiết lập bằng giá trị STATUSURL cĩ sẵn trong script. Status: Hiển thị ngắn gọn bảng trạng thái giống như chức năng fullstatus trừ phi danh sách các yêu cầu phục vụ thời bị bỏ quên. Configtest: Chạy một đoạn văn bản các cụ pháp của file cấu hình. Nĩ phân tích các file cấu hình và các bảng Syntax Ok hoặc thơng tin chi tiết về các lỗi cú pháp đặt biệt. Help: Hiển thị các thơng báo lỗi được sắp xếp. c) APXS Tên dịng lệnh: apxs -g [ -S variable=value ] -n name apxs -q [ -S variable=value ] query apxs -i [ -S variable=value ] [ -n name ] [ -a ] [ -A ] dsofile apxs -e [ -S variable=value ] [ -n name ] [ -a ] [ -A ] dsofile Mơ tả: Là một cơng cụ để xây dựng và các đặt các mơ đun mở rộng cho Apache HTTP server. Được thực hiện bằng cách cài đặt một DSO từ một hay nhiều nguồn hoặc đối tượng file mà sau đĩ nĩ cĩ thể nạp vào Apache trong thời gian chương trình đang chạy qua chỉ thị LoadModule từ mod_so. Để sử dụng kỹ thuật mở rộng này, máy tính của người sử dụng phải hỗ trợ DSO và Apache HTTPD nhị phân phải được xây dựng với mơ đun mod_so. Cơng cụ apxs sẽ tự động nhắc nhở nếu là các trường hợp ngược lại. Ta cần phải kiểm tra việc này bằng dịng lệnh: $ httpd -l mơ đun mod_so phải cĩ trong danh sách được hiển thị. Nếu các yêu cầu này được thỏa mãn, thì cĩ thể dễ dàng mở rộng các chức năng của Apache server bằng cách cài đặt các mơ đun của mình với kỹ thuật DSO bằng cơng cụ apxs này. trang 24
- ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình Ví du: $ apxs -i -a -c mod_foo.c gcc -fpic -DSHARED_MODULE -I/path/to/apache/include -c mod_foo.c ld -Bshareable -o mod_foo.so mod_foo.o cp mod_foo.so /path/to/apache/libexec/mod_foo.so chmod 755 /path/to/apache/libexec/mod_foo.so [activating module `foo' in /path/to/apache/etc/httpd.conf] $ apachectl restart /path/to/apache/sbin/apachectl restart: httpd not running, trying to start [Tue Mar 31 11:27:55 1998] [debug] mod_so.c(303): loaded module foo_module /path/to/apache/sbin/apachectl restart: httpd started Các đối số File cĩ thể là bất kỳ một file nguồn c (.c), file đối tượng (.o) hoặc ngay cả một thư việc lưu trữ (.a). Cơng cụ apxs tự động cơng nhận các phần mở rộng này và tử động sử dụng các file nguồn C cho việc biên dịch trong khi nĩ chỉ sử dụng các file đối tượng và lưu trữ cho giai đoạn liên kết. Nhưng khi sử dụng nhiều đối tượng trước biên dịch , phải chắc chắn rằng chứng được liên kết cho PIC để cĩ thể sử dụng chúng cho một DSO. Cho ví dụ với GCC, người sử dụng luơn chỉ phải sử dụng –fpic. Đối với các các biên dịch C khác yêu cầu phải tham khảo tài liệu hướng dẫn của nĩ hoặc chờ đợi các cờ apxs, để biên dịch các file đối tượng. Các đối số cụ thể của dịng lệnh: - n name: Thiết lập tên mơ đun cho chức năng –i (cài đặt) và –g (tạo khuơn mẫu). Sử dụng nĩ để chỉ ra tên mơ đun. Chức năng –g là bắt buộc, chức năng –I thì cĩ tác dụng khiến cơng cụ apxs cố gắng xác định tên từ nguồn hoặc ít nhất cũng đốn được từ tên file. -q : Thực hiện ruy vấn cho apxs về các cài đặt nào đĩ. Tham số truy vấn cĩ thể là một hoặc nhiều các giá trị: CC TARGET CFLAGS SBINDIR CFLAGS_SHLIB INCLUDEDIR LD_SHLIB LIBEXECDIR LDFLAGS_SHLIB SYSCONFDIR LIBS_SHLIB PREFIX Sử dụng các chức năng này để hướng dẫn xác định các thơng số cài đặt: INC = I ‘apxs –q INCLUDEDIR’ bên trong các Makefile nếu cần hướng dẫn các truy cập đến các file tiêu đề của Apache. -S variable = value: Chức năng này thay đổi các cài đặt apx đi kèm với các giá trị đặc biệt theo sau như: Chức năng tạo ra một khuơn mẫu: -q: chức năng tạo ra một thư mục con và 2 file trong đĩ: Một file nguồn ví dụ mơ đun tên là mod_name.c mà nĩ cĩ thể sử dụng như một khuơn mẫu cho việc tạo các mơ đun của chính người sử dụng hoặc như một quá trình khởi động nhanh cho việc chạy các kỹ thuật apxs. Và một mẫu thư Makefile với mục đích là dễ tạo và cài đặt các mơ đun này. Chức năng biên dịch DSO: trang 25
- ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình -c : Chức năng này chỉ ra thao tác biên dịch. Đầu tiên nĩ biên dịch các file nguồn C (.c) của files vào trong các file đối tượng tương ứng (.o) và sau đĩ cài đặt một DSO vào trong dsofile bằng cách liên kết các file đối tượng này cùng với các file đối tượng cịn lại (.o và .a) của files. -o dsofile: Chỉ ra tên file của file DSO đã tạo. Nếu khơng cĩ sự chỉ định và tên file khơng thể đốn được từ bảng liệt kê các file, tên dự phịng mod_unknow.so được sử dụng. Chức năng cài đặt và định dạng DSO: -i : Chức năng này để chỉ thao tác cài đặt và cài đặt một hoặc nhiều hơn các DSO vào trong thư mục libexec của server. -a : Chức năng này để chỉ thao tác kích hoạt đến mơ đun bằng cách tự động thêm vào một dịng LoadModule đến file cấu hình httpd.conf của Apache hoặc cho phép nĩ thực thi nếu đã tồn tại. -A :Chức năng này cũng giống như –a nhưng nĩ tạo một chỉ thị LoadModule được đặt thêm vào một dấu (#), cĩ nghĩa là mơ đun chỉ cho phép cho các thi hành ngay sau đĩ cịn lúc đầu thì bị cấm. -e : Chức năng này dành cho thao tác hiệu chỉnh, cĩ thể sử dụng kèm với chức năng –a và –A, cũng giống như chức năng –I: Thao tác hiệu chỉnh file cấu hình httpd.conf của Apache mà khơng cố găng cài đặt các mơ đun. Ví dụ: Giả sử người sử dụng đã cĩ sẵn một mơ đun Apache tên là mod_foo.c mà nĩ sẽ mở rộng chức năng server của Apache. Để làm việc đĩ, trước hết cần phải biên dịch một nguồn C vào trong một DSO phù hợp cho việc nạp vào trong Apache server. Cĩ thể sử dụng lệnh sau: $ apxs -c mod_foo.c gcc -fpic -DSHARED_MODULE -I/path/to/apache/include -c mod_foo.c ld -Bshareable -o mod_foo.so mod_foo.o $ _ Sau đĩ tiến hành cập nhật cấu hình Apache bằng cách chắc chắn rằng một chỉ thị LoadModule được đưa ra để nạp DSO này. Để đơn giản bước này, apxs cung cấp một cách tự động cách cài đặt DSO vào trong thư mục libexec và cập nhật file httpd.conf. Bằng cách sử dụng các lệnh: $ apxs -i -a mod_foo.c cp mod_foo.so /path/to/apache/libexec/mod_foo.so chmod 755 /path/to/apache/libexec/mod_foo.so [activating module `foo' in /path/to/apache/etc/httpd.conf] $ _ Cách này là một dịng lệnh cĩ tên: LoadModule foo_module libexec/mod_foo.so được thêm vào để cấu hình file nếu vẫn chưa được đưa ra. Nếu muốn cấm thao tác này sử dụng thêm vào chức năng –A. $ apxs -i -A mod_foo.c trang 26
- ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình Để kiểm tra nhanh apxs, người sử dụng tạo ra một mẫu ví dụ mơ đun Apache cùng với một thư từ Makefile bằng cách: $ apxs -g -n foo Creating [DIR] foo Creating [FILE] foo/Makefile Creating [FILE] foo/mod_foo.c $ _ Sau đĩ cĩ thể biên dịch ngay mơ đun ví dụ này vào một DSO và nạp nĩ lên Apache server: $ cd foo $ make all reload apxs -c mod_foo.c gcc -fpic -DSHARED_MODULE -I/path/to/apache/include -c mod_foo.c ld -Bshareable -o mod_foo.so mod_foo.o apxs -i -a -n "foo" mod_foo.so cp mod_foo.so /path/to/apache/libexec/mod_foo.so chmod 755 /path/to/apache/libexec/mod_foo.so [activating module `foo' in /path/to/apache/etc/httpd.conf] apachectl restart /path/to/apache/sbin/apachectl restart: httpd khơng chạy,cố gắng khởi động [Tue Mar 31 11:27:55 1998] [debug] mod_so.c(303): nạp foo_module /path/to/apache/sbin/apachectl restart: httpd khởi động $ _ Người sử dụng cĩ thể sử dụng apxs để biên dịch các mơ đun phức tạp bên ngồi cây nguồn Apache, cũng như PHP bởi vì apxs tự động chấp nhận nguồn C và các file đối tượng. 10. Biên dịch Apache trên Windows: Để biên dịch Apache địi hỏi Microsoft Visual C++ 5.0 hoặc 6.0 phải được cài đặt sẵn sàng. Nĩ cĩ thể được cài đặt với các cơng cụ dịng lệnh hoặc với mơi trường Viual Studio. Tham khảo sách hướng dẫn C++ để xác định cách cài đặt chúng. Đặc biệt nhất là nhận thấy file vcvars32.bat từ thư mục Program Files/DevStudio/VC/bin và và file setenv.bat từ Platform SDK được yêu cầu để chuẩn bị các cơng cụ dịng lệnh cho việc sử dụng dịng lệnh. Để cài đặt Apache với file Makefile.win hoặc dự án Install.Bin trong Visual Studio IDE, tiện ích awk cũng được yêu cầu. Đầu tiên bản phải cài đặt awk.exe ở nơi nĩ cĩ thể được tìm thấy trong đường dẫn và mơi trường DevStudio nếu dự định sử dụng IDE, cĩ nhiều phiên bản của awk sẵn cĩ trên Windows. Cách dễ nhất là cài đặt bằng cái cĩ sẵn được tải xuống từ và nên lưu nĩ với tên awk.exe hơn là awk95.exe. Sau đĩ bung gĩi Apache đưa vào trong một thư mục thích hợp, mở cửa sổ dịng lệnh và thay đổi thư mục con src của Apache. Các tài liệu chính cung cấp cho trang 27
- ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình các file tạo Apache được chứa trong file Makefile.win. Để biên dịch Apache trên Windows chỉ cần sử dụng các dịng lệnh: nmake /f Makefile.win _apacher (release build) nmake /f Makefile.win _apached (debug build) Nếu được một thơng báo lỗi kiểu như "the name specified is not recognized " thì phải chạy file vevas32.bat trước: bằng dịng lệnh sau: "C:\Program Files\DevStudio\VC\Bin\VCVARS32.BAT" (cần phải sửa đổi dịng lệnh này nếu VC được cài ở nơi khác) Sau đĩ chạy nmake một lần nữa. Apache cũng cĩ thể được biên dịch với mơi trường Visual Studio development của VC++. Để đơn giản tiến trình này một vùng làm việc Visual Studio, Apachedsw (được cung cấp trong thư mục src) đưa ra danh sách lối vào của các dự án working.dsb được yêu cầu để hồn thành Apache (binary release). Nĩ cung cấp các phần phụ thuộc giữa các tiến trình. Nĩ bao gồm cả các phần phụ thuộc giữa các dự án để đảm bảo rằng chúng được cài đặt theo một trật tự thích hợp. InstallBin là một dự án cao cấp mà nĩ sẽ cài đặt tất cả các dự án, và cài đặt các file biên dịch vào nơi thích hợp của nĩ. Các nhân dự án .dsp được cài đặt bởi Apache.dsw và makefile.win là: os\win32\ApacheOS.dsp os\win32\Win9xConHook.dsp regex\regex.dsp ap\ap.dsp lib\expat-lite\xmltok.dsp lib\expat-lite\xmlparse.dsp yêu cầu xmltok lib\sdbm.dsp main\gen_uri_delims.dsp main\gen_test_char.dsp ApacheCore.dsp yêu cầu tất cả các file ở trên Apache.dsp yêu cầu ApacheCore Trong phần thêm vào, thư mục con os/win32 chứa các file dự án cho các mơ đun chức năng, tất cả chúng đều yêu cầu ApacheCore. os\win32\mod_auth_anon.dsp os\win32\mod_auth_dbm.dsp cũng yêu cầu sdbm os\win32\mod_auth_digest.dsp os\win32\mod_cern_meta.dsp os\win32\mod_digest.dsp os\win32\mod_expires.dsp os\win32\mod_headers.dsp os\win32\mod_info.dsp os\win32\mod_mime_magic.dsp os\win32\mod_proxy.dsp os\win32\mod_rewrite.dsp os\win32\mod_speling.dsp os\win32\mod_status.dsp os\win32\mod_unique_id.dsp os\win32\mod_usertrack.dsp trang 28
- ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình os\win32\mod_vhost_alias.dsp Thư mục support chứa các file dự án cho các chương trình được thêm vào mà nĩ khơng nằm trong phần Apache đang chạy nhưng nĩ được sử dụng bởi người quản trị để duy trì password và các file log. support\htdigest.dsp support\htpasswd.dsp support\logresolve.dsp support\rotatelogs.dsp Một khi Apache đã biên dịch nĩ cần được cài đặt trong thư mục gốc server của nĩ, mặc định là /Apache trên đĩa cứng đang sử dụng. Để tự động cài đặt các file vào trong thư mục c:/ServerRoot, sử dụng lệnh nmake: nmake /f Makefile.win installr INSTDIR=c:\ServerRoot (for release build) nmake /f Makefile.win installd INSTDIR=c:\ServerRoot (for debug build) Đối số c:\ServerRoot để cho INTSDIR nhận các thư mục cài đặt (nĩ cĩ thể được bỏ qua nếu Apache được cài đặt trong thư mục \Apache) Quá trình cài đặt sẽ diễn ra như sau: c:\ServerRoot\Apache.exe – Chương trình Apache c:\ServerRoot\ApacheCore.dll - Apache runtime [shared libary] c:\ServerRoot\Win9xConHook.dll - Win9x console fixups [shared library] c:\ServerRoot\xmlparse.dll – phân tích cú pháp XML [shared library] c:\ServerRoot\xmltok.dll - XML token engine [shared library] c:\ServerRoot\bin\*.exe – Các chương trình quản trị c:\ServerRoot\cgi-bin – Ví dụ CGI scripts c:\ServerRoot\conf – Thư mục chứa các file cấu hình. c:\ServerRoot\icons - Icons for FancyIndexing c:\ServerRoot\include\*.h – Các file header củaApache c:\ServerRoot\htdocs - Site Welcome index.html c:\ServerRoot\htdocs\manual – Tài liệu Apache. c:\ServerRoot\lib – Các file tài liệu động. c:\ServerRoot\libexec – Thư viện liên kết động. c:\ServerRoot\logs – Thư mục rỗng logging. c:\ServerRoot\modules\mod_*.dll – Các mơ đun nạp Apache. trang 29
- ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình CHƯƠNG II CÁC NGHI THỨC TRUYỀN NHẬN Cơng việc phát triển các hệ thống Mail (Mail System) địi hỏi hình thành các chuẩn về Mail. Điều này giúp cho việc gởi nhận các message được đảm bảo, làm cho những người ở các nơi khác nhau cĩ thể trao đổi thơng tin cho nhau. Cĩ 2 chuẩn về Mail quan trọng nhất và được sử dụng nhiều nhất từ trước đến nay là X.400 và SMTP (Simple Mail Transfer Protocol). SMTP thường đi kèm với chuẩn POP3 và do hạn chế của SMTP mà ngày nay người ta dùng chuẩn mở rộng của nĩ là ESMTP (Extended SMTP). Mục đích chính của X.400 là cho phép các mail cĩ thể được truyền nhận thơng qua các loại mạng khác nhau bất chấp cấu hình phần cứng, hệ điều hành mạng , giao thức truyền dẫn được dùng. Cịn mục đích của chuẩn SMTP miêu tả cách điều khiển các message trên mạng Internet. Điều quan trọng của chuẩn SMTP là giả định máy nhận phải dùng giao thức SMTP gởi Mail cho 1 Server luơn luơn hoạt động. Sau đĩ, người nhận sẽ đến lấy Mail của họ từ Server khi nào họ muốn dùng giao thức POP (Post Office Protocol), ngày nay POP được cải tiến thành POP3 (Post Officce Protocol vertion 3). Các giao thức Mail thơng dụng : chuẩn X.400, chuẩn MAIP, SMTP (ESMTP), POP3 . Ở đây chỉ trình bày chi tiết về POP3 và SMTP. PHẦN 1 GIAO THỨC SMTP (SIMPLE MAIL TRANSFER PROTOCOL ) Bộ phận chính của hệ thống Internet Mail chính là các MTA ( Message Transfer Agent), các MTA giữ 1 vai trị quan trọng trong việc chuyển giao email. trang 30
- ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình Ví dụ sau khi một người sử dụng gửi một bức mail tới hàng đợi message, MTA sẽ lấy đĩ và chuyển nĩ tới một MTA khác. Quá trình đĩ sẽ tiếp tục tiếp diễn cho đến khi message đến được nơi nhận. Để cĩ thể liên lạc với các MTA thơng qua kết nối TCP các MTA của hệ thống Internet Mail cĩ thể sử dụng nhiều nghi thức khác nhau để chuyển giao các thơng tin (X400,ESMTP, ), Nhưng ở đây ta chỉ xét nghi thức SMTP. Đây là một nghi thức cho phép chuyển mail từ điểm này sang điểm khác cho đến đích trên mạng Internet. Nĩ được cấu tạo bởi tập các câu lệnh để Client cĩ thể yêu cầu Sever thực hiện một số tác vụ và tập các câu trả lời để Server hồi đáp lại cho Client về kết quả thực hiện các tác vụ đĩ. Một chương trình muốn gởi được mail thì nĩ phải biết địa chỉ của một SMTP server. Server này cĩ nhiệm vụ chuyển mail đến nơi cần thiết. I- GIỚI THIỆU Một đặc trưng quan trọng của SMTP là khả năng chia ca Mail qua mơi trường dịch vụ giao chuyển, một dịch vụ giao chuyển cung cấp một mơi trường truyền thơng liên quá trình (Interprocess Communication Environment –IPCE ). Một mơi trường truyền thơng liên quá trình cĩ thể bao gồm một Network, vài Network, hay một tập hợp con của Network. Điều đĩ quan trọng cho việc thực hiện hệ thống giao chuyển (hay các IPCE) one-to-one với Network, một quá trình cĩ thể giao tiếp với một quá trình khác thơng qua việc nhận biết IPCE. Mail là ứng dụng hay là cách dùng của giao tiếp liên quá trình, Mail cĩ thể giao tiếp giữa các quá trình trong những IPCE khác bằng cách chia ca thơng qua một quá trình được kết nối đến hai (hay nhiều ) IPCE. Chi tiết hơn Mail cĩ thể chia ca giữa những Host trên hệ thống giao chuyển khác nhau bằng một Host trên cả hai hệ thống chuyển giao. II- MƠ HÌNH SMTP: SMTP được thiết kế dựa trên mơ hình giao tiếp sau: như kết quả của một yêu cầu Mail của user . Sender- SMTP thiết lập một kênh hai đường vận chuyển đến một receiver- SMTP . Receiver- SMTP cĩ thể là đích đến cuối cùng hay một trung gian. Những lệnh SMTP được sinh ra bởi Sender-SMTP gửi đến Receiver- SMTP. Những reply SMTP được gửi từ Receiver- SMTP đến Sender- SMTP trong sự đáp ứng cho những lệnh đĩ. Khi một kênh giao chuyển được thiết lập Sender-SMTP gửi đi 1 lệnh Mail biểu thị cho người gửi của mail đĩ. Nếu Receiver-SMTP cĩ thể chấp nhận mail, nĩ trả lời với một OK reply. Sau đĩ Sender-SMTP gửi một lệnh RCPT nhận diện Receiver mail nếu Receiver-SMTP cĩ thể chấp nhận mail nĩ trả lời với 1 OK reply nếu khơng nĩ sẽ lời với 1 reply bác bỏ receiver đĩ (nhưng khơng phải tồn bộ sự giao dịch đĩ). Sender- SMTP và Receiver- SMTP cĩ thể điều đình với vài recipient, khi những recipient đã được dàn xếp Sender-SMTP gửi mail data kết thúc với một chuỗi đặc biệt nếu receiver xử lý mail data thành cơng nĩ trả lời với 1 OK reply. Cuộc hội thoại một cách chủ ý lock –step (one-at-a-time). User SMTP File Sender Receiver Commands/Replies System SMTP SMTP File and Mail System Sender - SMTP Receiver - SMTP trang 31
- ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình Sơ đồ trên là mơ hình cho cách dùng SMTP. SMTP cung cấp những cơ chế giao chuyển Mail một cách trực tiếp từ Host của user gửi đến host của user nhận khi cả hai host được kết nối đến cùng dịch vụ giao chuyển hay qua nhiều SMTP-Sever tiếp vận khi host xuất phát hay đích đến khơng được kết nối đến cùng dịch vụ chuyển giao. Để cĩ thể cung cấp khả năng tiếp vận SMTP-Sever phải được cung cấp tên của host đến cùng chẳng hạn như hạn của mailhost đến . Đối số của lệnh mail là 1 reverse-path nĩ đặc tả mail đĩ từ đâu đến; đối số cho RCPT là 1 Forward-path nĩ đặc tả mail đĩ đi đến đâu. Forward-path là một lộ trình nguồn, reverse-path là một lộ trình trở về (nĩ cĩ thể được dùng để trả về một message cho người gửi khi xảy ra lỗi với 1 message được tiếp nhận). Khi cùng một message được gửi cho nhiều recipient SMTP khuyến khích chuyển giao chỉ một bản sao của data cho tất cả các Receiver ở cùng một host đích. Những command và reply mail cĩ những cú pháp khắc khe. Những reply cũng cĩ một mã số. Trong những thí dụ theo sau sẽ xuất hiện những lệnh (commands) và những trả lời (replies) , một danh sách các lệnh và reply hồn chỉnh trong phần 4. Các command và reply khơng phân biệt kiểu chữ hoa hay thường. Lưu ý, điều này khơng đúng với tên của User mailbox. Cho một số host tên của user cĩ phân biệt kiểu chữ, SMTP phải thi hành đầy đủ việc nhận kiểu chữ và giữ gìn kiểu chữ của những user name như chúng đã xuất hiện trong những đối số của mailbox. Host names khơng phân biệt kiểu chữ. Các command và reply là những ký tự được tạo ra từ tập ký tự ASCII{1}, khi dịch vụ vận chuyển cung cấp một kênh chuyển giao 8 bit (octet). Mỗi một ký tự 7 bit được truyền đúng bằng cách chuyển nĩ về hệ 8 (octet) với bit cĩ thứ tự cao nhất bị xĩa về 0. Khi đặc tả cấu trúc thơng thường của command và reply, một đối số (hay một ký hiệu đặc biệt ) sẽ được biểu thị bằng một biến meta-linguistic (hay một hằng số), ví dụ như : “ ”, hay “ ”. Ở đây dấu ngoặc nhọn chỉ định chúng là những biến meta-linguistic. Tuy nhiên các đối số thì dùng dấu ngoặc nhọn một cách literal. Ví dụ như, một reverse-path thực được bao trong dấu ngoặc nhọn như, “ ” là một trường hợp của (dấu ngoặc nhọn được giao chuyển trong command và reply là mã thực của nĩ). III. MAIL: 1- Khái quát : Cĩ 3 bước cho sự giao dịch SMTP mail. Giao dịch được bắt đầu với yêu cầu Mail mang sự nhận diện người gửi, tiếp theo sau là một chuỗi của một hay nhiều lệnh RCPT trao những thơng tin của receiver, sau đĩ một lệnh DATA cho mail data.Và cuối cùng là phần chỉ định kết thúc mail data xác nhận giao dịch đĩ. Bước đầu tiên trong thủ tục là lệnh MAIL chứa mailbox nguồn: MAIL FROM : Lệnh này báo cho receiver biết một giao dịch mail mới sẽ bắt đầu và để reset tất cả các bảng trạng thái và các buffer của nĩ bao gồm tất cả recipient hay mail trang 32
- ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình data. Nĩ phát ra reverse-path cĩ thể được dùng để báo lỗi. Nếu được chấp nhận receiver-SMTP trả về một reply 250 OK. cĩ thể chứa nhiều hơn một mailbox. là một lộ trình nguồn trở về liệt kê các host và mailbox nguồn. Host đầu tiên trong reverse- path sẽ là host gửi lệnh này. Bước thứ hai trong thủ tục này là lệnh RCPT : RCPT To : Lệnh này phát đi một forward-path nhận diện recipient. Nếu được chấp nhận receiver-SMTP trả về một reply 250 OK. Và lưu lại forward-path. Nếu recipient khơng nhận biết thì receiver trả về reply 550 Failure. Bước thứ hai của thủ tục này cĩ thể lặp lại nhiều lần. Forward-path cĩ thể chứa nhiều hơn một mailbox. Forward-path là lộ trình nguồn liệt kê các host và mailbox đích. Host đầu tiên trong sẽ là host nhận lệnh này. Bước thứ ba trong thủ tục là lệnh DATA DATA Nếu chấp nhận receiver-SMTP trả về một reply 354 và coi tất cả các dịng nối tiếp đĩ là message text. Khi văn bản cuối cùng được nhận và lưu trữ receiver-SMTP gửi một reply 250 OK. Kể từ khi mail được gửi trên kênh chuyển giao, điểm kết thúc của mail phải được chỉ định để hội thoại command và reply cĩ thể bắt đầu trở lại. SMTP chỉ định kết thúc của mail bằng cách gửi một dịng chứa chỉ một dấu chấm. Chú ý rằng mail data bao gồm những mục (item) memo header chẳng hạn như Subject, To, Cc, From. Phần chỉ định kết thúc của mail data cũng xác nhận sự giao dịch mail và báo cho receiver-SMTP biết để xử lý việc lưu trữ recipient và mail data ngay lúc đĩ. Nếu được chấp nhận receiver-SMTP trả về một reply 250 OK. Lệnh DATA sẽ chỉ lỗi nếu giao dịch mail khơng hồn thành (ví dụ khơng cĩ receiver) hoặc nếu tài nguyên khơng cĩ hiệu lực. Thủ tục trên là một ví dụ của một giao dịch mail. Những lệnh này chỉ được dùng trong những trật tự được trình bày ở trên. Ví dụ : Một minh họa cách dùng những lệnh này: Ut; end with . S: Blah blah blah S: etc. etc. etc. S: . R: 250 OK Bây giờ mail được chấp nhận cho Jones và Brown. Green khơng cĩ một mailbox trên Beta host. 2- Sự định hướng : Cĩ một số trường hợp thơng tin của đích đến trong bị sai nhưng receiver-SMTP biết đích đến đúng. Trong trường hợp như vậy một trong những reply sau sẽ được dùng để cho phép người gửi tiếp xúc đến đích đúng : trang 33
- ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình 251 User not local ; will forward to Reply này chỉ cho receiver-SMTP biết mailbox của user đĩ nằm trên một host khác và chỉ định forward-path đúng để sau đĩ sử dụng. Lưu ý một trong hai host hay user hay cả hai cĩ thể khác nhau . Receiver chịu trách nhiệm cho việc phân phối những message. 551 User not local ; please try Reply này chỉ cho receiver-SMTP biết mailbox của user nằm trên một host khác và chỉ định forward-path đúng để sử dụng . Lưu ý host hoặc là user hay cả hai cĩ thể khác nhau . Receiver từ chối chấp nhận mail cho user A. Người gửi phải định hướng lại cho mail đĩ tuỳ theo những thơng tin được cung cấp hoặc là trả trả lời error cho user khởi đầu.Ví dụ sau minh hoạ cách dùng của những đáp ứng này : S: RCPT TO:Postel@USC-ISI.ARPA R: 251 User not local; will forward to Hay S: RCPT TO: R: 551 User not local; please try Mockapetris@USC-ISIF.ARPA 3- Kiểm tra và mở rộng : SMTP cung cấp thêm những điểm đặc trưng, các lệnh để kiểm tra một user name hay mở rộng một danh sách địa chỉ được làm với lệnh VRFY và EXPN nĩ dùng đối số kiểu chuổi ký tự. Với lệnh VRFY chuỗi đĩ là một user name, và câu trả lời(response) cĩ thể bao gồm full name của user đĩ và phải bao gồm mailbox của user đĩ. Với lệnh EXPN chuổi đĩ định danh một danh sách địa chỉ và câu trả lời cĩ nhiều dịng cĩ thể chứa full name của các user đĩ và phải chứa những mailbox trên danh sách địa chỉ (mailing list). Nếu một host được bổ sung lệnh VRFY hay EXPN thì ít nhất những mailbox cục bộ phải được thừa nhận như là“user names”. Nếu một host chọn lựa để thừa nhận những chuổi khác như “user names” thì điều đĩ được cho phép. Trong một số host sự phân biệt giữa một mailing list và một bí danh cho single mailbox hơi mơ hồ. Từ đĩ một cấu trúc dữ liệu phổ biến cĩ thể giữ cả hai kiểu phần tử và nĩ cĩ thể dùng các mailing list của một mailbox. Nếu một yêu cầu được tạo ra để kiểm tra một mailing list một câu trả lời khẳng định cĩ thể được cho nếu trên message nhận được đã được định địa chỉ nĩ sẽ được phân phát cho tất cả mọi người trong danh sách đĩ. Mặt khác một lỗi sẽ được báo cáo (e.g., "550 That is a mailing list, not a user"). Nếu một yêu cầu được tạo ra để mở rộng một user name một câu trả lời khẳng định cĩ thể được cấu hình bằng cách trả về một danh sách chứa một tên hay một lỗi cĩ thể được báo cáo (e.g., "550 That is a user name, not a mailing list"). Trong trường hợp một reply nhiều dịng (thường cho EXPN) là một mailbox được đặc tả trên từng dịng của reply đĩ một cách chính xác. Trong trường hợp này một yêu cầu nhập nhằng khĩ hiểu như : “VRFY Smith” cĩ hai câu trả lời của Smith phải là "553 User ambiguous". Ví dụ kiểm tra một user name S: VRFY Smith R: 250 Fred Smith Hay trang 34
- ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình S: VRFY Smith R: 251 User not local; will forward to Hay S: VRFY Jones R: 550 String does not match anything. Hay S: VRFY Jones R: 551 User not local; please try Hay S: VRFY Gourzenkyinplatz R: 553 User ambiguous. Trường hợp mở rộng một mailbox list địi hỏi một reply nhiều dịng xem trong ví dụ sau: mở rộng một mailing list (danh sách địa chỉ) S: EXPN Example-People R: 250-Jon Postel R: 250-Fred Fonebone R: 250-Sam Q. Smith R: 250-Quincy Smith R: 250- R: 250 Hay S: EXPN Executive-Washroom-List R: 550 Access Denied to You. Những đối số chuổi ký tự của lệnh VRFY và EXPN khơng thể vượt qua giới hạn được quyền trên sự bổ sung đa dạng của user name và khái niệm mailbox. Trên một số hệ thống nĩ cĩ thể dành riêng cho đối số của lệnh EXPN để là một file name cho một file chứa một mailing list nhưng lại cĩ một qui ước đa dạng của việc đặc tên file trong internet. Lệnh VRFY và EXPN khơng được bao gồm trong sự thực thi tối thiểu (trình bày trong phần sau) và khơng được địi hỏi để làm việc thay ca khi chúng được thực thi. 4- Sending and Mailing : Mục đích chính của SMTP là phân phối những message đến những mailbox của user . Một dịch vụ rất phổ biến được cung cấp bởi một số host là để phân phối những message đến những terminal của user( cung cấp cho user làm việc trên host đĩ). Sự phân phát đến những mail box của user được gọi là “mailing”, sự phân phát đến những user terminal được gọi là “sending”. Bởi vì một số host cĩ sự thực thi của sending gần giống với sự thực thi của mailing chúng là hai chức năng được liên kết với SMTP. Mặc dù lệnh sending khơng bao gồm trong yêu cầu thực thi tối thiểu( xem phần sau). Những user cĩ khả năng điều khiển việc ghi message lên những terminal của họ. Hầu hết các host cho phép chấp nhận hay từ chối những message. Ba lệnh sau được định nghĩa để cung cấp những option cho sending. Chúng được dùng trong giao dịch mail thay cho lệnh MAIL và cung cấp cho receiver- SMTP những ngữ nghĩa giao dịch đặc biệt trang 35
- ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình SEND FROM: Lệnh SEND địi hỏi mail data được gửi đến user terminal. Nếu user đĩ khơng hoạt động (hay khơng chấp nhận những terminal message) trên host đĩ một reply 450 cĩ thể được trả cho một lệnh RCPT. Giao chuyển mail thành cơng khi message đĩ được phân phát đến terminal. SOML FROM: Lệnh này là SEND Or MAIL địi hỏi mail data được phân phát đến terminal của user nếu user đĩ đang hoạt động (và chấp nhận những message terminal) trên host đĩ. Nếu user khơng hoạt động (haykhơng chấp nhận terminal message) thì mail data được đưa vào trong mailbox của user . Giao chuyển mail thành cơng khi message đĩ được phân phát đến terminal hay mailbox. SAML FROM: Lệnh này là SEND And MAIL địi hỏi mail data được phân phát đến terminal của user nếu user đĩ đang hoạt động (và chấp nhận những message terminal) trên host đĩ. Trong những tất cả trường hợp mail data được đưa vào trong mailbox của user. Giao dịch mail thành cơng khi message đĩ được phân phát đến mailbox. Những mã reply tương tự được dùng cho lệnh MAIL cũng được dùng cho những lệnh này. 5- Opening and Closing : Ngay thời điểm mà kênh giao chuyển được open cĩ một sự trao đổi để đảm bảo những host đĩ đang giao tiếp với những host khác. Hai lệnh sau được dùng trong việc đĩng mở kênh truyền HELLO QUIT Trong lệnh HELLO host này gửi đi những nhận dạng lệnh của nĩ cĩ thể được dịch như "HELLO, I am ". * Ví dụ mở kết nối : Opening R : 220 BBN-UNIX.ARPA Simple Mail Transfer Service Ready S : HELO USC-ISIF.ARPA R: 250 BBN-UNIX.ARPA * Ví dụ đĩng kết nối : Closing S: QUIT R :221 BBN-UNIX.ARPA Service transmission channel. 6- Chia ca (Relaying) : Forward-path cĩ thể là một lộ trình nguồn của form "@ONE, @TWO:JOE@THREE" với ONE ,TWO, THREE là các host. Form này được dùng để nhấn mạnh sự phân biệt giữa một address và một route. Mailbox là một address tuyệt đối, và route là thơng tin về việc lấy chúng như thế nào . Những thành phần của forward-path được chuyển đến reverse-path khi message đĩ được chia ca từ một server-SMTP đến một server-SMTP khác. Reverse- path là một lộ trình nguồn trở về (khác với một lộ nguồn là từ vị trí hiện hành của message đến điểm khởi đầu của message đĩ). Khi một server SMTP xĩa phần nhận dạng của nĩ trong forward-path và chèn phần nhận dạng của nĩ vào trong reverse- path, nĩ phải dùng cái tên mà nĩ được biết tới trong mơi trường mà nĩ sẽ gửi vào, trang 36
- ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình khơng phải là mơi trường mà mail từ đĩ đến, trong trường hợp server-SMTP được biết đến với những tên khác nhau trong những mơi trường khác nhau. Nếu một message đến một SMTP thành phần đầu tiên của forward-path khơng phải là phần nhận dạng của SMTP đĩ, thành phần này khơng bị xố trong forward-path và được dùng để xác định SMTP kế để gửi message đến. Trong trường hợp này SMTP thêm phần nhận dạng của nĩ vào reverse-path. Dùng lộ trình nguồn receiver-SMTP nhận mail để chia ca đến một server- SMTP khác. Receiver-SMTP đĩ cĩ thể chấp nhận hoặc bác bỏ cơng việc chia ca cho mail, như cách nĩ chấp nhận hay bác bỏ mail cho một user cục bộ. Receiver- SMTP thay đổi những đối số lệnh bằng cách chuyển phần nhận dạng của nĩ từ forward-path vào chổ mở đầu của reverse-path. Sau đĩ receiver-SMTP trở thành Sender-SMTP, thiết lập một kênh truyền đến SMTP kế trong forward-path,và gửi mail đĩ cho nĩ. Host đầu tiên trong reverse-path sẽ là host gửi các lệnh SMTP và host đầu tiên trong forward-path sẽ là host các nhận các lệnh SMTP . Lưu ýrằng forward-path và reverse-path xuất hiện trong các lệnh và các reply SMTP, nhưng nĩ khơng cần thiết xuất hiện trong message . Nĩ khơng cần thiết cho những đường dẫn và cú pháp đặc biệt này xuất hiện trong những trường của message header như "To:" , "From:", "CC:", . Nếu một server-SMTP chấp nhận cơng việc chia ca mail và sau đĩ thấy forward-path khơng đúng hay mail đĩ khơng thể được phân phát được vì bất cứ lí do nào, thì nĩ phải xây dựng một message thơng báo "undeliverable mail" (mail khơng thể phân phát) và gửi nĩ đến nơi xuất phát của mail khơng thể phân phát đĩ(được chỉ định trong reverse-path). Message thơng báo này phải là từ server- SMTP tại host đĩ. Dĩ nhiên những server-SMTP sẽ khơng gữi những message thơng báo về những sự cố xảy ra cho message thơng báo đĩ. Một cách ngăn chặn sự lặp lại trong việc thơng báo lỗi là đặc tả một null reverse-path trong lệnh MAIL của message một thơng báo. Khi một message thơng báo như vậy được chia ca nĩ được dùng để loại bỏ reverse-path null. Một lệnh MAIL với null reverse-path như dưới đây: MAIL FROM: Thơng báo này nằm trong trả lời cho một message được khởi động bởi JOE tại HOSTW và gửi thơng qua HOSTX đến HOSTY với chỉ thị chia ca nĩ đến HOSTZ, nĩ là bước đầu tiên trong việc trả về message thơng báo . Ví dụ message thơng báo mail khơng thể phân phát : S: MAIL FROM: R: 250 OK S: DATA R: 354 send the mail data, end with . S: Date: 23 Oct 81 11:22:33 S: From: SMTP@HOSTY.ARPA S: To: JOE@HOSTW.ARPA S: Subject: Mail System Problem S: S: Sorry JOE, your message to SAM@HOSTZ.ARPA lost. S: HOSTZ.ARPA said this: trang 37
- ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình S: "550 No Such User" S: . R: 250 OK 7- Thay đổi vai trị : Lệnh TURN cĩ thể dùng để đảo vai trị của hai chương trình đang giao tiếp trên kênh giao chuyển. Nếu chương trình A đang là Sender-SMTP hiện hành và nĩ gửi lệnh TURN và nhận một reply OK(250) thì chương trình A trở thành receiver-SMTP. Nếu chương trình B đang hiện hành receiver-SMTP hiện hành và nĩ gửi lệnh TURN và nhận một reply OK(250) thì chương trình B trở thành Sender-SMTP. Để từ chối thay đổi vai trị receiver gửi reply 502 Lưu ý là lệnh này khơng bắt buộc. Thường nĩ khơng được dùng trong tình trạng kênh giao chuyển là TCP. Tuy nhiên khi trị giá cho việc thiết lập kênh giao chuyển cao, lệnh này cĩ thể rất cĩ ích. Ví dụ như lệnh này cĩ ích trong việc hổ trợ là trao đổi mail dùng hệ thống public switched telephone làm một kênh giao chuyển, đặc biệt nếu một số host đề cử các host khác cho việc trao đổi mail. IV. ĐẶC TẢ SMTP A. Những lệnh SMTP (Commands SMTP) 1. Ngữ nghĩa lệnh : 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ữ kết thúc bởi chuỗi nếu cĩ những tham số theo sau và khác. Cú pháp của những mailbox phải tuân theo những thoả hiệp phía người nhận. Những reply SMTP được bàn đến trong phần B. Một sự giao dịch mail bao gồm vài đối tượng dữ liệu được giao tiếp khi những đối số cho các lệnh khác nhau. Reverse-path là đối số của lệnh MAIL. Forward-path là đối số của lệnh RCPT. Và mail data là đối số của lệnh DATA. Ba đối số và những đối tượng dữ liệu được duy trì cho đến khi xác nhận truyền xong bởi sự chỉ định kết thúc của mail data thì thật sự kết thúc giao dịch. Mơ hình cho nĩ là những buffer riêng biệt được cung cấp để giữ kiểu của đối tượng dữ liệu. Một số lệnh đặc trưng sinh ra thơng tin được gắn vào một buffer đặc trưng, hay làm cho một hay nhiều buffer bị xố. HELLO (HELO) : Lệnh này dùng định danh Sender-SMTP đến Receiver- SMTP. Trường đối số chứa host name của Sender-SMTP. Receiver-SMTP định danh nĩ đến Sender-SMTP trong trả lời bắt tay cho việc kết nối, và trong câu trả lời cho lệnh này.Lệnh này và một reply OK để xác nhận cả hai Sender-SMTP và Receiver-SMTP đang trong tình trạng khởi động, điều đĩ là: Khơng cĩ một giao dịch mail nào đang tiến hành và tất cả các bảng trạng thái và buffer đã được xố. MAIL : Lệnh này được dùng khởi tạo một giao dịch mail trong đĩ mail data được phân phối đến một hay nhiều mailbox. Feild đối số chứa một reverse-path. Reverse-path bao gồm một danh sách các host tuỳ ý và mailbox của user. Khi danh sách các host hồn tất nĩ là một lộ trình nguồn “trở về” và chỉ định mail đĩ được chia ca thơng qua mỗi host trên danh sách đĩ (host đầu tiên trong list là host chia ca gần nhất). List này được dùng như một lộ trình nguồn để trả về người gửi những trang 38
- ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình thơng báo khơng thể phân phát. Tại mỗi host chia ca nĩ thêm phần định danh của bản thân vào chổ bắt đầu của list đĩ và phải dùng tên của nĩ được biết trong IPCE nơi nĩ sẽ chia ca mail đến đĩ, đúng hơn là ICPE cĩ mail đến từ đĩ (nếu chúng khác nhau). Trong một số loại message thơng báo lỗi (ví dụ thơng báo mail khơng thể phân phát) reverse-path cĩ thể là null. RECIPIENT (RCPT) : Lệnh này dùng định danh một người nhận mail riêng lẻ, nhiều recipient được đặc tả bằng nhiều lệnh này. Forward-path bao gồm một danh sách các host tuỳ ý và một mailbox đích được yêu cầu. Khi danh sách host đĩ hồn tất. Nĩ là một lộ trình nguồn và chỉ định mail phải được chia ca đến host kế tiếp trên list đĩ. Nếu Receiver-SMTP khơng thực thi chức năng chia ca nĩ cĩ thể dùng được reply này và sẽ cho một unknown local user (550). Khi mail được chia ca, host chia ca phải chuyển phần định danh nĩ từ chổ bắt đầu forward-path và đặt vào chổ bắt đầu của reverse-path. Khi mail trải ra tới đích cuối cùng (forward-path chỉ chứa một mailbox đích) receiver-SMTP chèn nĩ vào trong mailbox đích trong sự đồng ý với thoả hiệp host mail của nĩ. Ví dụ mail được nhận tại host chia ca A với những đối số: FROM: TO: Sẽ được chia ca đến host B với đối số FROM: TO: . Lệnh này sinh ra đối số forward-path của nĩ được gắn vào forward-path buffer. DATA(DATA) : Receiver-SMTP xử lý những dịng theo sau lệnh này khi mail từ Sender-SMTP đến. Nĩ làm cho mail data từ lệnh này được ghi vào data buffer. Mail data này cĩ thể chứa những ký tự của 128 mã ACSII. Data mail được kết thúc bằng một dịng chỉ chứa một dấu chấm. Đĩ là một dãy ký tự " . " (xem phần 4.D.2). Và đĩ là chỉ định kết thúc của mail data. Sự chỉ định kết thúc một chuổi địi hỏi người nhận phải xử lý việc lưu trữ những thơng tin giao dịch mail ngay lập tức. Quá trình xử lý này dùng thơng tin trong reverse-path buffer, forward-path buffer, mail data buffer, và khi hồn tất lệnh này những buffer đĩ sẽ bị xĩa, những message được chia ca sẽ cĩ nhiều dịng đánh dấu thời gian. Khi một Receiver-SMTP tạo ra “final delivery” của một message nĩ chèn vào chổ bắt đầu của mail data một dịng return-path. Dịng return-path đĩ bảo quản thơng tin trong “reverse-path” từ lệnh mail. Ơ đây deliver final cĩ nghĩa là message đĩ rời khỏi thế giới SMTP. Thơng thường cĩ nghĩa là nĩ đã được chuyển đến user đích, nhưng trong một số trường hợp nĩ cĩ thể được xử lý nữa và và được giao chuyển bởi hệ thống mail khác. Cĩ thể cho mailbox trong return-path là khác biệt với mailbox thật sự của Sender-SMTP, ví dụ như nếu những trả lời error được dùng phân phát một lỗi đặc biệt điều khiển mailbox. Hai đoạn trước ý nĩi mail data cuối cùng sẽ bắt đầu với một dịng return- path theo sau là một hay nhiều dịng đánh dấu thời gian , sau những dịng này sẽ là phần header và body của mail data [2]. trang 39
- ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình Sự đề cập đặc biệt cần thiết cho sự trả lời (response) và sự hành động tiếp nữa được yêu cầu khi quá trình xữ lý theo sau sự chỉ định kết thúc mail data là sự thành cơng cục bộ. Điều này cĩ thể phát sinh nếu sau khi chấp nhận một vài người nhận và data mail của receiver-SMTP thấy mail data đĩ cĩ thể được phân phát đến một số người thành cơng nhưng lại khơng thể đến những người khác (ví dụ như xảy ra vấn đề về việc chỉ định vị trí của mailbox). Trong tình trạng như vậy câu trả lời cho lệnh DATA phải là một reply OK. Nhưng receiver-SMTP phải soạn và gửi về nơi xuất xứ của message đĩ một message thơng báo “undelivered mail”. Một thơng báo đơn liệt kê tất cả các recipient khơng nhận được message, hay những message thơng báo riêng lẽ phải được gửi cho từng recipient một , tất cả những thơng báo mail khơng thể phân phát được gửi dùng lệnh MAIL (ngay cả nếu kết quả đĩ từ quá trình xử lý một lệnh SEND, SOML, hay SAML ). Ví dụ cho đường dẫn trả về và nhận đánh dấu thời gian nhận: Return-Path: Received: from GHI.ARPA by JKL.ARPA ; 27 Oct 81 15:27:39 PST Received: from DEF.ARPA by GHI.ARPA ; 27 Oct 81 15:15:13 PST Received: from ABC.ARPA by DEF.ARPA ; 27 Oct 81 15:01:59 PST Date: 27 Oct 81 15:01:01 PST From: JOE@ABC.ARPA Subject: Improved Mailing System Installed To: SAM@JKL.ARPA This is to inform you that SEND (SEND) : Lệnh này dùng khởi tạo một giao dịch mail trong đĩ mail data được phân phát đến một hay nhiều terminal. Trường đối số chứa một reverse- path. Lệnh này thành cơng nếu message được phân phát đến một terminal. Reverse-path bao gồm một list các host và mailbox người gửi tuỳ ý khi list đĩ hồn tất, nĩ là một lộ trình nguồn “trở về” và chỉ định mail đã được chia ca thơng qua các host trong list đĩ (host đầu tiên trong list là host chia ca gần nhất) danh sách này được dùng như một lộ trình nguồn để trả về cho người gửi những thơng báo về việc khơng phân phát được. Khi mỗi host chia ca thêm phần định danh vào trong vị trí bắt đầu của list , nĩ phải dùng tên mà nĩ được biết đến trong IPCE nơi nĩ sẽ chia ca mail tới đĩ , đúng hơn là IPCE cĩ mail tới từ đĩ. Lệnh này xố reverse-path buffer, forward-path buffer và mail data buffer và chèn thơng tin reverse-path từ lệnh này vào trong reverse-path buffer. END OR MAIL (SOML) : Lệnh này dùng khởi tạo một giao dịch mail trong đĩ mail data được phân phát đến một hay nhiều terminal hay mailbox. Cho từng recipient, data mail được phân phát đến terminal của người nhận nếu người nhận đĩ đang hoạt động trên host đĩ (và chấp nhận những terminal message ), mặt khác là đến mailbox của những người nhận đĩ. Trường đối số chứa một reverse-path . Lệnh này thành cơng khi message được phân phát đến một terminal hay mailbox. Reverse-path bao gồm một danh sách các host tuỳ ý và mailbox của người gửi. Khi danh sách các host đĩ hồn tất, nĩ là một lộ trình nguồn “trở về” và chỉ định mail đĩ đã được chia ca thơng qua các host trên danh sách (host đầu tiên trong danh sách là host chia ca gần nhất). Danh sách này được dùng như một lộ trình nguồn trả về cho người gửi những thơng báo về việc khơng thể phân phát. Khi mỗi trang 40