第9章應(yīng)用層
第9章 應(yīng)用層 223第九章 應(yīng)用層在前面幾章中,我們就應(yīng)用層下面的各層進(jìn)行了討論,并介紹了主流的局域網(wǎng)技術(shù)和廣域網(wǎng)技術(shù),本章我們將討論重點(diǎn)轉(zhuǎn)向應(yīng)用層。應(yīng)用層是OSI 參考模型的最高層,它直接為用戶提
第9章 應(yīng)用層 223
第九章 應(yīng)用層
在前面幾章中,我們就應(yīng)用層下面的各層進(jìn)行了討論,并介紹了主流的局域網(wǎng)技術(shù)和廣域網(wǎng)技術(shù),本章我們將討論重點(diǎn)轉(zhuǎn)向應(yīng)用層。應(yīng)用層是OSI 參考模型的最高層,它直接為用戶提供服務(wù),如果沒(méi)有應(yīng)用層,下面各層的存在就失去了意義。Internet 技術(shù)的發(fā)展已經(jīng)極大促進(jìn)了TCP/IP應(yīng)用層協(xié)議的發(fā)展。因此,本章我們以TCP/IP 應(yīng)用層為例,介紹常見(jiàn)的TCP/IP應(yīng)用服務(wù)與應(yīng)用支撐協(xié)議。本章建議教學(xué)時(shí)數(shù)為6- 7學(xué)時(shí),本章學(xué)習(xí)導(dǎo)航參見(jiàn)表9.1。
表9.1 第9章學(xué)習(xí)導(dǎo)航 驅(qū)動(dòng)問(wèn)題
在Internet 上,常用的應(yīng)用有哪些,這些應(yīng)用所
使用的相應(yīng)的支撐協(xié)議分別是什么? 涉及的知識(shí)點(diǎn) 常見(jiàn)的應(yīng)用層協(xié)議 學(xué)習(xí)要求 掌握
理解
掌握
掌握
理解 應(yīng)用層的協(xié)議如何使用傳輸層為其提供的服務(wù)應(yīng)用層協(xié)議與傳輸層協(xié)議之間的關(guān)系 DNS 的作用是什么?其工作原理是怎樣? 在Internet 網(wǎng)上,我們?cè)趺床拍苷业较鄳?yīng)的信息資源。網(wǎng)頁(yè)是用什么語(yǔ)言寫(xiě)的? 發(fā)送電子郵件時(shí)需要郵件接收的用戶必須同時(shí)
在線嗎?
可以用一個(gè)自己的本地計(jì)算機(jī)直接操縱遠(yuǎn)程計(jì)
算機(jī),并且像使用本地主機(jī)一樣使用遠(yuǎn)程主機(jī)的
資源嗎? 域、域名服務(wù)器、DNS 的工作原理 URL、HTML、HTTP e-mail 的工作原理 郵件地址及相應(yīng)的郵件協(xié)議 TELNET的工作原理 理解
9.1 TCP/IP的應(yīng)用層
應(yīng)用層是TCP/IP模型的最高層,其通過(guò)使用傳輸層所提供的服務(wù),直接向用戶提供服務(wù),是TCP/IP網(wǎng)絡(luò)與用戶之間的界面或接口。該層由若干面向用戶提供服務(wù)的應(yīng)用協(xié)議和支持這些應(yīng)用的支撐協(xié)議組成,基于這些協(xié)議,應(yīng)用層向用戶提供了眾多的網(wǎng)絡(luò)應(yīng)用。
TCP/IP應(yīng)用層上的典型應(yīng)用包括WEB 瀏覽、電子郵件、文件傳輸訪問(wèn)和遠(yuǎn)程登錄等,與這些應(yīng)用相關(guān)的協(xié)議包括超文本傳輸協(xié)議(HTTP )、簡(jiǎn)單郵件傳輸協(xié)議(SMTP )、文件
,224《計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)》
傳輸協(xié)議(FTP )、簡(jiǎn)單文件傳輸協(xié)議(TFTP )和虛擬終端協(xié)議(Telnet )。
HTTP :用來(lái)在瀏覽器和WWW 服務(wù)器之間傳送超文本的協(xié)議。
SMTP :用于實(shí)現(xiàn)電子郵件傳輸?shù)膽?yīng)用協(xié)議。
FTP :用于實(shí)現(xiàn)文件傳輸服務(wù)的協(xié)議。通過(guò)FTP 用戶可以方便地連接到遠(yuǎn)程服務(wù)
器上,可以進(jìn)行查看、刪除、移動(dòng)、復(fù)制、更名遠(yuǎn)程服務(wù)器上的文件內(nèi)容的操作,并能進(jìn)行上傳文件和下載文件等操作。
TFTP :用于提供小而簡(jiǎn)單的文件傳輸服務(wù)。從某個(gè)意義上來(lái)說(shuō),TFTP 是對(duì)FTP
的一種補(bǔ)充,特別是在文件較小并且只有傳輸需求的時(shí)候該協(xié)議顯得更加有效率。 Telnet :實(shí)現(xiàn)虛擬或仿真終端的服務(wù),允許用戶把自己的計(jì)算機(jī)當(dāng)作遠(yuǎn)程主機(jī)上的
一個(gè)終端連接到遠(yuǎn)程計(jì)算機(jī),并使用基于文本界面的命令控制和管理遠(yuǎn)程主機(jī)上的文件及其他資源。
為了使用戶更加可靠、高效地訪問(wèn)網(wǎng)絡(luò)應(yīng)用服務(wù), TCP/IP模型的應(yīng)用層還提供了一些專門(mén)的應(yīng)用支撐協(xié)議,如域名服務(wù)系統(tǒng)(DNS )、簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議(SNMP )等。
DNS :用于實(shí)現(xiàn)域名和IP 地址之間的相互轉(zhuǎn)換。
SNMP :由于因特網(wǎng)結(jié)構(gòu)復(fù)雜,擁有眾多的操作者,因此需要好的工具進(jìn)行網(wǎng)絡(luò)管
理,以確保網(wǎng)絡(luò)運(yùn)行的可靠性和可管理性。而SNMP 提供了一種監(jiān)控和管理計(jì)算機(jī)網(wǎng)絡(luò)的有效方法,它已成為計(jì)算機(jī)網(wǎng)絡(luò)管理的事實(shí)標(biāo)準(zhǔn)。
圖9.1給出了上述的應(yīng)用層協(xié)議與傳輸層TCP 、UDP 協(xié)議及其端口之間的關(guān)系。應(yīng)用層協(xié)議根據(jù)所使用的傳輸層服務(wù)的不同可以分為三類:一類是基于面向連接的TCP 協(xié)議,如HTTP 、FTP 、SMTP 和TELNET 等;另一類是基于無(wú)連接的UDP 協(xié)議,如SNMP 、TFTP 和 DHCP等;還有一類既可基于TCP 協(xié)議,也可基于UDP 協(xié)議,如DNS 。
圖9.1常見(jiàn)應(yīng)用層協(xié)議與TCP 、UDP 協(xié)議之間的關(guān)系
9.2 DNS服務(wù)
任何TCP/IP應(yīng)用在網(wǎng)絡(luò)層都是基于IP 協(xié)議實(shí)現(xiàn)的,需要用IP 地址來(lái)實(shí)現(xiàn)主機(jī)的邏輯尋址。但是32位二進(jìn)制長(zhǎng)度的IP 地址非常難以記憶,即使采用點(diǎn)分十進(jìn)制表示,也不具備足夠的可記憶性。為了便于用戶使用網(wǎng)絡(luò)服務(wù),我們引入了更容易記憶的ASCII 串符號(hào)來(lái)替代IP 地址,這種特殊用途的ASCII 串被稱為域名。例如,人們很容易記住代表溫州大學(xué)網(wǎng)站的域名“www.wzu.edu.cn ”,但是如果要求人們記得溫州大學(xué)網(wǎng)站的IP 地址
,第9章 應(yīng)用層 225
“218.75.16.107”恐怕就很難了。但是,一旦引入了域名,就需要為應(yīng)用程序提供關(guān)于域名和IP 地址之間的映射服務(wù),否則應(yīng)用進(jìn)程就無(wú)法借助域名來(lái)實(shí)現(xiàn)主機(jī)的IP 尋址。
域名與IP 地址之間的映射在上個(gè)世紀(jì)70年代由網(wǎng)絡(luò)信息中心(NIC )負(fù)責(zé)完成。NIC 記錄所有的域名地址和IP 地址的映射關(guān)系,并負(fù)責(zé)將記錄的地址映射信息分發(fā)給接入因特網(wǎng)的所有最低級(jí)域名服務(wù)器(僅管轄域內(nèi)的主機(jī)和用戶)。每臺(tái)域名服務(wù)器上維護(hù)一個(gè)稱之為“hosts.txt ”的文件,記錄其它各域的域名服務(wù)器及其對(duì)應(yīng)的IP 地址。NIC 負(fù)責(zé)所有域名服務(wù)器上“hosts.txt ”文件的一致性。主機(jī)之間使用域名的通信通過(guò)查閱域名服務(wù)器上的hosts.txt 文件來(lái)獲得IP 地址。但是,隨著網(wǎng)絡(luò)規(guī)模的擴(kuò)大和接入網(wǎng)絡(luò)的主機(jī)數(shù)的增加,要求每臺(tái)域名服務(wù)器都能容納所有的域名地址信息就變得極不現(xiàn)實(shí),同時(shí)對(duì)不斷增大的“hosts.txt ”文件一致性的維護(hù)也浪費(fèi)了大量的網(wǎng)絡(luò)系統(tǒng)資源。
為了解決這些問(wèn)題,提出了域名系統(tǒng)(domain name system,簡(jiǎn)稱DNS ),它通過(guò)分級(jí)的域名服務(wù)和管理功能提供了高效的域名解釋服務(wù)。DNS 包括域、域名、主機(jī)和域名服務(wù)器四大要素。
9.2.1域、域名和域名空間
域(Domain )指由地理位置或業(yè)務(wù)類型而聯(lián)系在一起的一組計(jì)算機(jī)構(gòu)成的一種集合,一個(gè)域內(nèi)可以容納多臺(tái)主機(jī)。在域中,所有主機(jī)用域名(Domain name)來(lái)標(biāo)識(shí),域名由字符和(或)數(shù)字組成,用于替代主機(jī)的IP 地址。當(dāng)因特網(wǎng)的規(guī)模不斷增大時(shí),域和域中所擁有的主機(jī)數(shù)目也隨之增大,管理一個(gè)大而經(jīng)常變化的域名集合是非常復(fù)雜的,為此提出了一種基于域的分級(jí)命名機(jī)制,并得到了分級(jí)結(jié)構(gòu)的域名空間。域名空間的分級(jí)結(jié)構(gòu)有點(diǎn)類似于郵政系統(tǒng)中的分級(jí)地址結(jié)構(gòu),如“中國(guó) 浙江省 溫州大學(xué) 城市學(xué)院 張三”。
圖9.2給出了關(guān)于域名空間分級(jí)結(jié)構(gòu)的示意,整個(gè)形狀如一棵倒立的樹(shù)。根結(jié)點(diǎn)不代表任何具體的域,被稱為根域(root);在根域之下,是幾百個(gè)頂級(jí)(top-level )域,每個(gè)頂級(jí)域除了可以包括許多主機(jī)外,還可以被進(jìn)一步劃分為子域;子域之下除了可以有主機(jī)外,也可以有更小的子域;圖中的葉子結(jié)點(diǎn)代表沒(méi)有子域的域,但這種葉子域可以包含若干臺(tái)主機(jī)。
頂級(jí)域由一般域和國(guó)家域組成。一般域最初只有六個(gè),分別是COM (商業(yè)機(jī)構(gòu))、EDU (教育單位)、GOV (政府部門(mén))、MIL (軍事單位)、NET (提供網(wǎng)絡(luò)服務(wù)的系統(tǒng))和ORG (非COM 類的組織),后來(lái)又增加了一個(gè)為國(guó)際組織所使用的INT ;國(guó)家級(jí)域是指代表不同國(guó)家或地區(qū)的頂級(jí)域,如CN 表示中國(guó)、UK 表示英國(guó)、FR 表示法國(guó)、JP 表示日本、HK 代表香港等等。幾乎所有美國(guó)組織都處于一般域中,而幾乎所有非美國(guó)的組織都列在其所在國(guó)的域下面。
采用分級(jí)結(jié)構(gòu)的域名空間后,每個(gè)節(jié)點(diǎn)就采用從該節(jié)點(diǎn)往上到根的路徑命名,稱之為域名。在域名的書(shū)寫(xiě)中,路徑名的長(zhǎng)度最多達(dá)63個(gè)字符,路徑名之間用圓點(diǎn)“. ”分隔,路徑全名則不能超過(guò)255個(gè)字符。例如,在圖9.2中關(guān)于溫州大學(xué)的域名就應(yīng)表達(dá)為“wzu.edu.cn ”。注意,域名對(duì)大小寫(xiě)不敏感,所以“edu ”和“EDU ”的寫(xiě)法是一樣的。
在分級(jí)結(jié)構(gòu)的域名系統(tǒng)中,每個(gè)域都對(duì)分配其下面的子域存在控制權(quán),并負(fù)責(zé)登記自己所有的子域。要?jiǎng)?chuàng)建一個(gè)新的子域,必須征得其所屬域的同意。例如,若溫州大學(xué)希望
,226《計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)》
自己的域名為“wzu.edu.cn ”,則需要向“edu.cn ”的域管理者提出申請(qǐng)并獲得批準(zhǔn)。采取這種方式,可以避免同一域中的名字沖突。一旦一個(gè)新的子域被創(chuàng)建和登記,那么這個(gè)子域就可以創(chuàng)建自己的子域而無(wú)須再征得它的上一級(jí)域的同意。例如,若溫州大學(xué)想在其域下創(chuàng)建一個(gè)名為“cs ”的子域,就不需要再征得“edu.cn ” 域管理者的同意了。
注意,域的命名遵循的是組織界限,而不是物理網(wǎng)絡(luò)。位于同一物理網(wǎng)絡(luò)內(nèi)的主機(jī)可以屬于不同的域,而位于同一域內(nèi)的主機(jī)也可屬于不同的物理網(wǎng)絡(luò)。 通用的robot
圖9.2 域名空間示意圖
9.2.2域名解析
在因特網(wǎng)中向主機(jī)提供域名解析服務(wù)的機(jī)器被稱為域名服務(wù)器或名字服務(wù)器。從理論上,一臺(tái)名字服務(wù)器就可以包括整個(gè)DNS 數(shù)據(jù)庫(kù),并響應(yīng)所有的查詢。但實(shí)際上這樣DNS 服務(wù)器就會(huì)由于負(fù)載過(guò)重而不能運(yùn)行。于是,與分級(jí)結(jié)構(gòu)的域名空間相對(duì)應(yīng),用于域名解析的域名系統(tǒng)DNS 在實(shí)現(xiàn)上也采用了層次化模式,類似于分布式數(shù)據(jù)庫(kù)查詢系統(tǒng)。
域名解析使用可以使用UDP 協(xié)議,也可以使用TCP 協(xié)議,其端口號(hào)為53。提出DNS 解析請(qǐng)求的主機(jī)與域名服務(wù)器之間采用客戶機(jī)-服務(wù)器(C-S )模式工作。當(dāng)某個(gè)應(yīng)用程序需要將一個(gè)名字映射為一個(gè)IP 地址時(shí),應(yīng)用程序調(diào)用一種名為域名解析器(resolver ,參數(shù)為要解析的域名地址)的函數(shù)庫(kù),由解析器將包含DNS 請(qǐng)求的分組傳送給本地DNS 服務(wù)器上,由本地DNS 服務(wù)器負(fù)責(zé)查找名字并將IP 地址映射信息返回給解析器。解析器再把該信息返回給調(diào)用程序。本地DNS 服務(wù)器以數(shù)據(jù)庫(kù)查詢方式完成域名解析過(guò)程,并且采用了遞歸查詢。遞歸查詢的具體過(guò)程如下:
當(dāng)解析器查詢域名時(shí),它首先把查詢傳遞給本地的一臺(tái)名字服務(wù)器。
該名字服務(wù)器在本地的內(nèi)存緩沖區(qū)中搜索最近時(shí)間里解析的名稱地址。如果本地
緩沖區(qū)中找到了要解析的名稱所對(duì)應(yīng)的IP 地址,則這臺(tái)名字服務(wù)器將相應(yīng)的信息
,第9章 應(yīng)用層 227
返回給客戶機(jī)上的解析器進(jìn)程。
否則,該名字服務(wù)器在本地靜態(tài)表中搜尋,看是否在管理員錄入的DNS 表項(xiàng)中有
該主機(jī)名稱所對(duì)應(yīng)的IP 地址。如果要解析的名稱存在于靜態(tài)表中,名字服務(wù)器也
向客戶機(jī)發(fā)送相應(yīng)的IP 地址。
如果以上兩項(xiàng)都未解析出域名所對(duì)應(yīng)的IP 地址,則表示所要求解析的域名為一遠(yuǎn)
程域名,一直是這臺(tái)名字服務(wù)器會(huì)轉(zhuǎn)向根名字服務(wù)器查詢。
根名稱服務(wù)器向該域名中指定的頂層域名稱服務(wù)器搜尋,頂層域名服務(wù)器再向主
機(jī)名稱中指定的二層域名服務(wù)器搜尋,依次下去,一直到要解析的名稱全部解析
完畢。
能完全解析主機(jī)名稱的第一臺(tái)服務(wù)器將解析出的IP 地址報(bào)告給客戶機(jī)。下面我們以一個(gè)具體的實(shí)例來(lái)進(jìn)一步說(shuō)明域名解析過(guò)程。假設(shè)因特網(wǎng)上的一臺(tái)主機(jī)H 通過(guò)URL 地址“http://www.wz.zj.cn”訪問(wèn)“溫州熱線”的主頁(yè),那么該主機(jī)的瀏覽器進(jìn)程將會(huì)調(diào)用本機(jī)上的解析器以來(lái)完成解析“www.wz.zj.cn ”主機(jī)IP 地址的工作。主機(jī)H 上的解析器將關(guān)于“www.wz.zj.cn ”的解析請(qǐng)求發(fā)給該主機(jī)所連接的ISP 的域名服務(wù)器,ISP 的域名服務(wù)器查找它的DNS 數(shù)據(jù)庫(kù)文件中是否有關(guān)于“www.wz.zj.cn ”的數(shù)據(jù),如果有,直接向主機(jī)H 返回相應(yīng)的記錄;如果沒(méi)有,則ISP 的域名服務(wù)器向根服務(wù)器發(fā)送請(qǐng)求“.cn 由誰(shuí)來(lái)解析?”的請(qǐng)求,根服務(wù)器將“.cn ”頂級(jí)域名服務(wù)器的IP 地址返回給ISP 的域名服務(wù)器,ISP 的域名服務(wù)器再向“.cn ”頂級(jí)域名服務(wù)器發(fā)送請(qǐng)求“zj.cn 域由誰(shuí)來(lái)解析?”的請(qǐng)求,“.cn ”頂級(jí)域名服務(wù)器根據(jù)子域“zj.cn ”所對(duì)應(yīng)的域名服務(wù)器記錄向ISP 的域名服務(wù)器傳回“zj.cn 域由dns.zj.cn (218.244.47.45)來(lái)解析”的應(yīng)答,ISP 的域名服務(wù)器再向域名服務(wù)器“dns.zj.cn ”發(fā)送請(qǐng)求“wz.zj.cn 域的由誰(shuí)來(lái)解析?”的請(qǐng)求,域名服務(wù)器“dns.zj.cn ”根據(jù)“wz.zj.cn ”所對(duì)應(yīng)的域名服務(wù)器記錄向ISP 的域名服務(wù)器傳回“wz.zj.cn 域由wzdns1.wz.zj.cn (61.153.177.196)來(lái)解析”的應(yīng)答,ISP 的域名服務(wù)器根據(jù)傳回的域名服務(wù)器參數(shù)向域名服務(wù)器“wzdns1.wz.zj.cn ”發(fā)送請(qǐng)求“www.wz.zj.cn 的IP 地址是什么?”的請(qǐng)求,域名服務(wù)器“wzdns1.wz.zj.cn ”向ISP 的域名服務(wù)器傳www.wz.zj.cn 的IP 地址為“202.96.106.6”的應(yīng)答,ISP 的域名服務(wù)器將這個(gè)參數(shù)寫(xiě)入本地的DNS 緩存(Cache)中,并向主機(jī)H 傳回此IP 地址。
除了將域名解析為IP 地址外,系統(tǒng)有時(shí)候還需要將IP 地址解析為域名。例如,當(dāng)一臺(tái)遠(yuǎn)程主機(jī)以IP 地址方式連接到本地主機(jī)時(shí),本地主機(jī)為了確認(rèn)對(duì)方的合法性(如防止對(duì)方假冒),就可以通過(guò)域名反查的方式來(lái)判斷對(duì)方主機(jī)的真實(shí)性,這種由IP 地址解析為域名的過(guò)程被稱為逆向解析。這時(shí)就需要名為in-addr.arpa 的逆向域(reverse domains),該域內(nèi)的條目是按IP 地址組織的,用于IP 到域名的反向解析。
域名和IP 地址的映射關(guān)系在DNS 服務(wù)器中以DNS 數(shù)據(jù)庫(kù)的形式存在,該數(shù)據(jù)庫(kù)又被稱為DNS 的資源記錄(resource record)。圖9.3給出了一個(gè)DNS 數(shù)據(jù)庫(kù)的示例。DNS 庫(kù)中的每一條資源記錄共有5個(gè)字段,其數(shù)據(jù)格式形如“Domain_name Time_to_live Type Class Value”,其中:
Domain_name(域名):指出這條記錄所指向的域。通常,每個(gè)域有許多記錄。 Time_to_live(生存時(shí)間):指出記錄的穩(wěn)定性。高度穩(wěn)定的信息被賦予一個(gè)很大的
值,變化很大的信息被賦予一個(gè)較小的值。
,228《計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)》
Type (類型):指出記錄的類型。表9.2列出了一些重要的資源記錄類型。
Class (類別):對(duì)于Internet 信息,它總是IN 。對(duì)于非Internet 信息,則使用其他
代碼。
Value (值):這個(gè)字段可以是數(shù)字、域名或ASCII 串,其語(yǔ)義基于記錄類型。
表9.2 DNS資源記錄類型 類型
SOA 意義
認(rèn)證開(kāi)始記錄。提供了關(guān)于名字服務(wù)器區(qū)域(Zone )
的主要信息資源的名字。定義了DNS 區(qū)域的一般參數(shù),
包括哪個(gè)服務(wù)器是該區(qū)域的認(rèn)證服務(wù)器
主機(jī)記錄或地址記錄,用于把一個(gè)主機(jī)名與該主機(jī)的
IP 地址靜態(tài)的關(guān)聯(lián)起來(lái)
名字服務(wù)器記錄,給出一個(gè)域的名稱服務(wù)器,使得其
他名稱服務(wù)器可以查找這個(gè)域中的名稱。
別名記錄,其使得用戶可以使用指向單個(gè)主機(jī)地址的
多個(gè)名稱
郵件交換記錄,用以告訴用戶哪個(gè)服務(wù)器可以接受傳
入這個(gè)域的郵件。
指針記錄。其使得“反向解析”得以實(shí)現(xiàn),即DNS 服
務(wù)器可以給出與一個(gè)特定IP 地址關(guān)聯(lián)的“完全限定域
名”
文本 值 該區(qū)域的參數(shù) A NS CNAME MX PTR 32比特整數(shù) 本域的服務(wù)器名 域名 優(yōu)先權(quán)和接收電子郵件的域名 IP 地址的域名 TXT 未解釋的ASCII 文本
圖9.3 DNS數(shù)據(jù)庫(kù)的示例
,第9章 應(yīng)用層 229
9.3 Web服務(wù)
萬(wàn)維網(wǎng)WWW(World Wide Web)是因特網(wǎng)上發(fā)展最快同時(shí)又使用最多的一項(xiàng)服務(wù),它可以提供包括文本、圖形、聲音和視頻等在內(nèi)的多媒體信息的瀏覽。
萬(wàn)維網(wǎng)起源于1989年歐洲粒子物理研究室CERN 。其目的是收集時(shí)刻變化的報(bào)告、藍(lán)圖、繪制圖、照片和其他文獻(xiàn)。鏈接文檔的萬(wàn)維網(wǎng)Web 的最初計(jì)劃是由CERN 的物理學(xué)家Tim Berners-Lee于1989年3月提出的,第一個(gè)原型(基于文本的)于18個(gè)月后運(yùn)行。1991年12月在德克薩斯州的San Antonio 91超文本會(huì)議上進(jìn)行了一次公開(kāi)演示,次年繼續(xù)發(fā)展,并于1993年2月,在第一個(gè)圖形界面Mosaic 的發(fā)布時(shí)達(dá)到了其發(fā)展的高峰,現(xiàn)在WWW 已經(jīng)成為因特網(wǎng)上不可缺少的主流應(yīng)用。
9.3.1Web 的基本概念
WWW 由遍布在因特網(wǎng)中的被稱為WWW 服務(wù)器(又稱為Web 服務(wù)器)的計(jì)算機(jī)組成,是一個(gè)容納各種類型信息的集合。從用戶的角度看,Web 由龐大的、世界范圍的文檔集合而成,簡(jiǎn)稱為頁(yè)面(page )。頁(yè)面具有嚴(yán)格的格式,頁(yè)面是用超文本標(biāo)識(shí)語(yǔ)言HTML (Hyper Text Markup Language)寫(xiě)成的,存放在Web 服務(wù)器上。每一頁(yè)面可以包含到世界上任何地方的其他相關(guān)頁(yè)面的超鏈接(Hyperlink ),這種能夠指向其他頁(yè)面的頁(yè)被稱為超文本(Hypertext )。
用戶使用瀏覽器總是從訪問(wèn)某個(gè)主頁(yè)(Homepage )開(kāi)始的。由于頁(yè)面中可能包含了超鏈接,所以用戶可以跟隨超鏈接到它所指向的其他頁(yè)面,并且這一過(guò)程可以被無(wú)限制的重復(fù)。通過(guò)這種方法用戶可瀏覽到大量的相互鏈接的信息。下面我們來(lái)介紹一下WWW 中常用的一些術(shù)語(yǔ)。
1) 超文本標(biāo)記語(yǔ)言(HTML )
HTML 是ISO 標(biāo)準(zhǔn)8879-標(biāo)準(zhǔn)通用標(biāo)識(shí)語(yǔ)言SGML (Standard Generalized Markup Language )在萬(wàn)維網(wǎng)上的應(yīng)用。所謂標(biāo)識(shí)語(yǔ)言就是格式化的語(yǔ)言,存在于WWW 服務(wù)上的頁(yè),就是由HTML 描述的。它使用一些約定的標(biāo)記對(duì)WWW上各種信息(包括文字、聲音、圖形、圖像、視頻等)、格式以及超級(jí)鏈接進(jìn)行描述。當(dāng)用戶瀏覽WWW上的信息時(shí),瀏覽器會(huì)自動(dòng)解釋這些標(biāo)記的含義,并將其顯示為用戶在屏幕上所看到的網(wǎng)頁(yè)。
一個(gè)HTML 文本包括文件頭(Head)、文件(Body)主體兩部分。其結(jié)構(gòu)如下所示:
,230《計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)》
其中,表示頁(yè)的開(kāi)始,表示頁(yè)結(jié)束;它們是成對(duì)使用的。
表示頭開(kāi)始,表示頭結(jié)束;表示主體開(kāi)始,表示主體結(jié)束,它們之間的內(nèi)容才會(huì)在瀏覽器的正文中顯示出來(lái)。HMTL 的標(biāo)識(shí)符有很多,有興趣的同學(xué)可以查看有關(guān)網(wǎng)頁(yè)制作方法的書(shū)籍。2) 超文本傳輸協(xié)議(HTTP )
超文本傳輸協(xié)議HTTP (Hypertext Transfer protocol)是用來(lái)在瀏覽器和WWW 服務(wù)器之間傳送超文本的協(xié)議。HTTP 協(xié)議是一種面向?qū)ο蟮膮f(xié)議,它由兩部分組成:從瀏覽器到服務(wù)器的請(qǐng)求集和從服務(wù)器到瀏覽器的應(yīng)答集。為了保證WWW 客戶機(jī)與WWW 服務(wù)器之間通信不會(huì)產(chǎn)生二義性,HTTP 精確定義了請(qǐng)求報(bào)文和響應(yīng)報(bào)文的格式。HTTP 會(huì)話過(guò)程包括連接、請(qǐng)求、應(yīng)答和關(guān)閉四個(gè)步驟,如圖9.4所示。
服務(wù)器客戶端
圖9.4 HTTP會(huì)話過(guò)程
3) 統(tǒng)一資源定位器URL
我們已經(jīng)知道WWW 是以頁(yè)面的形式來(lái)組織信息的。那么怎樣來(lái)識(shí)別不同的頁(yè)面,怎樣才能知道頁(yè)面在哪個(gè)位置,以及如何訪問(wèn)頁(yè)面呢?為了解決這個(gè)問(wèn)題,WWW 采用了統(tǒng)一資源定位器URL (Uniform Resource Locator)的方法。
URL 是在因特網(wǎng)上唯一確定資源位置的方法,其基本格式為:
協(xié)議://主機(jī)域名/資源文件名
其中,“協(xié)議(protocol )”用來(lái)指明資源類型,除了WWW 用的HTTP 協(xié)議之外,還可以是FTP 、TELNET 等協(xié)議;“主機(jī)域名”表示資源所在機(jī)器的DNS 名字;“資源文件名”用以提出資源在所在機(jī)器上的位置,包含路徑和文件名,通常形為“目錄名/子目錄名/文件名”, 也可以不含有路徑。例如,溫州大學(xué)的WWW 主頁(yè)的URL 就表示為“http ://www.wzu.edu.cn/index.php”。
在輸入U(xiǎn)RL 時(shí),協(xié)議和主機(jī)域名不分字母的大小寫(xiě),但目錄和文件名則可能區(qū)分字母的大小寫(xiě)。這是因?yàn)榇蠖鄶?shù)服務(wù)器安裝了UNIX 操作系統(tǒng),而UNIX 的文件系統(tǒng)是區(qū)分文件名的大小寫(xiě)的。
,第9章 應(yīng)用層 231
9.3.2WWW 服務(wù)的實(shí)現(xiàn)過(guò)程
WWW以客戶機(jī)/服務(wù)器(Client/server)的模式進(jìn)行工作。運(yùn)行WWW 服務(wù)器程序并提供WWW 服務(wù)的機(jī)器被稱為WWW 服務(wù)器;在客戶端,用戶通過(guò)一個(gè)被稱為瀏覽器(browser )的交互式程序來(lái)獲得WWW 服務(wù)。常用到的瀏覽器有Mosaic 、Netscape 和Internet explorer 等。
在服務(wù)器端,對(duì)于每個(gè)WWW 服務(wù)器站點(diǎn),都有一個(gè)關(guān)于TCP 的80端口的監(jiān)聽(tīng)(注:80為HTTP 缺省的TCP 端口) ,看是否有從客戶端(通常是瀏覽器)過(guò)來(lái)的連接。在客戶端,當(dāng)瀏覽器在其地址欄里輸入一個(gè)URL 或者單擊WEB 頁(yè)上的一個(gè)超鏈接時(shí),WEB 瀏覽器就要通過(guò)解析器對(duì)域名進(jìn)行解析以獲得相應(yīng)的IP 地址。然后,以該IP 地址為目標(biāo)地址,以HTTP 所對(duì)應(yīng)的TCP 端口為源端口與服務(wù)器建立一個(gè)TCP 連接。連接建立之后,客戶端的瀏覽器使用HTTP 協(xié)議中的“GET ”功能向WWW 服務(wù)器發(fā)出指定的WWW 頁(yè)面請(qǐng)求,服務(wù)器收到該請(qǐng)求后將根據(jù)客戶端所要求的路徑和文件名使用HTTP 協(xié)議中的“PUT ”功能將相應(yīng)HTML 文檔回送到客戶端,如果客戶端沒(méi)有指明相應(yīng)的文件名,則由服務(wù)器返回一個(gè)缺省的HTML 頁(yè)面。頁(yè)面?zhèn)魉屯戤吅?,中止相?yīng)的TCP 連接。
下面我們以一個(gè)具體的例子來(lái)Web 服務(wù)的實(shí)現(xiàn)過(guò)程。假設(shè)有用戶要訪問(wèn)溫州大學(xué)主頁(yè) http://www.wzu.edu.cn/index.php,則瀏覽器與服務(wù)器的信息交互過(guò)程如下:
1) 瀏覽器確定URL 。
2) 瀏覽器向DNS 獲取web 服務(wù)器www.wzu.edu.cn 的IP 地址。
3) DNS服務(wù)器以相應(yīng)的IP 地址218.75.16.107應(yīng)答。
4) 瀏覽器和IP 地址為218.75.16.107的主機(jī)的80端口建立一條TCP 連接。;
5) 瀏覽器執(zhí)行HTTP 協(xié)議,發(fā)送GET “/index.php”命令,請(qǐng)求讀取該文件。
6) www.wzu.edu.cn服務(wù)器返回“/index.php”文件到客戶端。
7) 釋放TCP 連接。
8) 瀏覽器顯示“/index.php”中的所有正文和圖像。
自WWW 服務(wù)問(wèn)世以來(lái),其已取代電子郵件服務(wù)成為因特網(wǎng)上最為廣泛的服務(wù)。除了普通的頁(yè)面瀏覽外,WWW 服務(wù)中的瀏覽器/服務(wù)器(brower/server,簡(jiǎn)稱B/S)模式還取代了傳統(tǒng)的C/S模式,被廣泛用于網(wǎng)絡(luò)數(shù)據(jù)庫(kù)應(yīng)用開(kāi)發(fā)中。
9.4 E-mail服務(wù)
電子郵件(Electronic Mail,簡(jiǎn)稱E-mail )是因特網(wǎng)上最受歡迎也最為廣泛的應(yīng)用之一。電子郵件服務(wù)Email 是一種通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)與其它用戶進(jìn)行聯(lián)系的快速、簡(jiǎn)便、高效、廉價(jià)的現(xiàn)代化通信手段。電子郵件之所以受到廣大用戶的喜愛(ài),是因?yàn)榕c傳統(tǒng)通信方式相比,其具有以下明顯的優(yōu)點(diǎn):
成本低。與傳統(tǒng)的郵件系統(tǒng)相比,電子郵件費(fèi)用很低。傳統(tǒng)的國(guó)內(nèi)特快遞需20元
人民幣,國(guó)際快遞則更貴,而通過(guò)電子郵件將信件發(fā)送外國(guó)外,可能只需付幾分
錢(qián)的上網(wǎng)費(fèi)。
,232《計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)》
速度快。電子郵件一般只需幾秒鐘就可以到達(dá)目的地,遠(yuǎn)比人工郵件傳遞速度要
迅速。而且比較可靠;
安全與可靠性高。使用電子郵件不必?fù)?dān)心損壞,傳統(tǒng)的郵件在投遞過(guò)程中,有可
能信件被損壞,而使用電子郵件則不必?fù)?dān)心這一點(diǎn);
可達(dá)到范圍廣。電子郵件可以到達(dá)因特網(wǎng)可達(dá)的任何地方;并且可以實(shí)現(xiàn)一對(duì)多
的郵件傳送,即可以一次同時(shí)向多人發(fā)出多個(gè)內(nèi)容相同的郵件。
內(nèi)容表達(dá)形式多樣。電子郵件可以將文字,圖像,語(yǔ)音等多種類型的信息集成在
一個(gè)郵件中傳送,因此它成為多媒體信息傳送的重要手段。
那么電子郵件是如何通過(guò)網(wǎng)絡(luò)被發(fā)送和接收出去的呢?首先電子郵件要有自己規(guī)范的格式,就好比我們使用普通的郵政系統(tǒng)要遵循標(biāo)準(zhǔn)的郵件格式一樣。
電子郵件的格式由信封和內(nèi)容兩大部分,即郵件頭(header )和郵件主體(body )兩部分。郵件頭包括收信人的E-mail 地址、發(fā)信人的E-mail 地址、發(fā)送日期、標(biāo)題和發(fā)送優(yōu)先級(jí)等,其中,前兩項(xiàng)是必選的。郵件主體才是發(fā)件人和收件人要處理的內(nèi)容,早期的電子郵件系統(tǒng)只能傳遞文本信息,而通過(guò)使用多用途因特網(wǎng)郵件擴(kuò)展協(xié)議MIME (Multipurpose Internet Mail Extensions),現(xiàn)在還可以發(fā)送語(yǔ)音,圖像和視頻等信息。對(duì)于E-mail 主體不存在格式上的統(tǒng)一要求,但對(duì)信封即郵件頭有嚴(yán)格的格式要求,尤其是E-mail 地址。
E-mail 地址的標(biāo)準(zhǔn)格式為:<用戶名>@主機(jī)域名。其中,用戶名指用戶在某個(gè)郵件服務(wù)器上注冊(cè)的用戶標(biāo)識(shí),相當(dāng)于是他的一個(gè)私人郵箱,用戶名通常由用戶自行選定,但在同一個(gè)郵件服務(wù)器上必須是惟一的;@為分隔符,我們一般把它讀為英文的“at ”;主機(jī)域名是指信箱所在的郵件服務(wù)器的域名。例如zcr@mail.wzu.edu.cn,表示在溫州大學(xué)的郵件服務(wù)器上的用戶名為ZCR 的用戶信箱。
有了標(biāo)準(zhǔn)的電子郵件格式外,電子郵件的發(fā)送與接收還要依托由用戶代理、郵件服務(wù)器和郵件協(xié)議組成的電子郵件系統(tǒng)。圖9.5給出了電子郵件系統(tǒng)的簡(jiǎn)單示意圖。
SMTP
圖9.5 電子郵件系統(tǒng)的組成
其中,用戶代理運(yùn)行在客戶機(jī)上的一個(gè)本地程序,它提供命令行方式、菜單方式或圖形方式的界面來(lái)與電子郵件系統(tǒng)交互,允許人們讀取和發(fā)送電子郵件,如outlook express或hotmail 等。郵件服務(wù)器包括郵件發(fā)送服務(wù)器和郵件接收服務(wù)器。顧名思義,所謂郵件發(fā)送服務(wù)器是指為用戶提供郵件發(fā)送功能的郵件服務(wù)器,如圖中的SMTP 服務(wù)器;而郵件接收服務(wù)器是指為用戶提供郵件接收功能的郵件服務(wù)器,如圖中的POP3服務(wù)器。用戶在發(fā)送郵件時(shí),要使用郵件發(fā)送協(xié)議,常見(jiàn)的郵件發(fā)送協(xié)議有簡(jiǎn)單郵件傳輸協(xié)議SMTP (simple mail transter protocol)和MIME 協(xié)議,前者只能傳輸文本信息,后者則可以傳輸包括文本、聲音、圖象等在內(nèi)的多媒體信息。當(dāng)用戶代理向電子郵件發(fā)送服務(wù)器發(fā)送電子郵件時(shí)或郵件發(fā)送