1 DNS協(xié)議 1. 域名空間與資源記錄 (1) 域名空間(2) 資源記錄 2. 域名服務(wù)器 3. 解析器2 HTTP協(xié)議 1. HTTP協(xié)議(1) 請求塊(2) 應答塊2. Web服務(wù)器軟件3. Web客戶(hù)軟件 3 FTP協(xié)議1. FTP系統組成2. FTP使用操作 4 Telnet協(xié)議1. Telnet系統組成2. Telnet使用操作 5 電子郵件協(xié)議 1 電子郵件系統組成 2 郵件傳輸協(xié)議(1) SMTP(2) MIME(3) POP3 3.郵件系統使用基于TCP/IP協(xié)議的應用層協(xié)議有很多,因為面向網(wǎng)絡(luò )的應用是多種多樣的,每一種網(wǎng)絡(luò )應用都可能對應一種應用層協(xié)議。例如,在Internet中,幾乎所有的應用系統都有相應的應用層協(xié)議提供支持,如HTTP協(xié)議支持Web應用、SMTP支持電子郵件應用、Telnet協(xié)議支持遠程登錄應用、FTP協(xié)議支持文件傳輸應用、Gopher協(xié)議支持信息檢索應用以及DNS協(xié)議支持域名系統等。此外,應用層協(xié)議還有用于網(wǎng)絡(luò )安全的安全協(xié)議(如SHTTP)、用于網(wǎng)絡(luò )管理的網(wǎng)管協(xié)議(如SNMP)以及用于多媒體會(huì )議的通信協(xié)議等。 為支持網(wǎng)絡(luò )應用的開(kāi)發(fā),TCP/IP協(xié)議提供了一種稱(chēng)為套接字(Socket)網(wǎng)絡(luò )編程接口,開(kāi)發(fā)者可以通過(guò)Socket接口調用傳輸層或網(wǎng)絡(luò )層服務(wù)功能來(lái)開(kāi)發(fā)面向特定應用的應用層協(xié)議。
1 DNS協(xié)議
在IP網(wǎng)絡(luò )(如Internet)中, 每一種網(wǎng)絡(luò )資源或服務(wù)站點(diǎn)都要使用惟一的IP地址來(lái)標識。由于IP地址不便于記憶和理解,在很多情況下使用一種更為直觀(guān)的域名(Domain Name)來(lái)標識網(wǎng)絡(luò )站點(diǎn),以方便用戶(hù)的使用。然而,在TCP/IP協(xié)議中,必須使用IP地址來(lái)標識站點(diǎn),而不能使用域名。因此,在必要時(shí)必須將域名映射成IP地址。在TCP/IP協(xié)議中,由域名系統DNS(Domain Name System)來(lái)提供這種地址映射服務(wù)。
DNS是一種周知的公共網(wǎng)絡(luò )服務(wù),主要提供域名與IP地址之間的映射服務(wù)。在RFC 1034和RFC 1035文檔中詳細描述了DNS功能。DNS由三部分組成:域名空間與資源記錄、域名服務(wù)器和解析器。
1. 域名空間與資源記錄
(1) 域名空間
域名空間采用樹(shù)形結構來(lái)組織和管理, 參見(jiàn)圖5.14。它的頂部是根, 根名為空標記“”, 但在文本格式中寫(xiě)成“.”。樹(shù)中的每一個(gè)節點(diǎn)都是域名空間的一部分, 稱(chēng)為域名空間的域。域可以進(jìn)一步劃分成子域, 每個(gè)域都有一個(gè)域名, 定義它在域名空間中的位置。在DNS中,一個(gè)完整的域名是從該域向上直到根的所有標記組成的字符串, 標記之間要用“.”分隔開(kāi),例如nisi.nwpu.edu.cn。
在一個(gè)域名中, 每個(gè)子域名都有其特定的含義。從右到左, 子域名分別是表示國家或地區的頂級域名、組織類(lèi)型、組織名稱(chēng)、分組織名稱(chēng)和計算機名稱(chēng)等。例如, 在www.nisi.nwpu.edu.cn域名中, 從右到左分別表示:頂級域名cn表示中國,子域edu表示是教育機構,nwpu表示一個(gè)學(xué)校的名稱(chēng),nisi表示是該學(xué)校中一個(gè)院系或研究所名稱(chēng),www 表示是一個(gè)Web服務(wù)器。在域名中, 大小寫(xiě)字母可以混合使用, 但作為一般原則, 最好全部使用小寫(xiě)字母。
頂級域名大致上可以分成兩類(lèi):一類(lèi)是組織性頂級域名;另一類(lèi)是地理性頂級域名。組織性頂級域名表示 Internet服務(wù)提供者(ISP)所屬的組織類(lèi)型,由RFC 1691文檔規定,表5.5為組織分類(lèi)及它們所對應的組織性頂級域名。地理性頂級域名用兩個(gè)字母的縮寫(xiě)形式來(lái)表示某個(gè)國家和地區,由ISO 3166國際標準規定,表5.6為部分國家和地區的頂級域名。
由于Internet起源于美國, 后來(lái)才擴展到美國以外的國家。因此,Internet 地址的物理性頂級域名的默認值是美國(即可缺省)。雖然表6.6中也有美國的頂級域名, 但通常沒(méi)有必要使用, 而其它國家和地區則必須使用。
域名 含義 例子
com
商業(yè)組織
公司
edu
教育機構
大學(xué)或科研機構
gov
政府機構
美國國家宇航局(NASA)
int
國際性組織
國際標準化組織(ISO)
mil
軍隊
海軍
net
網(wǎng)絡(luò )技術(shù)組織
網(wǎng)絡(luò )管理及安全
org
非盈利組織
基金會(huì )
表5.5組織性頂級域名
在域名空間中, 每個(gè)域可以由不同的組織機構來(lái)管理, 每個(gè)組織可以將它所屬的域再分成一系列子域, 并可將這些子域交給下屬的組織來(lái)管理。例如, Internet網(wǎng)絡(luò )信息中心負責管理edu域, 但把子域nwpu.edu授權給nwpu大學(xué)管理。如果用戶(hù)要在一個(gè)域上創(chuàng )建一個(gè)新的子域,必須經(jīng)過(guò)該域管理者的同意,并為新子域命名一個(gè)惟一的域名。這種層次結構的優(yōu)點(diǎn)是各個(gè)組織在其內部可以自由地選擇域名, 只要保證該組織內的惟一性即可,而不必擔心與其它組織內的域名相沖突。
域名 含義 域名 含義
aq
南極大陸
it
意大利
ar
阿根廷
jp
日本
at
奧地利
kr
韓國
au
澳大利亞
kw
科威特
br
比利時(shí)
li
列支敦士敦
bg
保加利亞
lt
立陶宛
br
巴西
lu
盧森堡
ca
加拿大
lv
拉脫維亞
ch
瑞士
mx
墨西哥
cl
智利
my
馬來(lái)西亞
cn
中國
nl
荷蘭
cr
哥斯達黎加
no
挪威
cs
捷克斯洛伐克
nz
新西蘭
de
德國
pl
波蘭
dk
丹麥
pr
波多黎各
ec
厄瓜多爾
pt
葡萄牙
ee
愛(ài)沙尼亞
re
留尼汪島
eg
埃及
se
瑞典
es
西班牙
sg
新加坡
fi
芬蘭
si
斯洛伐尼亞
fr
法國
su
(前)蘇聯(lián)
gb
大不列顛(與uk等同)
th
泰國
gr
希臘
tn
突尼西亞
hk
香港地區
tw
臺灣地區
hr
克羅愛(ài)西亞
uk
英國(英格蘭、蘇格蘭、威爾士和北愛(ài)爾蘭)
in
匈亞利
us
美國
is
愛(ài)爾蘭
ve
委內瑞拉
il
以色利
yu
南斯拉夫
in
印度
za
南非
is
冰島
表5.6地理性頂級域名
(2) 資源記錄
每個(gè)主機對應于域名空間的一個(gè)節點(diǎn),每個(gè)節點(diǎn)都有一個(gè)資源記錄,與特定名字的資源信息相聯(lián)系。當解析器查詢(xún)一個(gè)域名時(shí),它所獲得信息就是與該域名相關(guān)的資源記錄。實(shí)際上,DNS的功能就是把域名映射到資源記錄上。一條資源記錄共有5項,其格式如下:
Domain_name
Time_to_live
Type
Class
Value
Domain_name:資源記錄所在的域名,它是作為查詢(xún)的主關(guān)鍵字,并返回所有匹配的記錄。
Time_to_live:資源記錄的生存期,用32 位整數來(lái)表示資源記錄存活時(shí)間。
Type:資源記錄類(lèi)型,主要有下列記錄類(lèi)型:
·A:一個(gè)主機的IP地址,32位整數,這是最重要的記錄類(lèi)型。
·CNAME:規范名,指示一個(gè)別名的規范名。
·HINFO:主機描述,指示一個(gè)主機的CPU和OS類(lèi)型。
·MX:郵件交換,指示一個(gè)愿意接收特定域電子郵件的域名。
·NS:名字服務(wù)器,指示一個(gè)可信的名字服務(wù)器。
·PTR:指針,指向另一個(gè)域名空間部分的指針。
·SOA:認證開(kāi)始,指示一個(gè)可信區域(Zone)的開(kāi)始。
Class:信息類(lèi)別,對于Internet信息,其值為IN;對于非Internet信息,則為其它值。
Value:它可以是數字或字符串,其語(yǔ)義取決于資源記錄類(lèi)型。
下面是一個(gè)有關(guān)資源記錄的例子:
Domain_nameTime_to_liveTypeClassValue
nwpu.edu.cn86400MXINmail.nwpu.edu.cn
nwpu.edu.cn86400MXINpop3.nwpu.edu.cn
www.nwpu.edu.cn86400HINFOINIntelLinux
www.nwpu.edu.cn86400AIN192.202.200.150
ftp.nwpu.edu.cn86400AIN192.202.200.160
nisi.nwpu.edu.cn86400AIN192.202.200.40
www.nwpu.edu.cn86400CNAMEINweb.nwpu.edu.cn
其中,86400為24小時(shí)的秒數。
2. 域名服務(wù)器
域名服務(wù)器(Domain Name Server)也稱(chēng)名字服務(wù)器。理論上,一個(gè)名字服務(wù)器可以保存整個(gè)DNS數據庫信息,供所有客戶(hù)查詢(xún)。然而,這將會(huì )引起名字服務(wù)器過(guò)載而崩潰。實(shí)際上,整個(gè)域名空間被劃分成一些互不交叉的區域(Zone),每個(gè)區域包含域名空間的一部分信息,一個(gè)名字服務(wù)器可以管理一個(gè)或多個(gè)區域。通常,名字服務(wù)器可以分為以下幾種:
(1) 主名字服務(wù)器。每個(gè)區域至少有兩個(gè)主名字服務(wù)器來(lái)保存所有的區域內信息。換句話(huà)說(shuō), 每一個(gè)給定的區域數據至少可以從兩個(gè)名字服務(wù)器上得到:一個(gè)是主名字服務(wù)器,它從磁盤(pán)文件中得到區域數據;另一個(gè)是備份名字服務(wù)器,它從主名字服務(wù)器那里得到數據。當主名字服務(wù)器發(fā)生故障或過(guò)載時(shí),備份服務(wù)器可以接替工作或分擔部分負載。
(2) Caching Only服務(wù)器。所有的名字服務(wù)器都是Caching服務(wù)器,這表明名字服務(wù)器將接收到的信息保存在cache中,直到數據失效。此外, 還有一種叫做Caching Only的名字服務(wù)器, 它將接收到的信息轉發(fā)到其它名字服務(wù)器上, 直到得到所需信息, 但它自己不保存任何可靠的數據。
(3) 轉發(fā)服務(wù)器(Forwarding Server)。它建立一個(gè)“轉發(fā)服務(wù)表”,記錄它的上級名字服務(wù)器。當服務(wù)器收到地址映射請求時(shí), 首先在自己的cache中查找。如果找不到, 就請求送到上一級名字服務(wù)器中, 而不是送給根。該服務(wù)器按表中給出的順序依次查詢(xún)上一級名字服務(wù)器, 直到查到該數據為止。如果查不到, 則返回無(wú)此數據的出錯信息。這種服務(wù)器的優(yōu)點(diǎn)是主機可以建立非常大的數據cache, 從而減少從本機訪(fǎng)問(wèn)網(wǎng)絡(luò )的次數。
3. 解析器
解析器(Resolver)是客戶(hù)方, 主要負責接收客戶(hù)查詢(xún)請求;向名字服務(wù)器發(fā)出查詢(xún);解釋從名字服務(wù)器返回的應答信息;將信息提交給客戶(hù)等。
為了說(shuō)明DNS的工作過(guò)程, 現舉一個(gè)例子。假設一個(gè)用戶(hù)在域名為ncti.xjtu.edu.cn的計算機上發(fā)出查詢(xún)“www.nisi.nwpu.edu.cn”的命令, 則DNS 的工作過(guò)程如下:
①解析器向本地名字服務(wù)器發(fā)出請求, 查詢(xún)nisi. nwpu.edu.cn的地址;
②本地名字服務(wù)器向根cn名字服務(wù)器發(fā)出查詢(xún)nisi.nwpu.edu.cn地址的請求;
③根名字服務(wù)器返回給本地名字服務(wù)器一個(gè)IP地址, 指向edu.cn名字服務(wù)器;
④本地名字服務(wù)器向edu名字服務(wù)器發(fā)出查詢(xún)nisi.nwpu.edu.cn地址的請求;
⑤ edu名字服務(wù)器返回給本地名字服務(wù)器一個(gè)IP地址, 指向nwpu.edu.cn名字服務(wù)器;
⑥本地名字服務(wù)器向nwpu.edu.cn名字服務(wù)器發(fā)出查詢(xún)nisi.nwpu.edu.cn地址請求;
⑦ nwpu.edu.cn名字服務(wù)器將nisi.nwpu.edu.cn名字服務(wù)器的IP地址返回給本地名字服務(wù)器;
⑧本地名字服務(wù)器將該地址返回給解析器。
整個(gè)過(guò)程可能有些繁瑣, 但由于使用了Caching 技術(shù), 其查詢(xún)過(guò)程是很快的。
從上述過(guò)程不難看出, 本地名字服務(wù)器為了得到一個(gè)IP地址往往需要查詢(xún)多個(gè)名字服務(wù)器。于是, 在查詢(xún)地址的同時(shí), 本地名字服務(wù)器也就得到了許多其它名字服務(wù)器的信息, 像它們的IP地址、所負責的區域等。
本地名字服務(wù)器將這些信息連同最終查詢(xún)到的主機IP地址全部存放在它的Cache 中, 供以后查詢(xún)使用。當下次解析器再查詢(xún)與這些域名相關(guān)的信息時(shí), 就可以直接引用。這樣, 就可以大大減少查詢(xún)時(shí)間了。如果名字服務(wù)器Cache中保存有客戶(hù)所請求的IP地址, 則名字服務(wù)器就可直接給出應答。即使沒(méi)有, 它也知道負責該區域的名字服務(wù)器信息, 可以直接查詢(xún)這些名字服務(wù)器, 而不必從根開(kāi)始逐級查詢(xún)。
例如, 名字服務(wù)器已經(jīng)查詢(xún)到了nisi.nwpu.edu.cn的IP地址, 那么在查詢(xún)過(guò)程中, 它已把nisi. nwpu.edu.cn的IP地址和nwpu.edu.cn名字服務(wù)器IP地址存放在Cache中?,F在如果某個(gè)解析器需要查詢(xún)ncti. nwpu.edu.cn地址的話(huà), 名字服務(wù)器就會(huì )跳過(guò)根名字服務(wù)器, 而直接查詢(xún)nwpu.edu.cn名字服務(wù)器。
可見(jiàn), Caching方法除了能夠加速查詢(xún)過(guò)程外, 還能夠避免重復查詢(xún)根名字服務(wù)器, 從而減輕了根名字服務(wù)器的負擔。需要指出的是,Cache中所保存的資源記錄將受到生存期的限制,超過(guò)生存期,該資源記錄將被清除掉,
另外,解析器與名字服務(wù)器之間,名字服務(wù)器與名字服務(wù)器之間可以采用TCP或UDP協(xié)議進(jìn)行通信,表5.3和表5.4中給出了它們的周知端口號。在實(shí)際的DNS中,一般采用UDP協(xié)議進(jìn)行通信。
2 HTTP協(xié)議
WWW(World Wide Web,簡(jiǎn)稱(chēng)Web)是Internet中最受歡迎的一種多媒體信息服務(wù)系統,它基于客戶(hù)/服務(wù)器模式, 整個(gè)系統由Web服務(wù)器、瀏覽器(Browser)和通信協(xié)議等三部分組成。其中, 通信協(xié)議采用超文本傳輸協(xié)議HTTP(HyperText Transfer Protocol)。HTTP是專(zhuān)門(mén)為Web服務(wù)系統設計的應用層協(xié)議,能夠傳送任意類(lèi)型數據對象,以滿(mǎn)足Web服務(wù)器與瀏覽器之間的多媒體通信需要。
在Web服務(wù)器上, 多媒體信息以網(wǎng)頁(yè)(Home Page)的形式來(lái)發(fā)布,網(wǎng)頁(yè)采用超文本標記語(yǔ)言HTML(Hyper Text Markup Language)編寫(xiě)??蛻?hù)使用瀏覽器連接到指定的Web服務(wù)器并獲取網(wǎng)頁(yè)后, 由瀏覽器來(lái)解釋執行網(wǎng)頁(yè)所包含的信息,并顯示在客戶(hù)機的屏幕上。
在Web系統中, 使用了一種簡(jiǎn)單的命名機制:統一資源定位器URL(Universal Resource Locator)來(lái)惟一地標識和定位Internet中的資源。它由以下三部分組成:
①客戶(hù)與服務(wù)器之間所使用的通信協(xié)議;
②存放信息的服務(wù)器地址;
③存放信息的路徑和文件名。
例如:
URL:http://some.site.edu/somedir/welcome.html。這里, URL并不僅限于描述Web服務(wù)器資源, 而且還可以描述其它服務(wù)器資源, 如Telnet、FTP、Gopher、Wais和Usenet News等。
Web最初是由歐洲高能物理研究中心CERN開(kāi)發(fā)的, 目的是為科研人員共享學(xué)術(shù)信息提供一種有效的信息服務(wù)手段,時(shí)隔不久, Web就作為一種通用的信息發(fā)布和服務(wù)系統被廣泛應用于Internet。
2.1 HTTP協(xié)議
HTTP協(xié)議是一種基于TCP的應用層協(xié)議,它采用客戶(hù)/服務(wù)器模式,為Web客戶(hù)與服務(wù)器之間的通信提供一種公共的方法。因此,HTTP服務(wù)器(即Web服務(wù)器)作為一種公共的網(wǎng)絡(luò )服務(wù),使用了一個(gè)周知的TCP端口號80。一個(gè)典型的HTTP事務(wù)處理包括如下的過(guò)程:
①客戶(hù)與服務(wù)器之間建立HTTP連接;
②客戶(hù)向服務(wù)器提出服務(wù)請求;
③服務(wù)器接受請求, 并根據請求返回相應的文件作為應答;
④關(guān)閉客戶(hù)與服務(wù)器之間的HTTP連接。
HTTP采用一次性連接策略,每次連接只處理一個(gè)請求, 當服務(wù)器返回本次請求的應答后便立即關(guān)閉連接, 下次請求再重新建立連接。這種一次性連接策略主要考慮到Web服務(wù)器只能提供有限個(gè)連接,卻要面對網(wǎng)絡(luò )中成千上萬(wàn)個(gè)用戶(hù),為了避免一個(gè)連接處于長(cháng)時(shí)間等待狀態(tài)而降低服務(wù)器的執行效率,故HTTP服務(wù)器在一次傳輸完成后立即釋放該連接。
HTTP是一種無(wú)狀態(tài)的協(xié)議,服務(wù)器不保留與客戶(hù)交易時(shí)的任何狀態(tài)。這就大大減輕了服務(wù)器的存儲負擔, 從而保持較快的響應速度。
HTTP是一種面向對象的協(xié)議, 允許傳送任意類(lèi)型的數據對象。它通過(guò)數據類(lèi)型和長(cháng)度來(lái)標識所傳送的數據內容和大小, 并允許對數據進(jìn)行壓縮傳送。
當用戶(hù)在一個(gè)HTML文檔中定義了一個(gè)超文本鏈后, 瀏覽器將通過(guò)TCP/IP協(xié)議與指定的服務(wù)器建立連接。首先,客戶(hù)打開(kāi)80號TCP端口請求建立一個(gè)TCP連接。如果該服務(wù)器一直在這個(gè)周知的端口上偵聽(tīng)連接請求,則該連接便會(huì )建立起來(lái)。然后客戶(hù)通過(guò)該連接發(fā)送一個(gè)包含HTTP方法 (或稱(chēng)命令)的請求塊。HTTP規范定義了七種方法, 參見(jiàn)表5.7。每種方法規定了客戶(hù)和服務(wù)器之間不同的信息交換方式, 常用的方法是GET和POST。Web服務(wù)器將根據客戶(hù)請求完成相應操作, 并以應答塊形式返回給客戶(hù), 最后關(guān)閉連接。
方法 說(shuō)明
GET
請求讀取網(wǎng)頁(yè)
HEAD
請求讀取網(wǎng)頁(yè)的頭
PUT
請求存儲網(wǎng)頁(yè)
POST
附加一個(gè)命名的資源,如一個(gè)網(wǎng)頁(yè)等
DELETE
刪除網(wǎng)頁(yè)
LINK
連接兩個(gè)已有的資源
UNLINK
斷開(kāi)兩個(gè)已有的資源之間的連接
表5.7HTTP方法
在HTTP中, 通過(guò)下列兩種信息塊結構來(lái)實(shí)現客戶(hù)與服務(wù)器間的信息交換。
1.請求塊
在HTTP中, 客戶(hù)的請求信息將按下列結構來(lái)組織:
description: method URL HTTP version
GeneralHeader
RequestHeader
EntityHeader
EntityBody
請求塊中的各個(gè)字段是根據不同的請求方法任選的。
①描述行(description)定義了方法(method)、URL和HTTP協(xié)議版本號。由于這時(shí)已建立了連接, 故這里的URL不再包含協(xié)議名、服務(wù)器名和端口號。
在七種HTTP方法中,最常用的方法是GET和POST。
·GET: 該方法的目的是取回由URL指定的資源, 主要用于取回由一個(gè)超文本鏈所定義的對象。如果對象是文件, 則GET取回的是文件內容; 如果對象是程序或描述, 則GET取回的是該程序執行的結果或該描述的輸出; 如是對象是數據庫查詢(xún), 則GET取回的是本次查詢(xún)的結果。例如, 如果用戶(hù)在瀏覽器中選定一個(gè)超文本鏈, 則瀏覽器將會(huì )用GET方法取回該網(wǎng)頁(yè)。GET還可以用來(lái)指定一個(gè)數據庫查詢(xún)。例如: GET/cgi bin/wais.pl? key1+key2?
其中,key1和key2是查找WAIS數據庫的關(guān)鍵字(即查詢(xún)條件)。查詢(xún)結果是滿(mǎn)足查詢(xún)條件的數據組合。
·POST: 當客戶(hù)向服務(wù)器傳送大量的數據,并要求服務(wù)器和公共網(wǎng)關(guān)接口CGI(Common GatewayInterface)程序作進(jìn)一步處理時(shí)要使用POST方法。例如, 發(fā)送HTML FORM內容, 可讓CGI程序進(jìn)行處理。這時(shí), FORM內容的URL編碼將隨請求一起發(fā)出。
②普通頭(General Header)是對請求信息的一般說(shuō)明。
③請求頭(Request Header)給出了所傳送數據對象的類(lèi)型、長(cháng)度、壓縮方法以及編程語(yǔ)言等。服務(wù)器將根據請求頭來(lái)解釋和處理本次請求。例如, 服務(wù)器將根據數據的類(lèi)型和長(cháng)度動(dòng)態(tài)地分配空間, 以存放FORM的內容。
④實(shí)體頭(Entity Header)提供了對實(shí)體的進(jìn)一步描述。
⑤實(shí)體體(Entity Body)是客戶(hù)進(jìn)行POST請求時(shí)的FORM內容, 提供給服務(wù)器的CGI程序作進(jìn)一步處理。
2.應答塊
在HTTP中, 服務(wù)器的應答信息將按下列結構來(lái)組織:
description: HTTPversion Statuscode Reasonphrase
GeneralHeader
ResponseHeader
EntityHeader
EntityBody
同樣, 應答塊中的各個(gè)字段也是根據不同的應答內容任選的。
①描述行(description)給出了HTTP協(xié)議版本號、狀態(tài)碼和原因短語(yǔ)。主要說(shuō)明了服務(wù)器是否成功地執行了客戶(hù)請求及其原因。
②普通頭(General Header)是對返回信息的一般說(shuō)明。
③應答頭(Response Header)主要給出了服務(wù)器程序名、通知客戶(hù)所請求的URL需要認證、所請求的資源需要經(jīng)過(guò)多長(cháng)時(shí)間才能使用等信息。
④實(shí)體頭(Entity Header)提供了有關(guān)本次所返回對象的信息。瀏覽器將根據這些信息來(lái)解釋所返回的對象。它主要有實(shí)體信息的類(lèi)型、長(cháng)度、壓縮方法、最后一次修改的時(shí)間及數據有效期等。
⑤實(shí)體體(Entity Body)是服務(wù)器應答對象的本身, 可以是任何格式的超媒體文件。
2.2 Web服務(wù)器軟件
Web服務(wù)器軟件提供多媒體信息發(fā)布服務(wù),這些信息按網(wǎng)頁(yè)形式來(lái)組織和存儲,而網(wǎng)頁(yè)則采用 HTML 語(yǔ)言來(lái)編寫(xiě)。對于Web服務(wù)器軟件來(lái)說(shuō), 除了提供響應瀏覽器的請求發(fā)送網(wǎng)頁(yè)的基本功能外, 還提供了很多其它系統功能,如系統管理、安全管理、編程接口、網(wǎng)頁(yè)編輯、用戶(hù)跟蹤等。
目前,Web服務(wù)器軟件有很多種,這些Web服務(wù)器軟件一般都基于某種操作系統平臺,并各具特色。例如,Microsoft公司的基于Windows NT平臺的IIS(Internet Information Server);Netscape公司的基于Windows NT和UNIX平臺的Enterprise Server;Silicon Ghaphics公司的基于UNIX平臺的WebFore Series以及基于Linux平臺的共享軟件Apache等。
2.3 Web客戶(hù)軟件
通常把Web客戶(hù)軟件稱(chēng)為瀏覽器。它主要用于連接Web服務(wù)器、解釋執行由HTML 編寫(xiě)的文檔, 并將執行結果顯示在客戶(hù)機屏幕上。Web瀏覽器不僅提供了網(wǎng)頁(yè)的查找和顯示功能,而且還提供了網(wǎng)頁(yè)管理功能以及其它客戶(hù)工具。
目前, 瀏覽器軟件有很多種,比較著(zhù)名的瀏覽器有Microsoft公司的IE(Internet Explorer)、Netscape通信公司的Navigator以及SUN公司的Hot Java等。最流行的Web瀏覽器是IE瀏覽器,Microsoft公司采取將IE瀏覽器與Windows平臺捆綁一起銷(xiāo)售的策略,使IE瀏覽器擁有眾多的用戶(hù),占有很大的市場(chǎng)份額。
3 FTP協(xié)議
FTP是一種基于TCP的應用層協(xié)議, 也是UNIX系統中提供的一種重要的網(wǎng)絡(luò )服務(wù),并被廣泛用于Internet中。FTP主要用于在兩個(gè)主機之間傳輸各種文件,它采用客戶(hù)/服務(wù)器模式,FTP客戶(hù)程序必須與遠程的FTP服務(wù)器建立連接并登錄后, 才能進(jìn)行文件傳輸。通常, 一個(gè)用戶(hù)必須在FTP服務(wù)器進(jìn)行注冊, 即建立用戶(hù)賬號, 擁有合法的用戶(hù)名和口令后, 才有可能進(jìn)行有效的FTP連接、登錄和傳輸文件。RFC 959文檔詳細描述了FTP功能。
在Internet中,存在著(zhù)成千上萬(wàn)個(gè)FTP服務(wù)器, 要求用戶(hù)在每個(gè)FTP服務(wù)器上都建立用戶(hù)賬號是不現實(shí), 也是不可能的。實(shí)際上, Internet中的FTP服務(wù)采用匿名(anonymous)FTP服務(wù)方式, 即FTP服務(wù)器的提供者設置了一個(gè)特殊的用戶(hù)名anonymous提供公眾使用, 任何用戶(hù)都可以使用這個(gè)用戶(hù)名與提供這種匿名FTP服務(wù)的主機建立連接, 并共享這個(gè)主機對公眾開(kāi)放的資源。匿名FTP的用戶(hù)名是anonymous; 而密碼通常是“guest”或者是使用者的E-mail地址。
當用戶(hù)登錄到匿名FTP服務(wù)器后, 其工作方式與常規FTP相同。通常, 出于安全的目的, 大多數匿名FTP服務(wù)器只允許下載(Download)文件, 而不允許上載(Upload)文件。也就是說(shuō), 用戶(hù)只能從匿名FTP服務(wù)器拷貝所需的文件, 而不能將文件拷貝到匿名FTP服務(wù)器上。此外, 匿名FTP服務(wù)器中的文件還加入一些保護措施, 確保這些文件不能被修改和刪除, 同時(shí)也可以防止計算機病毒的侵入。
Internet上眾多的匿名FTP服務(wù)器形成一個(gè)巨大的文件庫, 這些文件包含了各種各樣的信息、數據和軟件(源程序和可執行程序)。通過(guò)FTP傳輸的文件可以是文本文件(ASCII碼), 也可以是二進(jìn)制(binary)文件,用戶(hù)可使用FTP命令(ASCII/binary)來(lái)定義文件類(lèi)型。
3.1 FTP系統組成
FTP是基于客戶(hù)/服務(wù)器模式的服務(wù)系統。它由客戶(hù)軟件、服務(wù)器軟件和FTP通信協(xié)議等三部分組成。
FTP客戶(hù)軟件運行在用戶(hù)計算機上。用戶(hù)裝入FTP客戶(hù)軟件后, 便可以使用FTP內部命令與遠程FTP服務(wù)器建立連接,上載或下載文件。
FTP服務(wù)器軟件運行在遠程主機上, 可以為一些可信的用戶(hù)注冊用戶(hù)賬號, 也可以設置一個(gè)名叫anonymous的公共用戶(hù)賬號, 向公眾開(kāi)放。
FTP協(xié)議在客戶(hù)與服務(wù)器之間建立兩條TCP連接:一條是控制連接,TCP端口為21, 主要用于傳輸命令和參數; 另一條是數據連接, TCP端口為20,主要用于傳送數據。
FTP服務(wù)器不斷在一個(gè)周知的21號TCP端口上偵聽(tīng)用戶(hù)的連接請求。當用戶(hù)發(fā)出連接請求后, 其控制連接便會(huì )建立起來(lái);然后,客戶(hù)使用已注冊的用戶(hù)名和口令,或者使用“anonymous”用戶(hù)名和“guest/用戶(hù)E-mail地址”口令進(jìn)行登錄。這時(shí), 用戶(hù)名和口令通過(guò)控制連接發(fā)送給服務(wù)器。服務(wù)器接收到這個(gè)請求后, 首先認證用戶(hù)身份, 然后向客戶(hù)回送確認或拒絕的應答信息。用戶(hù)看到登錄成功的信息后, 便可以發(fā)出文件傳輸的命令。服務(wù)器從控制連接上接收到文件名和傳輸命令(如get) 后, 便在20號TCP端口上發(fā)起數據連接, 在這個(gè)連接上進(jìn)行數據傳輸,將文件名所指明的文件傳輸給客戶(hù)。只要用戶(hù)不使用close或者bye/quit命令關(guān)閉連接, 就可以繼續傳輸其它文件。
3.2 FTP使用操作
FTP的使用操作也很簡(jiǎn)單。首先運行FTP客戶(hù)程序, 這時(shí)可以直接后綴一個(gè)域名或IP地址與遠程FTP服務(wù)器建立連接(>ftp 域名/IP地址), 或者進(jìn)入FTP后使用open命令來(lái)建立連接(ftp>open 域名/IP地址)。當連接建立起來(lái)后, 系統會(huì )提示用戶(hù)輸入用戶(hù)名和密碼。當用戶(hù)輸入正確的用戶(hù)名和口令后, 系統會(huì )給出登錄成功的顯示信息。這時(shí), 用戶(hù)就可以使用FTP命令進(jìn)行文件傳輸或其它操作了。
FTP命令有很多, 但常用的命令只有幾種, 對于匿名FTP更是如此。表5.8給出了FTP常用的命令。
常用命令 功能描述
help(或?)
顯示所有ftp命令的清單
help命令(或? 命令)
顯示指定ftp命令的簡(jiǎn)介
!
暫停ftp, 在本地主機上調用一個(gè)shell
! 命令
在本地主機上調用一個(gè)指定的shell
bye (或quit)
終止與ftp服務(wù)器的連接, 退出ftp程序
close
終止與ftp服務(wù)器的連接, 但不退出ftp程序
open [主機地址]
與指定的ftp服務(wù)器建立連接
user[用戶(hù)名[密碼]
在遠程ftp服務(wù)器上進(jìn)行用戶(hù)登錄
ascii
傳輸文件類(lèi)型設置為文本文件
binary
傳輸文件類(lèi)型設置為二進(jìn)制文件
hash
設置每傳輸一個(gè)數據塊將顯示一個(gè)“?!弊址?div style="height:15px;">
Telnet協(xié)議是一種基于TCP的應用層協(xié)議, 也是UNIX系統中提供的一種重要的網(wǎng)絡(luò )服務(wù),并被廣泛用于Internet中。在Telnet協(xié)議支持下,用戶(hù)計算機可以與遠程主機建立遠程連接, 并作為該遠程主機的終端來(lái)使用。由于這種服務(wù)基于Telnet協(xié)議且使用Telnet命令進(jìn)行遠程登錄, 故稱(chēng)為T(mén)elnet遠程登錄。當
用戶(hù)使用Telnet登錄遠程主機時(shí), 該用戶(hù)必須在這個(gè)遠程主機上擁有合法的賬號和口令, 否則遠程主機將會(huì )拒絕登錄。RFC 959文檔詳細描述了Telnet功能。
此外, 很多Internet中的主機都提供了某種形式的公眾Telnet服務(wù), 這種服務(wù)對每一個(gè)Internet用戶(hù)都是開(kāi)放的, 只要知道遠程主機的地址, 無(wú)需口令就能登錄到這個(gè)遠程主機上。
①建立與遠程主機的TCP連接。它在一個(gè)周知的23號TCP端口上打開(kāi)一個(gè)套接字。如果遠程主機上的Telnet服務(wù)器軟件一直在這個(gè)周知的端口上偵聽(tīng)連接請求, 則這個(gè)連接便會(huì )建立起來(lái)。
Telnet的使用操作比較簡(jiǎn)單。首先, 運行Telnet客戶(hù)程序, 在運行Telnet程序時(shí), 可以直接后綴一個(gè)遠程主機的域名或IP地址來(lái)建立與該遠程主機的連接(>Telnet域名/IP地址), 或者進(jìn)入Telnet后用open命令來(lái)建立連接(Telnet>open域名/IP地址)。當連接建立起來(lái)后, 系統會(huì )提示用戶(hù)進(jìn)行登錄, 即在“Login: ”后面鍵入用戶(hù)的注冊名。除非是一個(gè)公共賬戶(hù), 否則系統提示用戶(hù)輸入口令。當用戶(hù)的注冊名和口令被遠程主機確認后, 用戶(hù)計算機就成為該遠程主機的一個(gè)終端, 就可以進(jìn)行聯(lián)機操作了。
Telnet本身是一種應用層協(xié)議, 故在使用Telnet時(shí)可以把它看成是一種系統命令。Telnet 命令有很多, 但經(jīng)常使用的命令只有幾種, 表5.9給出了Telnet常用的命令。
電子郵件(Electronic Mail, 簡(jiǎn)稱(chēng)E-mail)是一種通過(guò)計算機網(wǎng)絡(luò )與其他用戶(hù)進(jìn)行聯(lián)系的快速、簡(jiǎn)便、高效、價(jià)廉的現代化通信手段, 也是Internet中最廣泛使用的應用服務(wù)之一。很多用戶(hù)都是從收發(fā)電子郵件開(kāi)始熟識Internet的。
最初的電子郵件系統采用的是文件傳輸協(xié)議,隨著(zhù)時(shí)間的推移,這種電子郵件系統暴露出很多的缺陷。于是,人們研究和開(kāi)發(fā)出了更加完善的電子郵件系統。
首先,在RFC 821(傳輸協(xié)議)和RFC 822(消息格式)中發(fā)表了ARPANET電子郵件建議,后來(lái)被Internet采納,成為事實(shí)上的Internet電子郵件標準。
ISO/OSI則定義了一種稱(chēng)為MOTIS (Message-Oriented Txet Interchange Systems)的電子郵件協(xié)議,提出了電子郵件系統的體系結構,引入一些新的概念,為理解和實(shí)現電子郵件系統提供了理論參考模型。ITU提出了一種稱(chēng)為 X.400的電子郵件建議書(shū),它和MOTIS基本一致。 由于X.400電子郵件系統過(guò)于復雜,實(shí)現成本太高。因此,現在的大多數電子郵件系統都是基于Internet電子郵件標準。
電子郵件與普通信件一樣要有一定的書(shū)寫(xiě)格式。一個(gè)電子郵件由郵件頭(Mail Header)和郵件體(Mail Body)組成。郵件頭相當于“信封”,由收信人電子郵箱地址(To:)、發(fā)信人電子郵箱地址(From:)和信件標題(Subject:)等三部分構成;郵件體相當于“信紙”,即是實(shí)際要傳送的內容。
電子郵件地址采用標準Internet地址的形式:用戶(hù)名@域名。其中,域名指示用戶(hù)郵箱所在的E-mail服務(wù)器的地址,用戶(hù)名是用戶(hù)郵箱的名稱(chēng)。
(3) 狀態(tài)報告:向發(fā)送者報告電子郵件的傳輸狀態(tài),如送到、拒絕或丟失等,這是很重要的功能,以便于發(fā)送者了解電子郵件是否傳輸到接收者。
(4) 郵件顯示:為用戶(hù)顯示所接收到的郵件。對于某些格式的郵件,可能需要進(jìn)行格式轉化,或者啟動(dòng)一個(gè)特定的閱讀器,如音頻郵件等。
根據MOTIS協(xié)議,一個(gè)電子郵件系統由兩部分組成:用戶(hù)代理UA (User Agent)和消息傳輸代理MTA (Message Transfer Agent)。UA運行在用戶(hù)的個(gè)人計算機上,它提供一種用戶(hù)界面,負責處理郵件編輯、接收、回復以及郵箱管理等;MTA是電子郵局,運行在一個(gè)E- mail服務(wù)器上,它為用戶(hù)提供電子郵箱,并負責電子郵件傳送和投遞。
在實(shí)際電子郵件系統中,用戶(hù)必須首先擁有一個(gè)電子郵箱,才能利用E-mail系統來(lái)收發(fā)郵件。電子郵箱是建立在E-mail服務(wù)器磁盤(pán)上的專(zhuān)用存儲區域,由系統管理員管理,并分配給用戶(hù)。當用戶(hù)登錄到自己的電子郵箱后,便可以使用E-mail客戶(hù)軟件來(lái)收發(fā)電子郵件了。E-mail服務(wù)器充當“電子郵局”的角色,它除了為用戶(hù)提供電子郵箱外, 還承擔著(zhù)信件的投遞業(yè)務(wù)。當用戶(hù)與E-mail服務(wù)器建立連接發(fā)送一個(gè)電子郵件后,E-mail服務(wù)器將按收信人地址選擇適當的路徑把電子郵件發(fā)送給網(wǎng)絡(luò )中的下一個(gè)節點(diǎn),通過(guò)網(wǎng)絡(luò )若干中間節點(diǎn)的“存儲—轉發(fā)”式的傳遞,最終把郵件投遞到目的地,即收信人的電子郵箱里。當收信人聯(lián)機進(jìn)入自己電子郵件箱時(shí),就可以查閱到該郵件了。
郵件傳輸協(xié)議規定了在發(fā)信人和收信人之間傳輸郵件消息時(shí)所采用的通信機制和方法。在 TCP/IP網(wǎng)絡(luò )環(huán)境中,常用的郵件傳輸協(xié)議有簡(jiǎn)單郵件傳輸協(xié)議SMTP(Simple Mail Transfer Protocol)、多用途因特網(wǎng)郵件擴展MIME (Multipurpose Internet Mail Extensions)協(xié)議、郵局協(xié)議POP3(Post Office Protocol)、交互式電子郵件訪(fǎng)問(wèn)協(xié)議IMAP(Interactive Mail Access Protocol)以及分布式郵件系統協(xié)議DMSP(Distributed Mail System Protocol)等。為了保護電子郵件的隱私性和安全性,人們還提出和開(kāi)發(fā)了一些安全電子郵件協(xié)議,如PGP(Pretty Good Privacy)、PEM(Privacy Enganced Mail)和S/MIME等,它們主要采用電子郵件加密和簽名等方法來(lái)保護電子郵件的安全。PGP和PEM主要用于保護個(gè)人電子郵件,而S/MIME協(xié)議主要為企業(yè)網(wǎng)環(huán)境中的電子郵件系統提供了安全保護.
SMTP協(xié)議描述了電子郵件的消息格式及其傳輸方法,保證被傳送的電子郵件能夠正確地尋址和可靠地傳輸。在SMTP協(xié)議中,發(fā)送主機(作為客戶(hù))首先使用25號TCP端口與接收主機(作為服務(wù)器)建立TCP連接,然后兩者之間通過(guò)交換一些控制消息來(lái)協(xié)商郵件傳輸,如果接收主機同意接收郵件,則發(fā)送主機發(fā)出郵件消息,接收主機根據郵件地址將所接收的郵件存放在適合的郵箱里,如果發(fā)現郵件無(wú)法投遞,則向發(fā)送主機返回錯誤消息。當兩者之間的所有郵件都交換完后,則釋放該連接。
如果發(fā)信人和收信人處于同一郵件服務(wù)器上,它們之間可以直接交換郵件。否則,需要通過(guò)一個(gè)或多個(gè)SMTP服務(wù)器進(jìn)行轉發(fā)和中繼。在SMTP協(xié)議中,郵件消息格式是由RFC 822定義的,一個(gè)郵件消息由郵件頭和郵件體組成,郵件頭包括收信人電子郵箱地址、發(fā)信人電子郵箱地址、郵件轉發(fā)說(shuō)明、收信人返回路徑以及其它一些標志和說(shuō)明信息等字段。郵件體在郵件頭之后,它是用ASCII碼表示的郵件內容。
SMTP是一個(gè)面向文本的傳輸協(xié)議,只支持文本形式的電子郵件的傳輸。如果通過(guò)E-mail 系統來(lái)傳輸二進(jìn)制數據或文件,則要使用MIME協(xié)議,它除了支持二進(jìn)制文件傳輸外,也支持常規的文本文件傳輸。MIME協(xié)議是由RFC 1341和RFC1521文檔定義的,RFC1521是RFC 1341的修訂版。MIME協(xié)議擴展了電子郵件的消息格式,它由郵件頭和郵件體組成,郵件頭定義了郵件的發(fā)送方和接收方有關(guān)信息;郵件體是郵件數據,可以是各種數據類(lèi)型。在MIME協(xié)議中,數據類(lèi)型一般是復合型的,也稱(chēng)為復合數據,它允許將不同類(lèi)型的數據(如圖像、音頻和格式化文本等)嵌入到同一個(gè)郵件體中進(jìn)行傳送。在包含復合數據的郵件體中,設有邊界標志,以標明每種類(lèi)型數據的開(kāi)始和結束。在支持MIME協(xié)議的E-mail系統中,一個(gè)二進(jìn)制文件將作為電子郵件的附件隨電子郵件一起發(fā)送出去。接收端的MIME協(xié)議將會(huì )通知收信人該電子郵件含有附件,并自動(dòng)將附件分離出來(lái),存入到一個(gè)文件中,供收信人讀取。由于MIME協(xié)議大大擴展了電子郵件的應用范圍,因此一般的電子郵件系統都支持MIME協(xié)議。
在一個(gè)內部網(wǎng)中,用戶(hù)所使用的PC機并不是直接連入Internet上,不能在 Internet上接收或發(fā)送郵件,一般由內部網(wǎng)設立的E-mail服務(wù)器來(lái)接收或發(fā)送郵件。在這種情況下,用戶(hù)PC機必須使用POP3協(xié)議從遠程的E- mail服務(wù)器郵箱中讀取郵件。POP3協(xié)議由RFC 1225文檔定義,它提供了用戶(hù)登錄、讀取郵件、刪除郵件和退出等命令,協(xié)議本身由ASCII文本和一些類(lèi)似于SMTP的文件組成,它的關(guān)鍵之處是從遠程郵箱中讀取郵件,然后存放用戶(hù)PC機上,以便于以后閱讀。因此,對于一個(gè)擁有遠程郵箱的用戶(hù)來(lái)說(shuō),發(fā)送郵件時(shí)使用SMTP協(xié)議,而從遠程郵箱讀取郵件時(shí)使用POP3協(xié)議。
用戶(hù)在E-mail系統時(shí),必須首先在E-mail服務(wù)器注冊一個(gè)用戶(hù)名,并獲得一個(gè)電子郵箱。然后可以使用E-mail客戶(hù)軟件來(lái)收發(fā)電子郵件。E-mail客戶(hù)軟件是用戶(hù)用來(lái)收發(fā)和管理電子郵件的軟件,在UNIX/Linux系統上的E- mail客戶(hù)軟件大都是基于命令行的,而Windows系統上的E-mail客戶(hù)軟件采用圖形化方式,具有形象直觀(guān)、無(wú)需記憶很多繁雜的命令、操作方便、簡(jiǎn)單易學(xué)等特點(diǎn),典型的是微軟公司的Outlook Express軟件。