Tài liệu tham khảo công nghệ thông tin Tìm hiểu về các Web Server thông dụng hiện nay và xây dựng một chương trình Internet mail
Trang 1A 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ụngWeb 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ậnmail 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ềuhà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ỤNGI 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 toán và xử lý truycậ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ỗità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ìnhnhấ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à truycậ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ể đóngvai 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.
Trang 2Vớ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ò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êucầ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ăm1994 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ảnServer 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 Server4.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ếngphát hành trước đó không lâu (trước đây cấu trúc khung của Windows NT giốngWindows 3.1) đã được kết hợp giao diện quen thuộc, dễ sử dụng của Windows 95và sự mạnh mẽ, an toà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ôngcụ quản trị cần thiết cho server mạng, ngoà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 toà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ượngkhổ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 NTserver là hệ điều hành mạng, đáp ứng cho mạng cục bộ (LAN) vừa đáp ứng chomạ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 đổinhững gì đã có.
Trang 3Cho phép dùng các dịch vụ truy cập từ xa, có khả năng phục vụ đến 64 cổngtruy nhập từ xa.
Đá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ữngmạng thông dụng hiện nay như Novell netware, Banyan VINES và Microsoft LANManager Đố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
Khái niệm về Web server đơn giản chỉ là một chương trình mà chúng chờ đợinhững yêu cầu từ phía client và đáp ứng những yêu cầu đó khi nhận được Webserver 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 servercung 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ằngngô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ênbang.
HTML là nguồn sống của Web Nó là một ngôn ngữ đánh dấu đơn giản đượcsử 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àyvà 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ọnghơ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êncù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ó chophé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ề hoàn toà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 quanhiề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ôngtin 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ọnnhấ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ướckhi bắt đầu viết mã một trang HTML đầu tiên Vấn đề quan trọng nhất và là lý do
Trang 4cơ 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 tincơ 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ó.
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ăngvề Web site Giải pháp phổ biến nhất của Microsoft cho một Web site là chạy IIStrê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 servertrền nền Windows NT 4.0, Workstation và Win 95 IIS được tích hợp đầy đủ trongWindows 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 servervà 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ấpbởi IIS để nâng cao các tính năng Microsoft Back Office, bao gồm các thành phầnsau:
- 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ântá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ácserver ra đời muộn các nội dung Web mơi nhất IIS đầy đủ hỗ trợ các hệ thống ngônngữ lập trình VB, VB Script, J ScriptTM được phát triển bởi Microsoft và JavaComponent Nó cũng hỗ trợ các ứng dụng CGI dành cho các ngôn ngữ lập trìnhWeb 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ênWindows NT server Các bước cơ bản là lấy chương trình từ NT Option Pack hoặctải từ Internet và chạy Setup.exe.
Trang 5Windows NT Option Pack: IIS là một thành phần của Windows NT OptionPack Một bộ Windows NT Option Pack sau khi cài đặt đầy đủ phải bao gồm cácthành phần sau:
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ácquá trình phát triển, phá huỷ và quản lý sự thi hành ở mức cao và các ứng dụngserver 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ếthợp với các sản phẩm của Microsoft như: Windows NT và tất cả các sảnOffice.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ăngnà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ạonhiều trang HTML cho phép người sử dụng có thể chạy các ứng dụng CGI để thihà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 đếnGopher client.
+ FTP server: Dịch vụ này là một cập nhật đến server được cài đặt sẵn trênWindows 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ỉ FTPmớ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ìnhnhư nhau với mục đích là làm hạn chế sử dụng bộ nhớ ngoài và tăng hiệu quả IIS
Trang 6cũ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:
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ácAPI 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 CGIDLL mà nó ở trong vùng bộ nhớ giống như IIS Đây là sự khác biệt từ một CGIbì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ănchặ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ácthự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ộtmạng Nó sử dụng RPC để cấu hình IIS trên một máy khác
WWW server cung cấp các thông tin phân tán và phần mềm, nhưng theohướ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 đượcviế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ênkê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ớisiê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ênthế 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 HTTPgiữ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ảixuống trực tiếp từ Internet.
Trang 7+ Kết nối đến một WWW server bằng cách cung cấp một địa chỉ URL và gửiyêu cầu HTTP Điển hình như client yêu cầu một file (trang HTML, hình ảnh…)hoặc thư mục đang hiển thị từ server, client cũng có thể gửi một ứng dụng đếnserver.
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 trongmộ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àiliệ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ặctrê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ụngkhô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àochỉ đơ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 để xemnó.
- 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, Newgroupsvà 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 HTTPlà một giao thức đi tiên phong trong sự phát triển Web Nó có một đặc điểm chunglà 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ứctoà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ântần Internet Bằng việc mở rộng những phương thức hay dòng lệnh, người sử dụngcó 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 chungcho 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 WWWserver:
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ộtserver trước khi dữ liệu được gửi Một HTTP server có thể lắng nghe ở một cổngkhá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.
Trang 82/ Yêu cầu phía Client:
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ỉ URLcủ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ácphươ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ácWeb site, file, hình ảnh…) bằng địa chỉ URL Phương thức này chỉ dùng trênHTTP client.
HEAD: Phương thức này cũng giống như GET, tuy nhiên nó chỉ trả về thôngtin header của đối tượng chứ không phải toà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ượnglên server.
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ệutrả 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 clientchẳ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 ứngdụ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 toàn vẹn của dữ liệu Chức năng chứng nhận bảo đảm rằngdự liệu được gửi đến đúng một server cần gửi và server thì bảo đảm Việc mã hóadữ 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 ngoàiserver nhận Giải mã dữ liệu bảm đảm dữ liệu không bị sửa đổi hoặc thay thế trongquá 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ếntrình sau:
Client dành lấy chứng nhận server: Client và Server tự giới thiệu về chúnglẫ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 khoá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ứngthực và sau đó sử dụng nó để gửi một thông điệp để xác thực server Nếu server
Trang 9khô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.
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ẫunhiên (chỉ ra như một Master Key trong đặc tả SSL) từ việc trao đổi dữ liệu ngẫunhiê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 ngoài kênh SSL thì đượcmã hóa với một khóa bí mật.
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ừ khihầ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ênngườ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ủ:
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\sale3Sau đó, 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ẽ đượctạ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:
Trang 10Thư 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 truycậ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 để hoà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
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 Website ả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ínhcủ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ưngcác Web site ảo tạo trước đó sẽ giữ nguyên.
Trang 116 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ộtURL 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ênmộ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ìnhcá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 ngaytại địa chỉ URL gọi là thư mục chủ Ví dụ, nếu một client mở một địa chỉ:
http://www.microsofts.com 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ụcWWW 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ấtcả các thư mục chia xẻ.
Trang 12Nế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.
+ 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ậpcủa Windows NT (TM) và một hệ thống chứng nhận C2 Giữ an toàn cho IIS serverlà 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ăngbả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ọnkênh (rooter) hoặc bức tường lửa có thể được thiết lập để cung cấp thêm độ an toà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ệtdanh 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ỉ toà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:
Trang 13Công cụ quản lý và soạn thảo FrontPage tự động quản lý việc sử dụng cácthư mục ảo Khi được cài đặt, FrontPage sẽ khởi tạo các thư mục ảo cho các thư
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ácphầ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.
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 HostHeader người sử dụng có thể sử dụng một địa chỉ IP cho nhiều tên miền Tuy nhiênchỉ 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ủaphí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 tinHost Header để đổi địa chỉ các tên khác nhau của server ảo Để sử dụng HostHeader 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ộtcookie 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.
Trang 14như 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.
Để 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ảixuố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 toà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ềncá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ệuchứ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áynhậ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 toà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ệugử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ácbả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ụ
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ậptê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ácthuộc tính mặc định các site và các file con đã thiết lập tuỳ biến trước đó.
Trang 15Có 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ươngtự 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 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ínhSecurity Account cho các kết nối đến client và những địa chỉ IP đặc biệt Đây là mộtcá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ácclient 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ấuhình cho phép điều này trong thuộc tính Security Account, nó sẽ ánh xạ tên ngườidùng ẩn danh đến một cấu hình tài khoản của người sử dụng Windows NT Tàikhoả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ẽ đượccung 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ínhSecurity 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ịchvụ 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 đoàn ApacheGroup Đây là một Web server được hỗ trợ để chạy chủ yếu trên UNIX va LINUXvà rất được phổ biến bởi tính chặt chẽ, uyển chuyển và linh hoạt Hiện nay Apachelà 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ọ?
Trang 163 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:
- Có hay không việc chạy Apache cho tất cả mọi người sử dụng (như mộtdịch vụ) hoặc cài đặt Apache để chạy trên một cửa sổ giao tiếp khi chọn shortcutkhở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\ApacheGroup\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ẵnsà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 theocá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ụngkhô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 Apachenhư 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 “Installa 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ộtvà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ủaApache.
Trang 17Có 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.- 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ôngcó –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ứakhoảng trắng.
Ngoà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.confapache –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
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
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 đếnApache 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 đếnApache 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 khoá 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ácphiê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ằngkhông cài đè phiên bản mới lên phiên bản cũ trong hệ thống file.
Trang 18Giá trị của khóa này là thư mục “ServerRoot” chứa trong thư mục Conf KhiApache khởi động, nó sẽ đọc file httpd.conf từ thư mục này Nếu thư mục này chứachỉ thị ServerRoot mà nó khác với thư mục đang tồn tại trong khóa registry, Apachesẽ 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
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 đểhoà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ụcvụ 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ôngbá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à:
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 19Nế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
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 servercho 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 đoà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 Webserver 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ảnhơn và ít tốn kém hơn.
Trang 20Bở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ềumá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 trangWeb 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ệcchuyể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ộtvấn đề quan trọng với các site đang lớn mạnh đang được lưu thông để tạo ra kinhdoanh.
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 truycậ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ôngkhô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 hostlà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ạnnhư 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ạnnhư WWW hoặc FTP thì là tiêu chuẩn đặc trưng cho các máy tính mà nó đưa lênmạ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 21nguyê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 Website 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àinguyê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ờibằ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ôngtin.
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 sangsố 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ấtkỳ 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ủaserver 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ị
Conf/access.conf: Chứa các chỉ thị mà nó điều khiển sự truy cập cáctà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ũnggiố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ữngfile 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ạiApache 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ộtlỗi, nó sẽ dễ dàng sao lưu để định dạng lần làm việc cuối cùng
Trang 22Cá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ó 2tiế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ìnhquả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 Apachekhả 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ụngInternet) chẳng hạn các ứng dụng được sử dụng bởi Microsoft IIS và các serverWindows 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.
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ếntrì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 filecấ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ậpSHARED_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-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ẻ <IfDefine> … </IfDefine> trong các file cấu hình để bỏ qua có điều kiện hoặcthực hiện các lệnh.
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 đầukhở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ệttext_based chẳng hạn như Lynx có sẵn trong hệ thống URL sử dụng nó để truy cậpbản báo cáo trạng thái có thể được thiết lập bằng giá trị STATUSURL có sẵn trongscript.
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ântí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ú
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ồnhoặc đối tượng file mà sau đó nó có thể nạp vào Apache trong thời gian chươngtrì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ôngcụ 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ằngcá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[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ặcngay 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ảisử 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ệuhướ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 đoá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 TARGETCFLAGS SBINDIRCFLAGS_SHLIB INCLUDEDIRLD_SHLIB LIBEXECDIRLDFLAGS_SHLIB SYSCONFDIRLIBS_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-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 filenguồn C (.c) của files vào trong các file đối tượng tương ứng (.o) và sau đó cài đặtmộ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ácfile đố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ể đoá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ácDSO 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ự độngthê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ànhngay 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ớichứ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ấuhì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êndịch một nguồn C vào trong một DSO phù hợp cho việc nạp vào trong Apacheserver 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.cld -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ấpmột cách tự động cách cài đặt DSO vào trong thư mục libexec và cập nhật filehttpd.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.sochmod 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Để kiểm tra nhanh apxs, người sử dụng tạo ra một mẫu ví dụ mô đun Apachecùng với một thư từ Makefile bằng cách:
$ apxs -g -n fooCreating [DIR] foo
Creating [FILE] foo/MakefileCreating [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ênApache server:
[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ênngoà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 đặtchúng Đặc biệt nhất là nhận thấy file vcvars32.bat từ thư mục ProgramFiles/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 đườngdẫn và môi trường DevStudio nếu dự định sử dụng IDE, có nhiều phiên bản củaawk 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ừ
http://cm.bell-labs.com/cm/cs/who/bwk/awk95.exe 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 27các file tạo Apache được chứa trong file Makefile.win Để biên dịch Apache trênWindows 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 Studiodevelopment của VC++ Để đơn giản tiến trình này một vùng làm việc VisualStudio, 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 để hoà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ộcgiữ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
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 28os\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.dspsupport\rotatelogs.dsp
Một khi Apache đã biên dịch nó cần được cài đặt trong thư mục gốc servercủ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ệnhnmake:
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 29CHƯƠ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àmcho 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ìnhphầ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ủachuẩ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 Mailcho 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 TRANSFERPROTOCOL )
-***
Trang 30-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.
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 đếnkhi message đến được nơi nhận Để có thể liên lạc với các MTA thông qua kết nốiTCP 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ứcSMTP Đây là một nghi thức cho phép chuyển mail từ điểm này sang điểm kháccho đế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ạicho Client về kết quả thực hiện các tác vụ đó Một chương trình muốn gởi đượcmail thì nó phải biết địa chỉ của một SMTP server Server này có nhiệm vụ chuyểnmail đế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ườngdị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ợpcon 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 cathô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ả haihệ 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êucầu Mail của user Sender- SMTP thiết lập một kênh hai đường vận chuyển đếnmột receiver- SMTP Receiver- SMTP có thể là đích đến cuối cùng hay một trunggian 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ểuthị cho người gửi của mail đó Nếu Receiver-SMTP có thể chấp nhận mail, nó trả lời vớimột OK reply Sau đó Sender-SMTP gửi một lệnh RCPT nhận diện Receiver mail nếuReceiver-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ới1 reply bác bỏ receiver đó (nhưng không phải toà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ý maildata 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).
trang 30
ReceiverSMTP
Trang 31Sơ đồ 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ừ Hostcủ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 đếnkhông được kết nối đến cùng dịch vụ chuyển giao Để có thể cung cấp khả năng tiếpvậ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ủamailhost đế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ộtmessage 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 replycũ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 hoàn chỉnhtrong 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ểuchữ 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ự caonhấ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ộtký 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ư : “<string>”, hay “<reverse-path>” Ở đâ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ọnmột cách literal Ví dụ như, một reverse-path thực được bao trong dấu ngoặc nhọn
như, “<John.Smith@USC-ISI.ARPA>” là một trường hợp của <reverse-path>
(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 <reverse-path> chứa mailbox nguồn: MAIL <SP> FROM : <reverse-path> <CRLF>
Trang 32Lệnh này báo cho receiver biết một giao dịch mail mới sẽ bắt đầu và để resettấ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 maildata Nó phát ra reverse-path có thể được dùng để báo lỗi Nếu được chấp nhậnreceiver-SMTP trả về một reply 250 OK.
<Reverse-path> có thể chứa nhiều hơn một mailbox.<Reverse-path> là mộtlộ 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 <SP> To : <forward-path> <CRLF>
Lệnh này phát đi một forward-path nhận diện recipient Nếu được chấp nhậnreceiver-SMTP trả về một reply 250 OK Và lưu lại forward-path Nếu recipientkhông nhận biết thì receiver trả về reply 550 Failure Bước thứ hai của thủ tục nàycó 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ìnhnguồn liệt kê các host và mailbox đích Host đầu tiên trong <forword-path> sẽ làhost nhận lệnh này.
Bước thứ ba trong thủ tục là lệnh DATA DATA <CRLF>
Nếu chấp nhận receiver-SMTP trả về một reply 354 và coi tất cả các dòng nốitiếp đó là message text Khi văn bản cuối cùng được nhận và lưu trữ receiver-SMTPgử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ỉ địnhkế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áocho 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 hoàn thành (ví dụ không có receiver) hoặc nếu tàinguyê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ỉ đượcdù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 <CRLF>.<CRLF>
S: Blah blah blah S: etc etc etc S: <CRLF>.<CRLF> R: 250 OK
Bây giờ mail được chấp nhận cho Jones và Brown Green không có mộtmailbox trên Beta host.
2- Sự định hướng :
Trang 33Có một số trường hợp thông tin của đích đến trong <forward-path> bị sainhưng receiver-SMTP biết đích đến đúng Trong trường hợp như vậy một trongnhững reply sau sẽ được dùng để cho phép người gửi tiếp xúc đến đích đúng :
251 User not local ; will forward to <forward-path>
Reply này chỉ cho receiver-SMTP biết mailbox của user đó nằm trên mộthost khác và chỉ định forward-path đúng để sau đó sử dụng Lưu ý một trong haihost hay user hay cả hai có thể khác nhau Receiver chịu trách nhiệm cho việc phânphối những message.
551 User not local ; please try <forward-path>
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 địnhhướ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 <Postel@USC-ISIF.ARPA> Hay
Nếu một host được bổ sung lệnh VRFY hay EXPN thì ít nhất những mailboxcục bộ phải được thừa nhận như là“user names” Nếu một host chọn lựa để thừanhậ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 chosingle mailbox hơi mơ hồ Từ đó một cấu trúc dữ liệu phổ biến có thể giữ cả haikiể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 chonế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 isa mailing list, not a user") Nếu một yêu cầu được tạo ra để mở rộng một user namemộ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áchchứ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 amailing 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àymột yêu cầu nhập nhằng khó hiểu như : “VRFY Smith” có hai câu trả lời của Smithphải là "553 User ambiguous".
Ví dụ kiểm tra một user name
Trang 34Trường hợp mở rộng một mailbox list đòi hỏi một reply nhiều dòng xemtrong ví dụ sau: mở rộng một mailing list (danh sách địa chỉ)
S: EXPN Example-People
R: 250-Jon Postel <Postel@USC-ISIF.ARPA>
R: 250-Fred Fonebone <Fonebone@USC-ISIQ.ARPA> R: 250-Sam Q Smith <SQSmith@USC-ISIQ.ARPA>
R: 250-Quincy Smith VAXA.ARPA>
<@USC-ISIF.ARPA:Q-Smith@ISI-R: 250-<joe@foo-unix.ARPA> <@USC-ISIF.ARPA:Q-Smith@ISI-R: 250 <xyz@bar-unix.ARPA> 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ớihạn được quyền trên sự bổ sung đa dạng của user name và khái niệm mailbox Trênmột số hệ thống nó có thể dành riêng cho đối số của lệnh EXPN để là một file namecho 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 đặctê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ìnhbày trong phần sau) và không được đòi hỏi để làm việc thay ca khi chúng đượcthự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 mailboxcủ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ốinhữ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 thicủ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ênkết với SMTP Mặc dù lệnh sending không bao gồm trong yêu cầu thực thi tốithiểu( xem phần sau) Những user có khả năng điều khiển việc ghi message lênnhững terminal của họ Hầu hết các host cho phép chấp nhận hay từ chối nhữngmessage.
Trang 35Ba 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
SEND <SP> FROM:<reverse-path> <CRLF>
Lệnh SEND đòi hỏi mail data được gửi đến user terminal Nếu user đó khônghoạt động (hay không chấp nhận những terminal message) trên host đó một reply450 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 <SP> FROM:<reverse-path> <CRLF>
Lệnh này là SEND Or MAIL đòi hỏi mail data được phân phát đến terminalcủa user nếu user đó đang hoạt động (và chấp nhận những message terminal) trênhost đó Nếu user không hoạt động (haykhông chấp nhận terminal message) thì maildata được đưa vào trong mailbox của user Giao chuyển mail thành công khimessage đó được phân phát đến terminal hay mailbox.
SAML <SP> FROM:<reverse-path> <CRLF>
Lệnh này là SEND And MAIL đòi hỏi mail data được phân phát đếnterminal của user nếu user đó đang hoạt động (và chấp nhận những messageterminal) trên host đó Trong những tất cả trường hợp mail data được đưa vào trongmailbox của user Giao dịch mail thành công khi message đó được phân phát đếnmailbox.
Những mã reply tương tự được dùng cho lệnh MAIL cũng được dùng chonhữ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 <SP> <domain><CRLF>
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ộtroute 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
Trang 36hành của message đến điểm khởi đầu của message đó) Khi một server SMTP xóaphầ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, 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
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ị xoá trong
forward-path và được dùng để xác định SMTP kế để gửi message đến Trongtrườ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 SMTP khác Receiver-SMTP đó có thể chấp nhận hoặc bác bỏ công việc chia cacho 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ừ
server-forward-path vào chổ mở đầu của reverse-path Sau đó receiver-SMTP trở thànhSender-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 đầutiê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ầnthiết cho những đường dẫn và cú pháp đặc biệt này xuất hiện trong những trườngcủ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" (mailkhô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 messagethô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
MAIL FROM:< >
Thông báo này nằm trong trả lời cho một message được khởi động bởi JOEtại HOSTW và gửi thông qua HOSTX đến HOSTY với chỉ thị chia ca nó đếnHOSTZ, 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: RCPT TO:<@HOSTX.ARPA:JOE@HOSTW.ARPA> 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
Trang 37S: Subject: Mail System ProblemS:
S: Sorry JOE, your message to SAM@HOSTZ.ARPA lost S: HOSTZ.ARPA said this:
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ếptrê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 TURNvà 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ệnhTURN 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ìnhtrạng kênh giao chuyển là TCP Tuy nhiên khi trị giá cho việc thiết lập kênh giaochuyể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 giaochuyể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ốngmail đượ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<CRLF> Bản thân mã lệnh là những ký tự chữ kết thúc bởi chuỗi <SP> nếu cónhững tham số theo sau và <CRLF> khác Cú pháp của những mailbox phải tuântheo những thoả hiệp phía người nhận Những reply SMTP được bàn đến trong phầnB.
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 xongbở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 chomột hay nhiều buffer bị xoá.
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-Receiver-SMTP Receiver-SMTP địnhdanh nó đến Sender-SMTP trong trả lời bắt tay cho việc kết nối, và trong câu trả lờicho 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 giaodịch mail nào đang tiến hành và tất cả các bảng trạng thái và buffer đã được xoá.
được phân phối đến một hay nhiều mailbox Feild đối số chứa một reverse-path.
Trang 38Reverse-path bao gồm một danh sách các host tuỳ ý và mailbox của user Khi danhsách các host hoàn tất nó là một lộ trình nguồn “trở về” và chỉ định mail đó đượcchia ca thông qua mỗi host trên danh sách đó (host đầu tiên trong list là host chia cagần nhất) List này được dùng như một lộ trình nguồn để trả về người gửi nhữngthô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ủabả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 IPCEnơi nó sẽ chia ca mail đến đó, đúng hơn là ICPE có mail đến từ đó (nếu chúng khácnhau) 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.
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 đó hoàntấ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ênlist đó Nếu Receiver-SMTP không thực thi chức năng chia ca nó có thể dùng đượcreply 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:<USERX@HOSTY.ARPA>
TO:<@HOSTA.ARPA,@HOSTB.ARPA:USERC@HOSTD.ARPA> Sẽ được chia ca đến host B với đối số
FROM:<@HOSTA.ARPA:USERX@HOSTY.ARPA> TO:<@HOSTB.ARPA:USERC@HOSTD.ARPA>.
Lệnh này sinh ra đối số forward-path của nó được gắn vào forward-path buffer.
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úcbằng một dòng chỉ chứa một dấu chấm Đó là một dãy ký tự "<CRLF> <CRLF>"(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 hoà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ènvào chổ bắt đầu của mail data một dòng return-path Dòng return-path đó bảo quảnthô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 giaochuyể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 đặcbiệt điều khiển mailbox
Trang 39Hai đoạn trước ý nói mail data cuối cùng sẽ bắt đầu với một dòng 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à
return-phần header và body của mail data [2]
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ườinhận và data mail của receiver-SMTP thấy mail data đó có thể được phân phát đếnmộ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ảyra vấn đề về việc chỉ định vị trí của mailbox) Trong tình trạng như vậy câu trả lờicho 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 messagethô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áomail 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:<@GHI.ARPA,@DEF.ARPA,@ABC.ARPA:JOE@ABC.ARPA>
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
data được phân phát đến một hay nhiều terminal Trường đối số chứa một 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
đó hoàn tất, nó là một lộ trình nguồn “trở về” và chỉ định mail đã được chia cathô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ữngthông báo về việc không phân phát được Khi mỗi host chia ca thêm phần địnhdanh vào trong vị trí bắt đầu của list , nó phải dùng tên mà nó được biết đến trongIPCE nơi nó sẽ chia ca mail tới đó , đúng hơn là IPCE có mail tới từ đó.
Lệnh này xoá 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.
đó mail data được phân phát đến một hay nhiều terminal hay mailbox Cho từngrecipient, 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 đó hoàn tất, nó là một lộ trình nguồn “trở về” và chỉ
Trang 40định mail đó đã được chia ca thông qua các host trên danh sách (host đầu tiên trongdanh sách là host chia ca gần nhất) Danh sách này được dùng như một lộ trìnhnguồ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ỗihost chia ca thêm phần định danh nó vào chổ bắt đầu của danh sách đó, nó phảidùng tên được biết đến trong IPCE nơi nó sẽ chia ca mail đến đó đúng hơn là IPCEcó mail đến từ đó(nếu chúng khác nhau).
Lệnh này xoá 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.
trong đó mail data được phân phát đến một hay nhiều terminal và các mailbox Chotừng người nhận 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 ) và cho tấtcả recipient thì đến mailbox của các recipient đo 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 mailbox.
Reverse-path bao gồm một danh sách các host tuỳ ý và mailbox của ngườigửi Khi danh sách hoà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 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ề chongười gửi những thông báo về việc không thể phân phát Khi mỗi host chia ca thêmphần định danh nó vào chổ bắt đầu của danh sách đó nó phải dùng tên mà nó đượcbiết đến trong IPCE mà nó sẽ chia ca mail đến đó đúng hơn là IPCE mà mail đếntừ đó (nếu chúng khác nhau).
Lệnh này xoá 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.
RESET (RSET) : Lệnh này định rõ giao dịch mail hiện hành bị huỷ bỏ Các
người gửi, recipient, mail data đã lưu sẽ bị huỷ bỏ và tất cả các bảng trạng thái, cácbuffer bị xoá Receiver phải gửi một reply OK.
một user Nếu nó là một user name, full name của user đó (nếu receiver biết) vàmailbox đặc tả đầy đủ được trả về.Lệnh này không ảnh hưởng đến reverse-pathbuffer, forward-path buffer và data mail buffer.
(danh sách địa chỉ) và trả về một thành phần trong danh sách đó Full name của cácuser (nếu biết) và những mailbox được đặc tả đầy đủ được trả về trong một replynhiều dòng.
Lệnh này không ảnh hưởng đến reverse-path buffer, forward-path buffer vàdata mail buffer.
lệnh HELP Lệnh này có thể nhận một đối số (có thể là tên lệnh) và trả về thông tinchi tiết.
Lệnh này không ảnh hưởng đến reverse-path buffer, forward-path buffer vàdata mail buffer.
đưa vào trước nó, nó đặc tả không có một hành động nào khác hơn là receiver gửi mộtreply OK.