先討論許多應(yīng)用協(xié)議都要使用的域名系統(tǒng)。在介紹了文件傳送協(xié)議和遠(yuǎn)程登錄協(xié)議后,就重點(diǎn)介紹萬(wàn)維網(wǎng)的工作原理及其主要協(xié)議。接著討論用戶最常用的 因特網(wǎng)電子郵件。最后,介紹有關(guān)網(wǎng)絡(luò)管理方面的問(wèn)題以及有關(guān)網(wǎng)絡(luò)編程的概念。
一、域名系統(tǒng)DNS(domain name system)
1.域名系統(tǒng)概述
背景——ARPANET時(shí)代,整個(gè)網(wǎng)絡(luò)上只有數(shù)百臺(tái)計(jì)算機(jī),那時(shí)使用一個(gè)叫作hosts的文件,列出所有主機(jī)名字和相應(yīng)的IP地址。只要用戶輸入一個(gè)主機(jī)名字,計(jì)算機(jī)就可很快地把這個(gè)主機(jī)名字轉(zhuǎn)換成機(jī)器能夠識(shí)別的二進(jìn)制IP地址。
為什么機(jī)器在處理IP數(shù)據(jù)報(bào)時(shí)要使用IP地址而不使用域名呢?——IP地址的長(zhǎng)度是固定的32位,而域名的長(zhǎng)度并不是固定的,機(jī)器處理起來(lái)比較困難。
整個(gè)因特網(wǎng)為什么不只使用一個(gè)域名服務(wù)器?——會(huì)因過(guò)負(fù)荷而無(wú)法正常工作?!?/p>
因特網(wǎng)域名系統(tǒng)DNS被設(shè)計(jì)成為一個(gè)聯(lián)機(jī)分布式數(shù)據(jù)庫(kù)系統(tǒng),并采用客戶服務(wù)器方式。DNS使大多名字都在本地解析,僅少量解析需要在因特網(wǎng)上通信,因此DNS系統(tǒng)的效率很高。由于DNS是分布式系統(tǒng),即使單個(gè)計(jì)算機(jī)出了故障,也不會(huì)妨礙整個(gè)DNS系統(tǒng)的正常運(yùn)行。
域名到IP地址的解析是由分布在因特網(wǎng)上的許多域名服務(wù)器程序(可簡(jiǎn)稱為域名服務(wù)器)共同完成的。域名服務(wù)器程序在專設(shè)的結(jié)點(diǎn)上運(yùn)行,運(yùn)行域名服務(wù)器程序的機(jī)器叫作域名服務(wù)器。
怎么解析——當(dāng)某一個(gè)應(yīng)用進(jìn)程需要把主機(jī)名解析為IP地址時(shí),該應(yīng)用進(jìn)程就要調(diào)用解析程序,并成為DNS的一個(gè)客戶,把待解析的域名放在DNS請(qǐng)求報(bào)文中,以UDP用戶數(shù)據(jù)報(bào)方式發(fā)給本地域名服務(wù)器(使用UDP是為了減少開(kāi)銷)。本地域名服務(wù)器在查找域名后,把對(duì)應(yīng)的IP地址放在回答報(bào)文中返回。應(yīng)用進(jìn)程獲得目的主機(jī)的IP地址后即可進(jìn)行通信。
若本地域名服務(wù)器不能回答該請(qǐng)求,則此域名服務(wù)器就暫時(shí)成為DNS中的另一個(gè)客戶,并向其他域名服務(wù)器發(fā)出查詢請(qǐng)求。這種過(guò)程直至找到能夠回答該請(qǐng)求的域名服務(wù)器為止。(查找過(guò)程后續(xù)還要討論)
2.因特網(wǎng)的域名結(jié)構(gòu)

命名規(guī)則——域名中的標(biāo)號(hào)都由英文字母和數(shù)字組成,每一個(gè)標(biāo)號(hào)不超過(guò)63個(gè)字符(為記憶方便,規(guī)定12個(gè)字符),也不區(qū)分大小寫字母。標(biāo)號(hào)中的除連字符(-)外不能使用其他的標(biāo)點(diǎn)符號(hào)。級(jí)別低的寫在左邊,高的寫在右邊。由多個(gè)標(biāo)號(hào)組成的完整域名總共不超過(guò)255個(gè)字符。
域名是一個(gè)邏輯概念——并不代表物理地點(diǎn)。域名中的“點(diǎn)”和點(diǎn)分十進(jìn)制IP地址中的“點(diǎn)”并無(wú)一一對(duì)應(yīng)的關(guān)系,點(diǎn)分十進(jìn)制IP地址中一定是包含三個(gè)“點(diǎn)”,但每一個(gè)域名中“點(diǎn)”的數(shù)目則不一定正好是三個(gè)。
頂級(jí)域名TLD(top level domain)分為三類——①國(guó)家頂級(jí)域名nTLD,如cn中國(guó)、us美國(guó)、uk英國(guó)。②通用頂級(jí)域名gTLD,如com公司企業(yè)、net政府機(jī)構(gòu)、org非營(yíng)利性的組織、int國(guó)際組織、edu美國(guó)專用教育機(jī)構(gòu)、gov美國(guó)的政府機(jī)構(gòu)、mil美國(guó)的軍事部門。③基礎(chǔ)結(jié)構(gòu)域名。
二級(jí)域名分為——①類別域名:ac科研機(jī)構(gòu)、com工、商、金融等企業(yè)、edu中國(guó)的教育機(jī)構(gòu)、gov中國(guó)的政府機(jī)構(gòu)、mil中國(guó)的國(guó)防機(jī)構(gòu)、net提供互連網(wǎng)絡(luò)服務(wù)的機(jī)構(gòu)、org非營(yíng)利性的組織。②行政區(qū)域名:適用于我國(guó)的各省、自治區(qū)、直轄市,bj北京。

3.域名服務(wù)器
區(qū)——一個(gè)服務(wù)器所負(fù)責(zé)管轄的范圍。在一個(gè)區(qū)中的所有結(jié)點(diǎn)必須是能夠連通的,每一個(gè)區(qū)設(shè)置相應(yīng)的權(quán)限域名服務(wù)器,用來(lái)保存該區(qū)中的所有主機(jī)的域名到IP地址的映射(是部分)。區(qū)是域的子集。

Ⅰ、分類
(1)根域名服務(wù)器(root name sever)
所有的根域名服務(wù)器都知道所有的頂級(jí)域名服務(wù)器的域名和IP地址。不管是哪一個(gè)本地域名服務(wù)器,若要對(duì)因特網(wǎng)上任何一個(gè)域名進(jìn)行解析(即轉(zhuǎn)換為IP地址),只要自己無(wú)法解析,就首先要求助于根域名服務(wù)器。

因特網(wǎng)上共有13個(gè)不同IP地址的根域名服務(wù)器,它們名字是用一個(gè)英文字母命名,從a一直到m(前13個(gè)字母),分別是a.rootsevers.net,...,m.rootsevers.net。不是指13個(gè)機(jī)器,而是13套裝置,運(yùn)營(yíng)組織在美國(guó),但分布在世界各地,使世界上大部分DNS域名服務(wù)器都能就近找到一個(gè)根域名服務(wù)器。由于根域名服務(wù)器采用了任播(anycast)技術(shù),因此當(dāng)DNS客戶向某個(gè)根域名服務(wù)器進(jìn)行查詢時(shí)(用這個(gè)根域名服務(wù)器的IP地址),因特網(wǎng)上的路由器就能找到離這個(gè)DNS客戶最近的一個(gè)根域名服務(wù)器,這樣加快了DNS的查詢過(guò)程,也更加合理利用了因特網(wǎng)的資源。

許多情況下,根域名服務(wù)器并不直接把待查詢的域名直接轉(zhuǎn)換成IP地址(根域名服務(wù)器也沒(méi)有存放這種信息),而是告訴本地域名服務(wù)器下一步應(yīng)當(dāng)找哪一個(gè)頂級(jí)域名服務(wù)器進(jìn)行查詢。
(2)頂級(jí)域名服務(wù)器(TLD服務(wù)器)
收到DNS查詢請(qǐng)求時(shí),就給出響應(yīng)的回答(可能是最后結(jié)果,也可能是下一步應(yīng)當(dāng)找的域名服務(wù)器的IP地址)。
(3)權(quán)限域名服務(wù)器
負(fù)責(zé)一個(gè)區(qū)的域名服務(wù)器。當(dāng)一個(gè)權(quán)限域名服務(wù)器還不能給出最后的查詢回答時(shí),就會(huì)告訴發(fā)出查詢請(qǐng)求的DNS客戶,下一步應(yīng)當(dāng)找哪一個(gè)權(quán)限域名服務(wù)器。
(4)本地域名服務(wù)器
主機(jī)發(fā)出DNS查詢請(qǐng)求時(shí),請(qǐng)求報(bào)文就發(fā)送給本地域名服務(wù)器。當(dāng)所要查詢的主機(jī)屬于同一個(gè)本地ISP時(shí),該本地域名服務(wù)器立即就能將所查詢的主機(jī)名轉(zhuǎn)換為它的IP地址,而不需要再去詢問(wèn)其他的域名服務(wù)器。
為了提高域名服務(wù)器的可靠性,DNS域名服務(wù)器就把數(shù)據(jù)復(fù)制到幾個(gè)域名服務(wù)器來(lái)保存,其中的一個(gè)是主域名服務(wù)器(master name sever),其他的是輔助域名服務(wù)器(secondary name sever)。當(dāng)主域名服務(wù)器出故障時(shí),輔助域名服務(wù)器可以保證DNS的查詢工作不會(huì)中斷。主域名服務(wù)器定期把數(shù)據(jù)復(fù)制到輔助域名服務(wù)器中,而更改數(shù)據(jù)只能在主域名服務(wù)器中進(jìn)行。這樣就保證了數(shù)據(jù)的一致性。
Ⅱ、兩種查詢
域名解析過(guò)程注意:
①主機(jī)向本地域名服務(wù)器的查詢一般都是采用遞歸查詢(recursive query)。如果主機(jī)所詢問(wèn)的本地域名服務(wù)器不知道被查詢域名的IP地址,本地域名服務(wù)器就以DNS客戶的身份,向其他根域名服務(wù)器繼續(xù)發(fā)出查詢請(qǐng)求報(bào)文(即替該主機(jī)繼續(xù)查詢),而不是讓該主機(jī)自己進(jìn)行下一步的查詢。因此,遞歸查詢返回的查詢結(jié)果或者是所要查詢的IP地址,或者是報(bào)錯(cuò),表示無(wú)法查詢到所需的IP地址。
②本地域名服務(wù)器向根域名服務(wù)器的查詢通常是采用迭代查詢(iterative query)。根域名服務(wù)器收到本地域名服務(wù)器發(fā)出的迭代查詢請(qǐng)求報(bào)文時(shí),要么給出所要查詢的IP地址,要么告訴本地域名服務(wù)器下一步應(yīng)當(dāng)向哪一個(gè)域名服務(wù)器進(jìn)行查詢,然后讓本地域名服務(wù)器進(jìn)行后續(xù)的查詢(而不是替本地域名服務(wù)器進(jìn)行后續(xù)的查詢)。根域名服務(wù)器通常是把自己知道的頂級(jí)域名服務(wù)器的IP地址告訴本地域名服務(wù)器的查詢請(qǐng)求后,要么給出所要查詢的IP地址,要么高速本地域名服務(wù)器下一步應(yīng)當(dāng)向哪一個(gè)權(quán)限域名服務(wù)器進(jìn)行查詢。本地域名服務(wù)器就這樣進(jìn)行迭代查詢。最后,知道了所要解析的域名的IP地址,然后把這個(gè)結(jié)果返回給發(fā)起查詢的主機(jī)。當(dāng)然,本地域名服務(wù)器也可以采用遞歸查詢,這取決于最初的查詢請(qǐng)求報(bào)文的設(shè)置是要求使用哪一種查詢方式。

Ⅲ、高速緩存
為了提高DNS查詢效率,并減輕根域名服務(wù)器的負(fù)荷和減少因特網(wǎng)上的DNS查詢報(bào)文數(shù)量,在域名服務(wù)器中廣泛地使用了高速緩存(有時(shí)也成為高速緩存域名服務(wù)器)。高速緩存用來(lái)存放最近查詢過(guò)的域名以及從何處獲得域名映射信息的記錄。
為保持高速緩存中的內(nèi)容正確,域名服務(wù)器應(yīng)為每項(xiàng)內(nèi)容設(shè)置計(jì)時(shí)器并處理超過(guò)合理時(shí)間的項(xiàng)(例如,每個(gè)項(xiàng)目只存放兩天)。當(dāng)域名服務(wù)器已從緩存中刪去某項(xiàng)信息后又被請(qǐng)求查詢?cè)擁?xiàng)信息,就必須重新到授權(quán)管理該項(xiàng)的域名服務(wù)器獲取綁定信息。當(dāng)權(quán)限域名服務(wù)器回答一個(gè)查詢請(qǐng)求時(shí),在響應(yīng)中都指明綁定有效存在的時(shí)間值。增加此時(shí)間值可減少網(wǎng)絡(luò)開(kāi)銷,而減少此時(shí)間值可提高域名轉(zhuǎn)換的準(zhǔn)確性。
主機(jī)也有高速緩存。
二、文件傳送協(xié)議
1.FTP概述
文件傳送協(xié)議FTP(file transfer protocol),提供交互式的訪問(wèn),允許客戶指明文件的類型與格式,并允許文件具有存取權(quán)限,屏蔽了各計(jì)算機(jī)系統(tǒng)的細(xì)節(jié)。
文件共享協(xié)議中的一大類——FTP和TFTP,即復(fù)制整個(gè)文件。特點(diǎn)是:若要存取一個(gè)文件,就必須先獲得一個(gè)本地文件的文件副本。如果要修改文件,只能對(duì)文件的副本進(jìn)行修改,然后再將修改后的文件副本傳回到原節(jié)點(diǎn)。
文件共享協(xié)議中的另一大類——聯(lián)機(jī)訪問(wèn)(on-line access)。允許多個(gè)程序同時(shí)對(duì)一個(gè)文件進(jìn)行存取。和數(shù)據(jù)庫(kù)系統(tǒng)不同之處是用戶不需要調(diào)用一個(gè)特殊的客戶進(jìn)程,而是由操作系統(tǒng)提供對(duì)遠(yuǎn)地共享文件進(jìn)行訪問(wèn)的服務(wù),就如同對(duì)本地文件的訪問(wèn)一樣。這就使用戶可以用遠(yuǎn)地文件作為輸入和輸出來(lái)運(yùn)行任何應(yīng)用程序,而操作系統(tǒng)中的文件系統(tǒng)則提供對(duì)共享文件的透明存取。透明存儲(chǔ)優(yōu)點(diǎn)是:將原來(lái)用于處理本地文件的應(yīng)用程序用來(lái)處理遠(yuǎn)地文件時(shí),不需要對(duì)該應(yīng)用程序作明顯的改動(dòng)。屬于文件共享協(xié)議的有網(wǎng)絡(luò)文件系統(tǒng)NFS(network file system)。
2.FTP的基本工作原理
兩個(gè)主機(jī)傳送應(yīng)用很難,因?yàn)橛?jì)算機(jī)存儲(chǔ)數(shù)據(jù)格式不同、文件的目錄結(jié)構(gòu)和文件命名的規(guī)定不同、相同文件存取功能的,操作系統(tǒng)使用的命令不同、訪問(wèn)控制方法不同。
文件傳送協(xié)議FTP只提供傳送的一些基本的服務(wù),它使用TCP可靠的運(yùn)輸服務(wù)。FTP的主要功能是減少或消除在不同操作系統(tǒng)下處理文件的不兼容性。
FTP使用客戶服務(wù)器方式。一個(gè)FTP服務(wù)器進(jìn)程可同時(shí)為多個(gè)客戶進(jìn)程提供服務(wù)。FTP的服務(wù)器進(jìn)程由兩大部分組成:一個(gè)主進(jìn)程,負(fù)責(zé)接收新的請(qǐng)求;另外有若干個(gè)從屬進(jìn)程,負(fù)責(zé)處理單個(gè)請(qǐng)求。
主進(jìn)程工作步驟如下:①打開(kāi)熟知端口(端口號(hào)為21),使客戶進(jìn)程能夠連接上;②等待客戶進(jìn)程發(fā)出連接請(qǐng)求;③啟動(dòng)從屬進(jìn)程來(lái)處理客戶進(jìn)程發(fā)來(lái)的請(qǐng)求。從屬進(jìn)程對(duì)客戶進(jìn)程的請(qǐng)求處理完畢后即終止,但從屬進(jìn)程在運(yùn)行期間根據(jù)需要還可能創(chuàng)建其他一些子進(jìn)程;④回到等待狀態(tài),繼續(xù)接受其他客戶進(jìn)程發(fā)來(lái)的請(qǐng)求,主進(jìn)程與從屬進(jìn)程的處理是并發(fā)地進(jìn)行。

FTP并非對(duì)所有的數(shù)據(jù)傳輸都是最佳的。例如,計(jì)算機(jī)A上運(yùn)行的應(yīng)用程序要在遠(yuǎn)地計(jì)算機(jī)B的一個(gè)很大的文件末尾添加一行信息。若使用FTP,則應(yīng)先將此文件從計(jì)算機(jī)B傳送到計(jì)算機(jī)A,添加上這一行信息后,再用FTP將此文件傳送到計(jì)算機(jī)B,來(lái)回傳送這樣大的文件很花時(shí)間。實(shí)際上這種傳送是不必要的,因?yàn)橛?jì)算機(jī)A并沒(méi)有使用該文件的內(nèi)容。
然而網(wǎng)絡(luò)文件系統(tǒng)NFS則采用另一種思路。NFS允許應(yīng)用進(jìn)程打開(kāi)一個(gè)遠(yuǎn)地文件,并能在該文件的某一特定的位置上開(kāi)始讀寫數(shù)據(jù)。這樣,NFS可使用戶只復(fù)制一個(gè)大文件中的一個(gè)很小的片段,而不需要復(fù)制整個(gè)大文件。對(duì)于上述例子 ,A的NFS客戶軟件,將要添加的數(shù)據(jù)和在文件后面寫數(shù)據(jù)的請(qǐng)求一起發(fā)送到遠(yuǎn)地計(jì)算機(jī)B中的NFS服務(wù)器,NFS服務(wù)器更新文件后返回應(yīng)答信息。在網(wǎng)絡(luò)上傳送的只是少量修改數(shù)據(jù)。
3.簡(jiǎn)單文件傳送協(xié)議TFTP
(trivial file transfer protocol),是很小且易于實(shí)現(xiàn)的文件傳送協(xié)議。雖然TFTP也使用客戶服務(wù)器方式,但它使用UDP數(shù)據(jù)報(bào),因此TFTP需要有自己的差錯(cuò)改正措施。TFTP只支持文件傳輸而不支持交互,沒(méi)有一個(gè)龐大的命令集,沒(méi)有列目錄的功能,也不能對(duì)用戶進(jìn)行身份鑒別。
TFTP主要優(yōu)點(diǎn):①可用于UDP環(huán)境,例如當(dāng)需要將程序或文件同時(shí)向許多機(jī)器下載時(shí)就往往需要使用TFTP。②TFTP代碼所占的內(nèi)存小,這對(duì)較小的計(jì)算機(jī)或某些特殊用途的設(shè)備是很重要的。這些設(shè)備不需要硬盤,只需要固化了TFTP、UDP、IP的小容量只讀存儲(chǔ)器即可。
TFTP主要特點(diǎn):
①每次傳送的數(shù)據(jù)報(bào)文中有512字節(jié)的數(shù)據(jù),但最后一次可不足512字節(jié);
②數(shù)據(jù)報(bào)文按序編號(hào),從1開(kāi)始;
③支持ASCII碼或二進(jìn)制傳送;
④可對(duì)文件進(jìn)行讀或?qū)懀?/p>
⑤使用很簡(jiǎn)單的首部。
它的工作很像停止等待協(xié)議。發(fā)送完一個(gè)文加塊后就等待對(duì)方的確認(rèn),確認(rèn)時(shí)應(yīng)指明所確認(rèn)的塊編號(hào)。發(fā)完數(shù)據(jù)后在規(guī)定時(shí)間內(nèi)收不到確認(rèn)就要重發(fā)數(shù)據(jù)PDU。發(fā)送確認(rèn)PDU的一方若在規(guī)定時(shí)間內(nèi)收不到下一個(gè)文件塊,也要重發(fā)確認(rèn)PDU。這樣就可保證文件的傳送不致因某一個(gè)數(shù)據(jù)報(bào)的丟失而告失敗。
在一開(kāi)始工作時(shí)。TFTP客戶進(jìn)程發(fā)送一個(gè)讀請(qǐng)求報(bào)文或?qū)懻?qǐng)求報(bào)文給TFTP服務(wù)器進(jìn)程,其熟知端口號(hào)碼為69。TFTP服務(wù)器進(jìn)程要選擇一個(gè)新的端口和TFTP客戶進(jìn)程進(jìn)行通信。若文件長(zhǎng)度恰好為512字節(jié)的整數(shù)倍,則在文件傳送完畢后,還必須在最后發(fā)送一個(gè)只含首部而無(wú)數(shù)據(jù)的數(shù)據(jù)報(bào)文。若文件長(zhǎng)度不是512字節(jié)的整數(shù)倍,則最后傳送數(shù)據(jù)報(bào)文中的數(shù)據(jù)字段一定不滿512字節(jié),這正好可作為文件結(jié)束的標(biāo)志。
三、遠(yuǎn)程終端協(xié)議TELNET
用戶用TELNET就可在其所在地通過(guò)TCP連接注冊(cè)(即登錄)到遠(yuǎn)地的另一個(gè)主機(jī)上(使用主機(jī)名或IP地址),這種服務(wù)是透明的,所以也叫終端仿真協(xié)議。
使用客戶服務(wù)器方式。能適應(yīng)許多計(jì)算機(jī)和操作系統(tǒng)的差異,因?yàn)樗x了數(shù)據(jù)和命令怎樣通過(guò)因特網(wǎng),這些定義就是網(wǎng)絡(luò)虛擬終端NVT(network virtual terminal)。

NVT的格式定義很簡(jiǎn)單,所有通信都使用8位一個(gè)字節(jié)。在運(yùn)轉(zhuǎn)時(shí),NVT使用7位ASCII碼傳送數(shù)據(jù),但當(dāng)高位置1時(shí)用作控制命令。TELNET的選擇協(xié)商(option negotiation)使TELNET客戶和TELNET服務(wù)器可商定使用更多的終端功能,協(xié)商的雙方是平等的。
四、萬(wàn)維網(wǎng)WWW
1.萬(wàn)維網(wǎng)概述
world wide web,它用鏈接的方法能非常方便地從因特網(wǎng)上的一個(gè)站點(diǎn)訪問(wèn)另一個(gè)站點(diǎn),從而主動(dòng)地按需獲取豐富的信息。

萬(wàn)維網(wǎng)是一個(gè)分布式的超媒體(hypermedia),它是超文本(hypertext)系統(tǒng)的擴(kuò)充。所謂超文本是包含指向其他文檔的鏈接的文本,是萬(wàn)維網(wǎng)的基礎(chǔ)。超媒體與超文本的區(qū)別是文檔內(nèi)容不同,超文本文檔僅包含文本信息,而超媒體文檔還包含其他表示方式的信息,如圖形、圖像、聲音、動(dòng)畫、活動(dòng)視頻圖像。
非分布式的超媒體系統(tǒng)中,各種信息都駐留在單個(gè)計(jì)算機(jī)的磁盤中。由于各種文檔都可以從本地獲得,因此這些文檔之間的鏈接可進(jìn)行一致性檢查。所以,一個(gè)非分布式超媒體系統(tǒng)能夠保證所有的鏈接都是有效的和一致的。
萬(wàn)維網(wǎng)把大量信息分布在整個(gè)因特網(wǎng)上。每臺(tái)主機(jī)上的文檔都獨(dú)立進(jìn)行管理。對(duì)這些文檔的增加、修改、刪除或重新命名都不需要(實(shí)際上也不可能)通知到因特網(wǎng)上成千上萬(wàn)的節(jié)點(diǎn)。這樣,萬(wàn)維網(wǎng)文檔之間的鏈接就經(jīng)常會(huì)不一致。
萬(wàn)維網(wǎng)以客戶服務(wù)器方法工作。萬(wàn)維網(wǎng)文檔所駐留的主機(jī)則運(yùn)行服務(wù)器程序,因此這個(gè)主機(jī)也稱為萬(wàn)維網(wǎng)服務(wù)器。客戶程序向服務(wù)器程序發(fā)出請(qǐng)求,服務(wù)器程序向客戶程序送回所要的萬(wàn)維網(wǎng)文檔。在一個(gè)客戶程序主窗口上顯示出的萬(wàn)維網(wǎng)文檔稱為頁(yè)面。
于是,萬(wàn)維網(wǎng)需解決以下問(wèn)題:
①怎樣標(biāo)志分布在整個(gè)因特網(wǎng)上的萬(wàn)維網(wǎng)上的文檔?
——使用統(tǒng)一的定位符URL(uniform resource locator)來(lái)標(biāo)志萬(wàn)維網(wǎng)上的各種文檔,并使每一個(gè)文檔在整個(gè)因特網(wǎng)的范圍內(nèi)具有唯一的標(biāo)識(shí)符URL。
②用什么樣的協(xié)議來(lái)實(shí)現(xiàn)萬(wàn)維網(wǎng)上各種連接?
——萬(wàn)維網(wǎng)客戶程序與萬(wàn)維網(wǎng)服務(wù)器程序之間的交互遵守嚴(yán)格的協(xié)議,這就是超文本協(xié)議HTTP(hypertext transfer protocol)。HTTP是應(yīng)用層協(xié)議,使用TCP連接進(jìn)行可靠的傳送。
③怎樣使不同作者創(chuàng)作的不同風(fēng)格的萬(wàn)維網(wǎng)文檔都能在因特網(wǎng)上的各種主機(jī)上顯示出來(lái),同時(shí)使用戶清楚地知道在什么地方存在著鏈接?
——萬(wàn)維網(wǎng)使用超文本標(biāo)記語(yǔ)言HTML(hypertext market language),使得萬(wàn)維網(wǎng)頁(yè)面的設(shè)計(jì)者可以很方便地用連接從本頁(yè)面的某處鏈接到因特網(wǎng)上的任何一個(gè)萬(wàn)維網(wǎng)頁(yè)面,并且能夠在自己的主機(jī)屏幕上將這些頁(yè)面顯示出來(lái)。
④怎樣使用戶能夠很方便地找到所需的信息?
——用戶可以使用搜索工具在萬(wàn)維網(wǎng)上方便地查找所需的信息。
2.統(tǒng)一資源定位符URL
Ⅰ、URL的格式
資源是指因特網(wǎng)上可以被訪問(wèn)的任何對(duì)象,包括文件目錄、文件、文檔、圖像、聲音等,以及與因特網(wǎng)相連的任何形式的數(shù)據(jù)。
URL相當(dāng)于一個(gè)文件名在網(wǎng)絡(luò)范圍的擴(kuò)展。它是與因特網(wǎng)相連的機(jī)器上的任何可訪問(wèn)對(duì)象的一個(gè)指針。由于訪問(wèn)不同對(duì)象所使用的協(xié)議不同,所以URL還指出讀取某個(gè)對(duì)象時(shí)所使用的協(xié)議。URL的一般形式:
<協(xié)議>://<主機(jī)>:<端口>/<路徑>
<協(xié)議>指出使用什么協(xié)議來(lái)獲取該萬(wàn)維網(wǎng)文檔,如HTTP、ftp。<主機(jī)>指出萬(wàn)維網(wǎng)文檔是在哪一個(gè)主機(jī)上,就是指該主機(jī)在因特網(wǎng)上的域名。<端口>和<路徑>可省略。
Ⅱ、使用HTTP的URL
HTTP的URL的一般形式:http://<主機(jī)>:<端口>/<路徑>。
HTTP的默認(rèn)端口號(hào)是80,通常可省略。若再省略<路徑>,則URL就指到因特網(wǎng)上的某個(gè)主頁(yè)(home page)。如http://www.tsinghua.edu.cn。雖然URL里面的字母不分大小寫,但有的頁(yè)面為了讀者看起來(lái)方便,故意用了一些大寫字母,實(shí)際上這對(duì)使用windows的PC機(jī)用戶是沒(méi)有關(guān)系的。
用戶使用URL并非僅僅能夠訪問(wèn)萬(wàn)維網(wǎng)的頁(yè)面,還能通過(guò)URL使用其他的因特網(wǎng)應(yīng)用程序,如FTP或USENET新聞組等。更重要的是,用戶在使用這些應(yīng)用程序時(shí),只使用一個(gè)程序,即瀏覽器。這顯然方便。
3.超文本傳送協(xié)議HTTP
Ⅰ、HTTP的操作過(guò)程
HTTP協(xié)議定義了瀏覽器(即萬(wàn)維網(wǎng)客戶進(jìn)程)怎樣向萬(wàn)維網(wǎng)服務(wù)器請(qǐng)求萬(wàn)維網(wǎng)文檔,以及服務(wù)器怎樣把文檔傳送給服務(wù)器。從層次角度看,HTTP是面向事務(wù)(事務(wù)指一系列的信息交換,而這一系列的信息交換是一個(gè)不可分割的整體,即要么所有的信息交換完成,要么一次交換都不進(jìn)行)的應(yīng)用層協(xié)議,它是萬(wàn)維網(wǎng)上能夠可靠地交換文件(包括文本、聲音、圖像等各種多媒體文件)的重要基礎(chǔ)。

每個(gè)萬(wàn)維網(wǎng)網(wǎng)點(diǎn)都有一個(gè)服務(wù)器進(jìn)程,它不斷地監(jiān)聽(tīng)TCP的端口80,以便發(fā)現(xiàn)是否有瀏覽器(即萬(wàn)維網(wǎng)客戶)向它發(fā)出連接建立請(qǐng)求。在瀏覽器和服務(wù)器之間的請(qǐng)求和響應(yīng)的交互,必須按照規(guī)定的格式和遵循一定的規(guī)則,這些格式和規(guī)則就是超文本傳送協(xié)議HTTP。
HTTP規(guī)定在HTTP客戶與HTTP服務(wù)器之間的每次交互,都由一個(gè)ASCII碼串構(gòu)成的請(qǐng)求和一個(gè)“類MIME(MIME-like)”的響應(yīng)組成。HTTP報(bào)文通常都使用TCP連接傳送。
用戶瀏覽頁(yè)面的方式有兩種,一種是在瀏覽器的地址窗口中鍵入所要找的頁(yè)面的URL,另一種是在某一個(gè)頁(yè)面中用鼠標(biāo)點(diǎn)擊一個(gè)可選部分,這時(shí)瀏覽器會(huì)自動(dòng)在因特網(wǎng)上找到所要鏈接的頁(yè)面。
假定,用戶用鼠標(biāo)點(diǎn)擊了屏幕上的一個(gè)可選部分,他使用的鏈接指向了“清華大學(xué)院系設(shè)置”的頁(yè)面,其URL是http://www.tsinghua.edu.cn/chn/yxsz/index.htm。用戶點(diǎn)擊鼠標(biāo)后,發(fā)生的事件(以HTTP1.0為例):
①瀏覽器分析鏈接指向頁(yè)面的URL;
②瀏覽器向DNS請(qǐng)求解析www.tsinghua.edu.cn的IP地址;
③域名系統(tǒng)DNS解析出清華大學(xué)服務(wù)器的IP地址為166.111.4.100;
④瀏覽器與服務(wù)器建立TCP連接(在服務(wù)器端IP地址是166.111.4.100,端口是80);
⑤瀏覽器發(fā)出取文件命令:GET/chn/yxsz/index.htm;
⑥服務(wù)器www.tsinghua.edu.cn給出響應(yīng),把文件index.htm發(fā)送給瀏覽器;
⑦釋放TCP連接;
⑧瀏覽器顯示“清華大學(xué)院系設(shè)置”文件index.htm中的所有文本。
HTTP使用了面向連接的TCP作為運(yùn)輸層協(xié)議,保證了數(shù)據(jù)的可靠傳輸。HTTP不必考慮數(shù)據(jù)在傳輸過(guò)程中被丟棄后又怎樣被重傳。但是,HTTP協(xié)議本身是無(wú)連接的。這就是說(shuō),雖然HTTP使用了TCP連接,但通信的雙方在交換HTTP報(bào)文之前不需要先建立HTTP連接。
HTTP協(xié)議是無(wú)狀態(tài)的。也就是說(shuō),同一個(gè)用戶第二次訪問(wèn)同一個(gè)服務(wù)器上的頁(yè)面時(shí),服務(wù)器的響應(yīng)與第一次被訪問(wèn)時(shí)的相同(假定現(xiàn)在服務(wù)器還沒(méi)有把該頁(yè)面更新),因?yàn)榉?wù)器不記得曾經(jīng)訪問(wèn)過(guò)的這個(gè)客戶,也不記得為該客戶曾經(jīng)服務(wù)過(guò)多少次。HTTP的無(wú)狀態(tài)特性簡(jiǎn)化了服務(wù)器的設(shè)計(jì),使服務(wù)器更容易支持大量并發(fā)的HTTP請(qǐng)求。

從上圖看出,請(qǐng)求一個(gè)萬(wàn)維網(wǎng)文檔所需的時(shí)間是該文檔的傳輸時(shí)間(與文檔大小成正比)加上兩倍往返時(shí)間RTT。HTTP/1.0的缺點(diǎn)是每請(qǐng)求一個(gè)文檔就要有兩倍RTT的開(kāi)銷,另外萬(wàn)維網(wǎng)客戶和服務(wù)器為每一次建立新的TCP連接都要分配緩存和變量。特別是萬(wàn)維網(wǎng)服務(wù)器往往要同時(shí)服務(wù)于大量客戶的請(qǐng)求,這樣會(huì)使萬(wàn)維網(wǎng)服務(wù)器的負(fù)擔(dān)很重,好在瀏覽器提供了能夠打開(kāi)5-10個(gè)并行的TCP連接,而每一個(gè)TCP連接處理客戶的一個(gè)請(qǐng)求,因此使用并行TCP連接能夠縮短響應(yīng)時(shí)間。
HTTP/1.1協(xié)議較好解決了這個(gè)問(wèn)題。它使用了持續(xù)連接,即萬(wàn)維網(wǎng)服務(wù)器在發(fā)送響應(yīng)后仍然在一段時(shí)間內(nèi)保持這條連接,使同一個(gè)客戶(瀏覽器)和該服務(wù)器可以繼續(xù)在這條連接上傳送后續(xù)的HTTP請(qǐng)求報(bào)文和響應(yīng)報(bào)文。
持續(xù)連接有兩種工作方式,即非流水線方式和流水線方式。
非流水線方式,是客戶在收到前一個(gè)響應(yīng)后才能發(fā)出下一個(gè)請(qǐng)求。因此,在TCP連接已建立后,客戶每訪問(wèn)一次對(duì)象都要用去一個(gè)往返時(shí)間RTT。這比非持續(xù)連接的兩倍RTT的開(kāi)銷節(jié)省了建立TCP連接所需的一個(gè)RTT時(shí)間。但非流水線方式還是有缺點(diǎn)的,因?yàn)榉?wù)器在發(fā)送完一個(gè)對(duì)象后,其TCP連接就處于空閑狀態(tài),浪費(fèi)了服務(wù)器資源。
流水線方式,是客戶在收到HTTP的響應(yīng)報(bào)文之前就能夠接著發(fā)送新的請(qǐng)求報(bào)文。于是一個(gè)接一個(gè)的請(qǐng)求報(bào)文到達(dá)服務(wù)器后,服務(wù)器就可持續(xù)發(fā)回響應(yīng)報(bào)文。因此,使用流水線方式時(shí),客戶訪問(wèn)所有的對(duì)象只需花費(fèi)一個(gè)RTT時(shí)間。流水線工作方式使TCP連接中的空閑時(shí)間減少,提高了下載文檔效率。
Ⅱ、代理服務(wù)器(proxy sever)
作用——把最近的一些請(qǐng)求和響應(yīng)暫存在本地磁盤中
工作地——客戶端、服務(wù)端、中間系統(tǒng)
過(guò)程——PC瀏覽器→代理服務(wù)器→源點(diǎn)服務(wù)器
解釋:PC機(jī)中的瀏覽器先向因特網(wǎng)的服務(wù)器請(qǐng)求服務(wù)時(shí),就先和代理服務(wù)器建立TCP鏈接,并向代理服務(wù)器發(fā)出HTTP請(qǐng)求報(bào)文。若代理服務(wù)器存放了所請(qǐng)求對(duì)象,就把它放入HTTP響應(yīng)報(bào)文中返回給PC機(jī)的瀏覽器。否則,就與因特網(wǎng)上的源點(diǎn)服務(wù)器建立TCP連接,并發(fā)送HTTP請(qǐng)求報(bào)文。代理服務(wù)器收到這個(gè)對(duì)象后,先復(fù)制在自己的本地磁盤中(留待以后用),再把這個(gè)對(duì)象放在HTTP響應(yīng)報(bào)文中,通過(guò)已建立的TCP鏈接,返回給請(qǐng)求該對(duì)象的瀏覽器。

Ⅲ、HTTP的報(bào)文結(jié)構(gòu)
兩類報(bào)文:①請(qǐng)求報(bào)文。從客戶向服務(wù)端發(fā)送請(qǐng)求報(bào)文。②響應(yīng)報(bào)文。從服務(wù)端到客戶端。
HTTP是面向文本的,因此在報(bào)文中的每一個(gè)字段都是ASCII碼串,因而各個(gè)字段的長(zhǎng)度都是不確定的。

各行結(jié)構(gòu):
開(kāi)始行——用于區(qū)分是請(qǐng)求報(bào)文(叫請(qǐng)求行)還是響應(yīng)報(bào)文(叫狀態(tài)行)。
首部行——用來(lái)說(shuō)明瀏覽器、服務(wù)器或報(bào)文主體的一些信息。首部可以有好幾行,但也可以不使用。最后還要有空行來(lái)和后面的實(shí)體主體分開(kāi)。
實(shí)體主體——在請(qǐng)求報(bào)文中一般不用這個(gè)字段,而在響應(yīng)報(bào)文中也可能沒(méi)有這個(gè)字段。
請(qǐng)求報(bào)文的請(qǐng)求行:
請(qǐng)求行有三個(gè)內(nèi)容:方法、請(qǐng)求資源的URL、HTTP的版本
方法:面向?qū)ο蠹夹g(shù)中使用的專有名詞。方法是對(duì)所請(qǐng)求的對(duì)象進(jìn)行的操作,這些方法實(shí)際上也就是一些命令。所以請(qǐng)求報(bào)文的類型是由它所采用的方法決定的。

例如:

在請(qǐng)求行使用了相對(duì)URL(即省略了主機(jī)的域名)是因?yàn)橄旅娴氖撞啃校ǖ?行)給出了主機(jī)的域名。第3行是告訴服務(wù)器不使用持續(xù)連接,表示瀏覽器希望服務(wù)器在傳送完所請(qǐng)求的對(duì)象后即關(guān)閉TCP連接。這個(gè)請(qǐng)求報(bào)文沒(méi)有實(shí)體主體。
HTTP響應(yīng)報(bào)文的主要特點(diǎn):
每一個(gè)請(qǐng)求報(bào)文發(fā)出后,都能收到一個(gè)響應(yīng)報(bào)文,響應(yīng)報(bào)文的第一行就是狀態(tài)行。狀態(tài)行包括:HTTP的版本、狀態(tài)碼、解釋狀態(tài)碼的簡(jiǎn)單短語(yǔ)。

Ⅳ、在服務(wù)器上存放用戶的信息
上面講過(guò),HTTP是無(wú)狀態(tài)的,這樣做雖簡(jiǎn)化了服務(wù)器的設(shè)計(jì),但實(shí)際工作中,一些萬(wàn)維網(wǎng)站點(diǎn)卻常常希望能夠識(shí)別用戶。比如,購(gòu)物車,推薦商品等。
可在HTTP中使用Coolie。當(dāng)某用戶瀏覽某個(gè)使用Coolie的網(wǎng)站時(shí),該網(wǎng)站的服務(wù)器就為用戶產(chǎn)生一個(gè)唯一的識(shí)別碼,并以此作為索引在服務(wù)器的后端數(shù)據(jù)庫(kù)中產(chǎn)生一個(gè)項(xiàng)目,接著再給用戶的HTTP響應(yīng)報(bào)文中添加一個(gè)叫做Set-cookie的首部行,后面的值是識(shí)別碼。于是網(wǎng)站跟蹤用戶的活動(dòng)。
4.萬(wàn)維網(wǎng)的文檔
Ⅰ、超文本標(biāo)記語(yǔ)言HTML
作用——頁(yè)面制作的標(biāo)準(zhǔn)化,消除不同計(jì)算機(jī)之間信息交流的障礙
HTML定義了許多用于排版的命令,即“標(biāo)簽”。例如,表示后面開(kāi)始用斜體字排版,表示斜體字排版到此結(jié)束。HTML就把各種標(biāo)簽嵌入到萬(wàn)維網(wǎng)的頁(yè)面中,這樣就構(gòu)成了所謂的HTML文檔。是一種可以用任何文本編輯器(例如windows的記事本Notepad)創(chuàng)建的ASCII碼文件。
.html、.htm為后綴時(shí),瀏覽器解釋;.txt為后綴時(shí),不解釋,只能看見(jiàn)原來(lái)的文本文件。

特點(diǎn):①允許在萬(wàn)維網(wǎng)頁(yè)面中插入圖像。一個(gè)頁(yè)面本身帶有的圖像稱為內(nèi)含圖像,HTML標(biāo)準(zhǔn)并沒(méi)有規(guī)定該圖像的格式。實(shí)際上,大多數(shù)瀏覽器支持GIF和JEPG文件,但存儲(chǔ)空間大,但改為經(jīng)壓縮的.gif格式則減少了存儲(chǔ)空間。
②規(guī)定了鏈接的設(shè)置辦法。每個(gè)鏈接有一個(gè)起點(diǎn)和終點(diǎn)。起點(diǎn)說(shuō)明在萬(wàn)維網(wǎng)頁(yè)面中的什么地方可引出一個(gè)鏈接。容易識(shí)別(一般文字用黑色字時(shí),鏈接起點(diǎn)用藍(lán)色字,有時(shí)還加上上下劃線)。終點(diǎn)可以是其他網(wǎng)絡(luò)上的頁(yè)面(遠(yuǎn)程鏈接),也可以是本計(jì)算機(jī)中的某一個(gè)文件或本文件中的某處(本地鏈接)。
Ⅱ、動(dòng)態(tài)萬(wàn)維網(wǎng)文檔
背景——靜態(tài)文檔是指在文檔創(chuàng)作完畢后就存放在萬(wàn)維網(wǎng)服務(wù)器中,在被用戶瀏覽的過(guò)程中,內(nèi)容不會(huì)改變,因此用戶對(duì)靜態(tài)文檔的每次讀取所得到的返回結(jié)果都是相同的。
優(yōu)點(diǎn)是簡(jiǎn)單,可由不懂程序設(shè)計(jì)的人員來(lái)創(chuàng)建,缺點(diǎn)是不夠靈活,信息變化時(shí)就要由文檔的作者手工對(duì)文檔進(jìn)行修改。
定義——是指文檔的內(nèi)容是在瀏覽器訪問(wèn)萬(wàn)維網(wǎng)服務(wù)器時(shí)才由應(yīng)用程序動(dòng)態(tài)創(chuàng)建。當(dāng)瀏覽器請(qǐng)求到達(dá)時(shí),萬(wàn)維網(wǎng)服務(wù)器要運(yùn)行另一個(gè)程序,并把控制轉(zhuǎn)移到此應(yīng)用程序。接著,該應(yīng)用程序?qū)g覽器發(fā)來(lái)的數(shù)據(jù)進(jìn)行處理,并輸出HTTP格式的文檔,萬(wàn)維網(wǎng)服務(wù)器就把應(yīng)用程序的輸出作為對(duì)瀏覽器的響應(yīng)。例子:天氣預(yù)報(bào)、股市行情。
與靜態(tài)文檔差別——服務(wù)器一端,文檔內(nèi)容的生成方法不同。
要實(shí)現(xiàn)動(dòng)態(tài)文檔應(yīng)在以下兩方面對(duì)萬(wàn)維網(wǎng)服務(wù)器的功能進(jìn)行擴(kuò)充:
①應(yīng)增加另一個(gè)應(yīng)用程序,用來(lái)處理瀏覽器發(fā)來(lái)的數(shù)據(jù),并創(chuàng)建動(dòng)態(tài)文檔;
②應(yīng)增加一個(gè)機(jī)制,用來(lái)使萬(wàn)維網(wǎng)服務(wù)器將瀏覽器發(fā)來(lái)的數(shù)據(jù)傳送給這個(gè)應(yīng)用程序,然后萬(wàn)維網(wǎng)服務(wù)器能夠解釋這個(gè)應(yīng)用程序的輸出,并向?yàn)g覽器返回HTML文檔。
舉例——

新增機(jī)制是通用網(wǎng)關(guān)接口CGI(common gateway interface),是一種標(biāo)準(zhǔn),定義了動(dòng)態(tài)文檔應(yīng)如何創(chuàng)建,輸入數(shù)據(jù)應(yīng)如何提供給應(yīng)用程序,以及輸出結(jié)果應(yīng)如何使用。
新增應(yīng)用程序是CGI程序。取這個(gè)名字是因?yàn)槿f(wàn)維網(wǎng)服務(wù)器與CGI的通信遵循CGI標(biāo)準(zhǔn)?!巴ㄓ谩笔钦f(shuō)這個(gè)標(biāo)準(zhǔn)定義的規(guī)則對(duì)其他任何語(yǔ)言是通用的;“網(wǎng)關(guān)”是說(shuō)CGI程序可能要訪問(wèn)其他的服務(wù)器資源,如數(shù)據(jù)庫(kù)或圖形軟件包;“接口”是說(shuō)有一些已定義好的變量和調(diào)用等可供其他CGI程序使用。CGI程序的正式名字是CGI腳本(script),“腳本”是指一個(gè)程序,它是被另一個(gè)程序(解釋程序)而不是計(jì)算機(jī)的處理機(jī)來(lái)解釋或執(zhí)行,可更容易地更快地進(jìn)行編碼,但運(yùn)行起來(lái)比一般的編譯程序要慢,因?yàn)樗恳粭l指令要被另一個(gè)程序來(lái)處理,而不是直接被指令處理器來(lái)處理。
Ⅲ、活動(dòng)萬(wàn)維網(wǎng)文檔
背景——動(dòng)態(tài)文檔一旦建立,它所包含的信息內(nèi)容也就固定下來(lái)而無(wú)法及時(shí)刷新屏幕。另外像動(dòng)畫之類的顯示效果,動(dòng)態(tài)文檔也無(wú)法提供。
用于瀏覽器屏幕顯示的連續(xù)更新的有兩種技術(shù):
①服務(wù)器推送
這種技術(shù)是將所有的工作都交給服務(wù)器,服務(wù)器不斷地運(yùn)行與動(dòng)態(tài)文檔相關(guān)聯(lián)的應(yīng)用功能程序,定期更新信息,并發(fā)送更新過(guò)的文檔。
缺點(diǎn):(1)為滿足很多用戶請(qǐng)求,服務(wù)器要運(yùn)行很多的服務(wù)器推送程序。這造成服務(wù)器開(kāi)銷。(2)服務(wù)器推送技術(shù)要求服務(wù)器為每一個(gè)瀏覽器客戶維持一個(gè)不釋放的TCP連接,隨著TCP連接的數(shù)目增加,每一個(gè)連接所能分配到的網(wǎng)絡(luò)帶寬就下降,導(dǎo)致網(wǎng)絡(luò)傳輸時(shí)延增大。
②活動(dòng)文檔技術(shù)
這種技術(shù)是把所有的工作都轉(zhuǎn)移給瀏覽器端。每當(dāng)瀏覽器請(qǐng)求一個(gè)活動(dòng)文檔時(shí),服務(wù)器就返回一段活動(dòng)文檔程序副本,使該程序副本在瀏覽器端運(yùn)行。這時(shí),活動(dòng)文檔程序可與用戶直接交互,并可連續(xù)地改變屏幕的顯示。只要用戶運(yùn)行活動(dòng)文檔程序,活動(dòng)文檔的內(nèi)容就可以連續(xù)地改變。由于活動(dòng)文檔技術(shù)不需要服務(wù)器的連續(xù)更新傳送,對(duì)網(wǎng)絡(luò)帶寬的要求也不會(huì)太高。
從傳送角度看,瀏覽器和服務(wù)器都把活動(dòng)文檔看成是靜態(tài)文檔。在服務(wù)器上的活動(dòng)文檔的內(nèi)容是不變的,這點(diǎn)和動(dòng)態(tài)文檔是不同的。瀏覽器可在本地緩存一份活動(dòng)文檔的副本?;顒?dòng)文檔還可處理成壓縮形式,便于存儲(chǔ)和傳送。另一點(diǎn)要注意的是,活動(dòng)文檔本身并不包括其運(yùn)行所需的全部軟件,大部分的支持軟件是事先存放在瀏覽器中。

Java語(yǔ)言——一項(xiàng)用于創(chuàng)建和運(yùn)行活動(dòng)文檔的技術(shù)。
小應(yīng)用程序(applet):描述活動(dòng)文檔程序。
Java技術(shù)共有三個(gè)主要組成部分:程序設(shè)計(jì)語(yǔ)言、運(yùn)行環(huán)境、類庫(kù)。
程序設(shè)計(jì)語(yǔ)言——
從C++派生,省去了復(fù)雜的、很少用的語(yǔ)言特點(diǎn)。但和C、C++不兼容。Java的編譯程序?qū)⒃闯绦蜣D(zhuǎn)換成Java字節(jié)碼,這是一種與機(jī)器無(wú)關(guān)的二進(jìn)制代碼。計(jì)算機(jī)程序調(diào)用解釋程序讀取字節(jié)碼,并解釋執(zhí)行。
設(shè)計(jì)成與機(jī)器無(wú)關(guān)的原因:可使任何在計(jì)算機(jī)上運(yùn)行的瀏覽器程序能夠下載并運(yùn)行活動(dòng)文檔;可保證活動(dòng)文檔在所有的瀏覽器上產(chǎn)生同樣的正確輸出;可大大降低活動(dòng)文檔的創(chuàng)建和測(cè)試費(fèi)用,因此不必為每一種計(jì)算機(jī)都制作一個(gè)副本。
運(yùn)行環(huán)境——可允許小應(yīng)用程序操縱用戶的顯示
類庫(kù)——包含提供高級(jí)圖形接口的軟件
運(yùn)行環(huán)境和類庫(kù)——抽象窗口工具箱AWT(abstract window toolkit)執(zhí)行。出現(xiàn)原因:使用小應(yīng)用程序主要是為了復(fù)雜的顯示,只要靜態(tài)顯示不能滿足要求時(shí)就要使用小應(yīng)用程序;一個(gè)控制圖形現(xiàn)實(shí)的程序還必須指明很多的細(xì)節(jié)。
運(yùn)行JAVA的瀏覽器需要兩個(gè)解釋程序——HTML解釋程序和JAVA小應(yīng)用程序解釋程序。
解釋程序——核心是一個(gè)模仿計(jì)算機(jī)的簡(jiǎn)單循環(huán)。作用:①維持一個(gè)指令指針,在初始化時(shí)指在小應(yīng)用程序的開(kāi)始處,每一次循環(huán)操作,就在指令指針指向的地址讀取字節(jié)碼,然后解釋程序?qū)ψ止?jié)碼進(jìn)行解碼,完成指明的操作。②支持JAVA運(yùn)行環(huán)境。即一個(gè)JAVA解釋程序必須能夠在屏幕上顯示圖形,接入到因特網(wǎng),以及執(zhí)行I/O操作。③必須設(shè)計(jì)成使得小應(yīng)用程序能夠利用瀏覽器的設(shè)施來(lái)讀取和顯示靜態(tài)和動(dòng)態(tài)文檔。因此,在瀏覽器中的JAVA解釋程序必須能夠與瀏覽器中的HTTP客戶以及HTML解釋程序進(jìn)行通信。
Ⅳ、瀏覽器的結(jié)構(gòu)

緩存缺點(diǎn):要占用磁盤大量的空間;瀏覽器性能改善只有在用戶再次查看緩存中的頁(yè)面時(shí)才有幫助;要耗費(fèi)時(shí)間吧文件不必要地存儲(chǔ)在磁盤上,這反而降低了瀏覽器的效率。
為了改善,瀏覽器允許用戶調(diào)整緩存策略。如設(shè)置時(shí)間限制,到期后刪除這些文件。
5.萬(wàn)維網(wǎng)的信息檢索系統(tǒng)
Ⅰ、全文檢索搜索與分類目錄搜索
全文檢索搜索——
工作原理:通過(guò)搜索軟件到因特網(wǎng)各網(wǎng)站收集信息→像蜘蛛爬行一樣,按一定規(guī)則建立很大的在線數(shù)據(jù)庫(kù)供查詢→輸入關(guān)鍵詞即可查詢
缺點(diǎn):查詢到的信息有些過(guò)時(shí),必須定期維護(hù)
例如百度、谷歌
分類目錄搜索——
工作原理:利用各網(wǎng)站向搜索引擎提交的網(wǎng)站信息時(shí)填寫的關(guān)鍵詞和網(wǎng)站描述的信息,經(jīng)過(guò)人工審核編輯后,如果認(rèn)為符合網(wǎng)站登錄的條件,則輸入到分類目錄的數(shù)據(jù)庫(kù)中,供網(wǎng)上用戶查詢。
優(yōu)點(diǎn):用戶可根據(jù)網(wǎng)站設(shè)計(jì)好的目錄有針對(duì)性地逐級(jí)查詢所需要的信息,查詢時(shí)不需要使用關(guān)鍵詞,只需要按照分類(先找大類,再找下面的小類),因而查詢的準(zhǔn)確性好。
缺點(diǎn):查詢結(jié)果不是具體頁(yè)面,而是被收錄網(wǎng)站主頁(yè)的URL地址,因而所得到的內(nèi)容就比較有限。
例如雅虎中國(guó)、新浪
垂直搜索引擎——
針對(duì)某一特定領(lǐng)域、特定人群或某一特定需求提供搜索服務(wù)
元搜索引擎——
把用戶提交的檢索請(qǐng)求發(fā)送到多個(gè)獨(dú)立的搜索引擎上去搜索,并把檢索結(jié)果集中統(tǒng)一處理,以統(tǒng)一的格式提供給用戶,因此是搜索引擎之上的搜索引擎。主要精力放在提高搜索速度、智能化處理搜索結(jié)果、個(gè)性化搜索功能的設(shè)置和用戶檢索界面的友好性上。查全率和準(zhǔn)確率高。
Ⅱ、Google搜索技術(shù)的特點(diǎn)
以往大多數(shù)搜索引擎是使用少量大型服務(wù)器,在訪問(wèn)高峰期,搜索速度減慢。而Google則利用在因特網(wǎng)上相互鏈接的PC機(jī)來(lái)快速查找每個(gè)搜索的答案,并且成功地縮短了查找的響應(yīng)時(shí)間。Google的搜索軟件可同時(shí)進(jìn)行許多運(yùn)算,它的核心技術(shù)是PageRank,譯為網(wǎng)頁(yè)排名。
PageRank對(duì)搜索結(jié)果按重要性進(jìn)行排序。它把整個(gè)互聯(lián)網(wǎng)當(dāng)作了一個(gè)整體對(duì)待,檢查整個(gè)網(wǎng)絡(luò)鏈接的結(jié)構(gòu),并確定哪些網(wǎng)頁(yè)重要性最高。更具體些,就是如果有很多網(wǎng)站上的鏈接都指向頁(yè)面A,那么頁(yè)面A比較重要。
還要進(jìn)行超文本匹配分析,以確定哪些網(wǎng)頁(yè)與正在執(zhí)行的特定搜索相關(guān)。Google把最相關(guān)、最可靠的搜索結(jié)果放在首位。
2.幾種常用的系統(tǒng)調(diào)用