先討論許多應(yīng)用協(xié)議都要使用的域名系統(tǒng)。在介紹了文件傳送協(xié)議和遠(yuǎn)程登錄協(xié)議后,就重點(diǎn)介紹萬維網(wǎng)的工作原理及其主要協(xié)議航闺。接著討論用戶最常用的 因特網(wǎng)電子郵件。最后猴誊,介紹有關(guān)網(wǎng)絡(luò)管理方面的問題以及有關(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地址的長度是固定的32位,而域名的長度并不是固定的满哪,機(jī)器處理起來比較困難歉胶。
整個(gè)因特網(wǎng)為什么不只使用一個(gè)域名服務(wù)器汛兜?——會(huì)因過負(fù)荷而無法正常工作⊥ń瘢↓
因特網(wǎng)域名系統(tǒng)DNS被設(shè)計(jì)成為一個(gè)聯(lián)機(jī)分布式數(shù)據(jù)庫系統(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ù)器程序(可簡稱為域名服務(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是為了減少開銷)只酥。本地域名服務(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)求叫胖。這種過程直至找到能夠回答該請(qǐng)求的域名服務(wù)器為止。(查找過程后續(xù)還要討論)
2.因特網(wǎng)的域名結(jié)構(gòu)
命名規(guī)則——域名中的標(biāo)號(hào)都由英文字母和數(shù)字組成她奥,每一個(gè)標(biāo)號(hào)不超過63個(gè)字符(為記憶方便瓮增,規(guī)定12個(gè)字符),也不區(qū)分大小寫字母哩俭。標(biāo)號(hào)中的除連字符(-)外不能使用其他的標(biāo)點(diǎn)符號(hào)绷跑。級(jí)別低的寫在左邊,高的寫在右邊凡资。由多個(gè)標(biāo)號(hào)組成的完整域名總共不超過255個(gè)字符砸捏。
域名是一個(gè)邏輯概念——并不代表物理地點(diǎn)谬运。域名中的“點(diǎn)”和點(diǎn)分十進(jìn)制IP地址中的“點(diǎn)”并無一一對(duì)應(yīng)的關(guān)系,點(diǎn)分十進(jìn)制IP地址中一定是包含三個(gè)“點(diǎn)”垦藏,但每一個(gè)域名中“點(diǎn)”的數(shù)目則不一定正好是三個(gè)梆暖。
頂級(jí)域名TLD(top level domain)分為三類——①國家頂級(jí)域名nTLD,如cn中國掂骏、us美國轰驳、uk英國。②通用頂級(jí)域名gTLD弟灼,如com公司企業(yè)级解、net政府機(jī)構(gòu)、org非營利性的組織田绑、int國際組織勤哗、edu美國專用教育機(jī)構(gòu)、gov美國的政府機(jī)構(gòu)掩驱、mil美國的軍事部門芒划。③基礎(chǔ)結(jié)構(gòu)域名。
二級(jí)域名分為——①類別域名:ac科研機(jī)構(gòu)昙篙、com工腊状、商、金融等企業(yè)苔可、edu中國的教育機(jī)構(gòu)缴挖、gov中國的政府機(jī)構(gòu)、mil中國的國防機(jī)構(gòu)焚辅、net提供互連網(wǎng)絡(luò)服務(wù)的機(jī)構(gòu)映屋、org非營利性的組織。②行政區(qū)域名:適用于我國的各省同蜻、自治區(qū)棚点、直轄市,bj北京湾蔓。
3.域名服務(wù)器
區(qū)——一個(gè)服務(wù)器所負(fù)責(zé)管轄的范圍瘫析。在一個(gè)區(qū)中的所有結(jié)點(diǎn)必須是能夠連通的,每一個(gè)區(qū)設(shè)置相應(yīng)的權(quán)限域名服務(wù)器默责,用來保存該區(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ǎng)上共有13個(gè)不同IP地址的根域名服務(wù)器,它們名字是用一個(gè)英文字母命名嚷往,從a一直到m(前13個(gè)字母)葛账,分別是a.rootsevers.net,...,m.rootsevers.net。不是指13個(gè)機(jī)器皮仁,而是13套裝置注竿,運(yùn)營組織在美國,但分布在世界各地魂贬,使世界上大部分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的查詢過程愈犹,也更加合理利用了因特網(wǎng)的資源键科。
許多情況下,根域名服務(wù)器并不直接把待查詢的域名直接轉(zhuǎn)換成IP地址(根域名服務(wù)器也沒有存放這種信息)漩怎,而是告訴本地域名服務(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ù)器窑滞。
為了提高域名服務(wù)器的可靠性,DNS域名服務(wù)器就把數(shù)據(jù)復(fù)制到幾個(gè)域名服務(wù)器來保存恢筝,其中的一個(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ù)的一致性带斑。
Ⅱ鼓寺、兩種查詢
域名解析過程注意:
①主機(jī)向本地域名服務(wù)器的查詢一般都是采用遞歸查詢(recursive query)。如果主機(jī)所詢問的本地域名服務(wù)器不知道被查詢域名的IP地址勋磕,本地域名服務(wù)器就以DNS客戶的身份妈候,向其他根域名服務(wù)器繼續(xù)發(fā)出查詢請(qǐng)求報(bào)文(即替該主機(jī)繼續(xù)查詢),而不是讓該主機(jī)自己進(jìn)行下一步的查詢挂滓。因此苦银,遞歸查詢返回的查詢結(jié)果或者是所要查詢的IP地址,或者是報(bào)錯(cuò)赶站,表示無法查詢到所需的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ù)器)。高速緩存用來存放最近查詢過的域名以及從何處獲得域名映射信息的記錄驳庭。
為保持高速緩存中的內(nèi)容正確刑顺,域名服務(wù)器應(yīng)為每項(xiàng)內(nèi)容設(shè)置計(jì)時(shí)器并處理超過合理時(shí)間的項(xiàng)(例如,每個(gè)項(xiàng)目只存放兩天)饲常。當(dāng)域名服務(wù)器已從緩存中刪去某項(xiàng)信息后又被請(qǐng)求查詢該項(xiàng)信息蹲堂,就必須重新到授權(quán)管理該項(xiàng)的域名服務(wù)器獲取綁定信息。當(dāng)權(quán)限域名服務(wù)器回答一個(gè)查詢請(qǐng)求時(shí)贝淤,在響應(yīng)中都指明綁定有效存在的時(shí)間值柒竞。增加此時(shí)間值可減少網(wǎng)絡(luò)開銷,而減少此時(shí)間值可提高域名轉(zhuǎn)換的準(zhǔn)確性播聪。
主機(jī)也有高速緩存朽基。
二布隔、文件傳送協(xié)議
1.FTP概述
文件傳送協(xié)議FTP(file transfer protocol),提供交互式的訪問稼虎,允許客戶指明文件的類型與格式衅檀,并允許文件具有存取權(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ī)訪問(on-line access)擒滑。允許多個(gè)程序同時(shí)對(duì)一個(gè)文件進(jìn)行存取。和數(shù)據(jù)庫系統(tǒng)不同之處是用戶不需要調(diào)用一個(gè)特殊的客戶進(jìn)程库车,而是由操作系統(tǒng)提供對(duì)遠(yuǎn)地共享文件進(jìn)行訪問的服務(wù)洋满,就如同對(duì)本地文件的訪問一樣。這就使用戶可以用遠(yuǎn)地文件作為輸入和輸出來運(yùn)行任何應(yīng)用程序,而操作系統(tǒng)中的文件系統(tǒng)則提供對(duì)共享文件的透明存取。透明存儲(chǔ)優(yōu)點(diǎn)是:將原來用于處理本地文件的應(yīng)用程序用來處理遠(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)使用的命令不同昧旨、訪問控制方法不同岭接。
文件傳送協(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)程工作步驟如下:①打開熟知端口(端口號(hào)為21),使客戶進(jìn)程能夠連接上拯爽;②等待客戶進(jìn)程發(fā)出連接請(qǐng)求索抓;③啟動(dòng)從屬進(jìn)程來處理客戶進(jìn)程發(fā)來的請(qǐng)求。從屬進(jìn)程對(duì)客戶進(jìn)程的請(qǐng)求處理完畢后即終止毯炮,但從屬進(jìn)程在運(yùn)行期間根據(jù)需要還可能創(chuàng)建其他一些子進(jìn)程逼肯;④回到等待狀態(tài),繼續(xù)接受其他客戶進(jìn)程發(fā)來的請(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男翰,來回傳送這樣大的文件很花時(shí)間另患。實(shí)際上這種傳送是不必要的,因?yàn)橛?jì)算機(jī)A并沒有使用該文件的內(nèi)容蛾绎。
然而網(wǎng)絡(luò)文件系統(tǒng)NFS則采用另一種思路昆箕。NFS允許應(yīng)用進(jìn)程打開一個(gè)遠(yuǎn)地文件,并能在該文件的某一特定的位置上開始讀寫數(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.簡單文件傳送協(xié)議TFTP
(trivial file transfer protocol),是很小且易于實(shí)現(xiàn)的文件傳送協(xié)議公荧。雖然TFTP也使用客戶服務(wù)器方式带射,但它使用UDP數(shù)據(jù)報(bào),因此TFTP需要有自己的差錯(cuò)改正措施循狰。TFTP只支持文件傳輸而不支持交互窟社,沒有一個(gè)龐大的命令集,沒有列目錄的功能晤揣,也不能對(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開始咏雌;
③支持ASCII碼或二進(jìn)制傳送;
④可對(duì)文件進(jìn)行讀或?qū)懀?/p>
⑤使用很簡單的首部校焦。
它的工作很像停止等待協(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)的丟失而告失敗。
在一開始工作時(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)行通信。若文件長度恰好為512字節(jié)的整數(shù)倍花竞,則在文件傳送完畢后骗卜,還必須在最后發(fā)送一個(gè)只含首部而無數(shù)據(jù)的數(shù)據(jù)報(bào)文。若文件長度不是512字節(jié)的整數(shù)倍,則最后傳送數(shù)據(jù)報(bào)文中的數(shù)據(jù)字段一定不滿512字節(jié)寇仓,這正好可作為文件結(jié)束的標(biāo)志举户。
三、遠(yuǎn)程終端協(xié)議TELNET
用戶用TELNET就可在其所在地通過TCP連接注冊(即登錄)到遠(yuǎn)地的另一個(gè)主機(jī)上(使用主機(jī)名或IP地址)遍烦,這種服務(wù)是透明的俭嘁,所以也叫終端仿真協(xié)議。
使用客戶服務(wù)器方式服猪。能適應(yīng)許多計(jì)算機(jī)和操作系統(tǒng)的差異供填,因?yàn)樗x了數(shù)據(jù)和命令怎樣通過因特網(wǎng),這些定義就是網(wǎng)絡(luò)虛擬終端NVT(network virtual terminal)罢猪。
NVT的格式定義很簡單近她,所有通信都使用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ǎng)WWW
1.萬維網(wǎng)概述
world wide web汤徽,它用鏈接的方法能非常方便地從因特網(wǎng)上的一個(gè)站點(diǎn)訪問另一個(gè)站點(diǎn)娩缰,從而主動(dòng)地按需獲取豐富的信息。
萬維網(wǎng)是一個(gè)分布式的超媒體(hypermedia)谒府,它是超文本(hypertext)系統(tǒng)的擴(kuò)充拼坎。所謂超文本是包含指向其他文檔的鏈接的文本,是萬維網(wǎng)的基礎(chǔ)完疫。超媒體與超文本的區(qū)別是文檔內(nèi)容不同泰鸡,超文本文檔僅包含文本信息,而超媒體文檔還包含其他表示方式的信息趋惨,如圖形、圖像惦蚊、聲音器虾、動(dòng)畫、活動(dòng)視頻圖像蹦锋。
非分布式的超媒體系統(tǒng)中兆沙,各種信息都駐留在單個(gè)計(jì)算機(jī)的磁盤中。由于各種文檔都可以從本地獲得莉掂,因此這些文檔之間的鏈接可進(jìn)行一致性檢查葛圃。所以,一個(gè)非分布式超媒體系統(tǒng)能夠保證所有的鏈接都是有效的和一致的。
萬維網(wǎng)把大量信息分布在整個(gè)因特網(wǎng)上库正。每臺(tái)主機(jī)上的文檔都獨(dú)立進(jìn)行管理曲楚。對(duì)這些文檔的增加、修改褥符、刪除或重新命名都不需要(實(shí)際上也不可能)通知到因特網(wǎng)上成千上萬的節(jié)點(diǎn)龙誊。這樣,萬維網(wǎng)文檔之間的鏈接就經(jīng)常會(huì)不一致喷楣。
萬維網(wǎng)以客戶服務(wù)器方法工作趟大。萬維網(wǎng)文檔所駐留的主機(jī)則運(yùn)行服務(wù)器程序,因此這個(gè)主機(jī)也稱為萬維網(wǎng)服務(wù)器铣焊。客戶程序向服務(wù)器程序發(fā)出請(qǐng)求逊朽,服務(wù)器程序向客戶程序送回所要的萬維網(wǎng)文檔。在一個(gè)客戶程序主窗口上顯示出的萬維網(wǎng)文檔稱為頁面曲伊。
于是叽讳,萬維網(wǎng)需解決以下問題:
①怎樣標(biāo)志分布在整個(gè)因特網(wǎng)上的萬維網(wǎng)上的文檔?
——使用統(tǒng)一的定位符URL(uniform resource locator)來標(biāo)志萬維網(wǎng)上的各種文檔熊昌,并使每一個(gè)文檔在整個(gè)因特網(wǎng)的范圍內(nèi)具有唯一的標(biāo)識(shí)符URL绽榛。
②用什么樣的協(xié)議來實(shí)現(xiàn)萬維網(wǎng)上各種連接?
——萬維網(wǎng)客戶程序與萬維網(wǎng)服務(wù)器程序之間的交互遵守嚴(yán)格的協(xié)議,這就是超文本協(xié)議HTTP(hypertext transfer protocol)婿屹。HTTP是應(yīng)用層協(xié)議灭美,使用TCP連接進(jìn)行可靠的傳送。
③怎樣使不同作者創(chuàng)作的不同風(fēng)格的萬維網(wǎng)文檔都能在因特網(wǎng)上的各種主機(jī)上顯示出來昂利,同時(shí)使用戶清楚地知道在什么地方存在著鏈接届腐?
——萬維網(wǎng)使用超文本標(biāo)記語言HTML(hypertext market language),使得萬維網(wǎng)頁面的設(shè)計(jì)者可以很方便地用連接從本頁面的某處鏈接到因特網(wǎng)上的任何一個(gè)萬維網(wǎng)頁面蜂奸,并且能夠在自己的主機(jī)屏幕上將這些頁面顯示出來犁苏。
④怎樣使用戶能夠很方便地找到所需的信息?
——用戶可以使用搜索工具在萬維網(wǎng)上方便地查找所需的信息扩所。
2.統(tǒng)一資源定位符URL
Ⅰ围详、URL的格式
資源是指因特網(wǎng)上可以被訪問的任何對(duì)象,包括文件目錄祖屏、文件助赞、文檔、圖像袁勺、聲音等雹食,以及與因特網(wǎng)相連的任何形式的數(shù)據(jù)。
URL相當(dāng)于一個(gè)文件名在網(wǎng)絡(luò)范圍的擴(kuò)展期丰。它是與因特網(wǎng)相連的機(jī)器上的任何可訪問對(duì)象的一個(gè)指針群叶。由于訪問不同對(duì)象所使用的協(xié)議不同吃挑,所以URL還指出讀取某個(gè)對(duì)象時(shí)所使用的協(xié)議。URL的一般形式:
<協(xié)議>://<主機(jī)>:<端口>/<路徑>
<協(xié)議>指出使用什么協(xié)議來獲取該萬維網(wǎng)文檔街立,如HTTP舶衬、ftp。<主機(jī)>指出萬維網(wǎng)文檔是在哪一個(gè)主機(jī)上几晤,就是指該主機(jī)在因特網(wǎng)上的域名约炎。<端口>和<路徑>可省略。
Ⅱ蟹瘾、使用HTTP的URL
HTTP的URL的一般形式:http://<主機(jī)>:<端口>/<路徑>圾浅。
HTTP的默認(rèn)端口號(hào)是80,通澈镀樱可省略狸捕。若再省略<路徑>,則URL就指到因特網(wǎng)上的某個(gè)主頁(home page)众雷。如http://www.tsinghua.edu.cn灸拍。雖然URL里面的字母不分大小寫,但有的頁面為了讀者看起來方便砾省,故意用了一些大寫字母鸡岗,實(shí)際上這對(duì)使用windows的PC機(jī)用戶是沒有關(guān)系的。
用戶使用URL并非僅僅能夠訪問萬維網(wǎng)的頁面编兄,還能通過URL使用其他的因特網(wǎng)應(yīng)用程序轩性,如FTP或USENET新聞組等。更重要的是狠鸳,用戶在使用這些應(yīng)用程序時(shí)揣苏,只使用一個(gè)程序,即瀏覽器件舵。這顯然方便卸察。
3.超文本傳送協(xié)議HTTP
Ⅰ、HTTP的操作過程
HTTP協(xié)議定義了瀏覽器(即萬維網(wǎng)客戶進(jìn)程)怎樣向萬維網(wǎng)服務(wù)器請(qǐng)求萬維網(wǎng)文檔铅祸,以及服務(wù)器怎樣把文檔傳送給服務(wù)器坑质。從層次角度看,HTTP是面向事務(wù)(事務(wù)指一系列的信息交換临梗,而這一系列的信息交換是一個(gè)不可分割的整體涡扼,即要么所有的信息交換完成,要么一次交換都不進(jìn)行)的應(yīng)用層協(xié)議夜焦,它是萬維網(wǎng)上能夠可靠地交換文件(包括文本壳澳、聲音岂贩、圖像等各種多媒體文件)的重要基礎(chǔ)茫经。
每個(gè)萬維網(wǎng)網(wǎng)點(diǎn)都有一個(gè)服務(wù)器進(jìn)程巷波,它不斷地監(jiān)聽TCP的端口80,以便發(fā)現(xià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連接傳送遂黍。
用戶瀏覽頁面的方式有兩種终佛,一種是在瀏覽器的地址窗口中鍵入所要找的頁面的URL,另一種是在某一個(gè)頁面中用鼠標(biāo)點(diǎn)擊一個(gè)可選部分雾家,這時(shí)瀏覽器會(huì)自動(dòng)在因特網(wǎng)上找到所要鏈接的頁面铃彰。
假定,用戶用鼠標(biāo)點(diǎn)擊了屏幕上的一個(gè)可選部分芯咧,他使用的鏈接指向了“清華大學(xué)院系設(shè)置”的頁面牙捉,其URL是http://www.tsinghua.edu.cn/chn/yxsz/index.htm。用戶點(diǎn)擊鼠標(biāo)后敬飒,發(fā)生的事件(以HTTP1.0為例):
①瀏覽器分析鏈接指向頁面的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ù)在傳輸過程中被丟棄后又怎樣被重傳慕嚷。但是,HTTP協(xié)議本身是無連接的撼泛。這就是說挠说,雖然HTTP使用了TCP連接,但通信的雙方在交換HTTP報(bào)文之前不需要先建立HTTP連接愿题。
HTTP協(xié)議是無狀態(tài)的损俭。也就是說蛙奖,同一個(gè)用戶第二次訪問同一個(gè)服務(wù)器上的頁面時(shí),服務(wù)器的響應(yīng)與第一次被訪問時(shí)的相同(假定現(xiàn)在服務(wù)器還沒有把該頁面更新),因?yàn)榉?wù)器不記得曾經(jīng)訪問過的這個(gè)客戶琐脏,也不記得為該客戶曾經(jīng)服務(wù)過多少次攒砖。HTTP的無狀態(tài)特性簡化了服務(wù)器的設(shè)計(jì),使服務(wù)器更容易支持大量并發(fā)的HTTP請(qǐng)求昂拂。
從上圖看出掐暮,請(qǐng)求一個(gè)萬維網(wǎng)文檔所需的時(shí)間是該文檔的傳輸時(shí)間(與文檔大小成正比)加上兩倍往返時(shí)間RTT。HTTP/1.0的缺點(diǎn)是每請(qǐng)求一個(gè)文檔就要有兩倍RTT的開銷政钟,另外萬維網(wǎng)客戶和服務(wù)器為每一次建立新的TCP連接都要分配緩存和變量路克。特別是萬維網(wǎng)服務(wù)器往往要同時(shí)服務(wù)于大量客戶的請(qǐng)求,這樣會(huì)使萬維網(wǎng)服務(wù)器的負(fù)擔(dān)很重养交,好在瀏覽器提供了能夠打開5-10個(gè)并行的TCP連接精算,而每一個(gè)TCP連接處理客戶的一個(gè)請(qǐng)求,因此使用并行TCP連接能夠縮短響應(yīng)時(shí)間碎连。
HTTP/1.1協(xié)議較好解決了這個(gè)問題灰羽。它使用了持續(xù)連接,即萬維網(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連接已建立后傍念,客戶每訪問一次對(duì)象都要用去一個(gè)往返時(shí)間RTT。這比非持續(xù)連接的兩倍RTT的開銷節(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í)顺又,客戶訪問所有的對(duì)象只需花費(fèi)一個(gè)RTT時(shí)間。流水線工作方式使TCP連接中的空閑時(shí)間減少等孵,提高了下載文檔效率稚照。
Ⅱ、代理服務(wù)器(proxy sever)
作用——把最近的一些請(qǐng)求和響應(yīng)暫存在本地磁盤中
工作地——客戶端俯萌、服務(wù)端果录、中間系統(tǒng)
過程——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)文中师崎,通過已建立的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è)字段的長度都是不確定的蛙吏。
各行結(jié)構(gòu):
開始行——用于區(qū)分是請(qǐng)求報(bào)文(叫請(qǐng)求行)還是響應(yīng)報(bào)文(叫狀態(tài)行)。
首部行——用來說明瀏覽器鞋吉、服務(wù)器或報(bào)文主體的一些信息鸦做。首部可以有好幾行,但也可以不使用谓着。最后還要有空行來和后面的實(shí)體主體分開泼诱。
實(shí)體主體——在請(qǐng)求報(bào)文中一般不用這個(gè)字段,而在響應(yīng)報(bào)文中也可能沒有這個(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)文沒有實(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)碼的簡單短語腊嗡。
Ⅳ着倾、在服務(wù)器上存放用戶的信息
上面講過,HTTP是無狀態(tài)的燕少,這樣做雖簡化了服務(wù)器的設(shè)計(jì)屈呕,但實(shí)際工作中,一些萬維網(wǎng)站點(diǎn)卻常常希望能夠識(shí)別用戶棺亭。比如虎眨,購物車,推薦商品等镶摘。
可在HTTP中使用Coolie嗽桩。當(dāng)某用戶瀏覽某個(gè)使用Coolie的網(wǎng)站時(shí),該網(wǎng)站的服務(wù)器就為用戶產(chǎn)生一個(gè)唯一的識(shí)別碼凄敢,并以此作為索引在服務(wù)器的后端數(shù)據(jù)庫中產(chǎn)生一個(gè)項(xiàng)目碌冶,接著再給用戶的HTTP響應(yīng)報(bào)文中添加一個(gè)叫做Set-cookie的首部行,后面的值是識(shí)別碼涝缝。于是網(wǎng)站跟蹤用戶的活動(dòng)扑庞。
4.萬維網(wǎng)的文檔
Ⅰ、超文本標(biāo)記語言HTML
作用——頁面制作的標(biāo)準(zhǔn)化拒逮,消除不同計(jì)算機(jī)之間信息交流的障礙
HTML定義了許多用于排版的命令罐氨,即“標(biāo)簽”。例如滩援,表示后面開始用斜體字排版栅隐,表示斜體字排版到此結(jié)束。HTML就把各種標(biāo)簽嵌入到萬維網(wǎng)的頁面中,這樣就構(gòu)成了所謂的HTML文檔租悄。是一種可以用任何文本編輯器(例如windows的記事本Notepad)創(chuàng)建的ASCII碼文件谨究。
.html、.htm為后綴時(shí)泣棋,瀏覽器解釋胶哲;.txt為后綴時(shí),不解釋潭辈,只能看見原來的文本文件鸯屿。
特點(diǎn):①允許在萬維網(wǎng)頁面中插入圖像。一個(gè)頁面本身帶有的圖像稱為內(nèi)含圖像萎胰,HTML標(biāo)準(zhǔn)并沒有規(guī)定該圖像的格式。實(shí)際上棚辽,大多數(shù)瀏覽器支持GIF和JEPG文件技竟,但存儲(chǔ)空間大摸袁,但改為經(jīng)壓縮的.gif格式則減少了存儲(chǔ)空間荣月。
②規(guī)定了鏈接的設(shè)置辦法及皂。每個(gè)鏈接有一個(gè)起點(diǎn)和終點(diǎn)圣勒。起點(diǎn)說明在萬維網(wǎng)頁面中的什么地方可引出一個(gè)鏈接娇斩。容易識(shí)別(一般文字用黑色字時(shí)盖喷,鏈接起點(diǎn)用藍(lán)色字夯秃,有時(shí)還加上上下劃線)愤惰。終點(diǎn)可以是其他網(wǎng)絡(luò)上的頁面(遠(yuǎn)程鏈接)包归,也可以是本計(jì)算機(jī)中的某一個(gè)文件或本文件中的某處(本地鏈接)锨推。
Ⅱ、動(dòng)態(tài)萬維網(wǎng)文檔
背景——靜態(tài)文檔是指在文檔創(chuàng)作完畢后就存放在萬維網(wǎng)服務(wù)器中公壤,在被用戶瀏覽的過程中换可,內(nèi)容不會(huì)改變,因此用戶對(duì)靜態(tài)文檔的每次讀取所得到的返回結(jié)果都是相同的厦幅。
優(yōu)點(diǎn)是簡單沾鳄,可由不懂程序設(shè)計(jì)的人員來創(chuàng)建,缺點(diǎn)是不夠靈活确憨,信息變化時(shí)就要由文檔的作者手工對(duì)文檔進(jìn)行修改译荞。
定義——是指文檔的內(nèi)容是在瀏覽器訪問萬維網(wǎng)服務(wù)器時(shí)才由應(yīng)用程序動(dòng)態(tài)創(chuàng)建。當(dāng)瀏覽器請(qǐng)求到達(dá)時(shí)休弃,萬維網(wǎng)服務(wù)器要運(yùn)行另一個(gè)程序吞歼,并把控制轉(zhuǎn)移到此應(yīng)用程序。接著塔猾,該應(yīng)用程序?qū)g覽器發(fā)來的數(shù)據(jù)進(jìn)行處理浆熔,并輸出HTTP格式的文檔,萬維網(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ǎng)服務(wù)器的功能進(jìn)行擴(kuò)充:
①應(yīng)增加另一個(gè)應(yīng)用程序茫多,用來處理瀏覽器發(fā)來的數(shù)據(jù),并創(chuàng)建動(dòng)態(tài)文檔忽刽;
②應(yīng)增加一個(gè)機(jī)制天揖,用來使萬維網(wǎng)服務(wù)器將瀏覽器發(fā)來的數(shù)據(jù)傳送給這個(gè)應(yīng)用程序,然后萬維網(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ǎng)服務(wù)器與CGI的通信遵循CGI標(biāo)準(zhǔn)∈阋校“通用”是說這個(gè)標(biāo)準(zhǔn)定義的規(guī)則對(duì)其他任何語言是通用的褐着;“網(wǎng)關(guān)”是說CGI程序可能要訪問其他的服務(wù)器資源,如數(shù)據(jù)庫或圖形軟件包托呕;“接口”是說有一些已定義好的變量和調(diào)用等可供其他CGI程序使用含蓉。CGI程序的正式名字是CGI腳本(script),“腳本”是指一個(gè)程序项郊,它是被另一個(gè)程序(解釋程序)而不是計(jì)算機(jī)的處理機(jī)來解釋或執(zhí)行谴餐,可更容易地更快地進(jìn)行編碼,但運(yùn)行起來比一般的編譯程序要慢呆抑,因?yàn)樗恳粭l指令要被另一個(gè)程序來處理岂嗓,而不是直接被指令處理器來處理。
Ⅲ鹊碍、活動(dòng)萬維網(wǎng)文檔
背景——動(dòng)態(tài)文檔一旦建立厌殉,它所包含的信息內(nèi)容也就固定下來而無法及時(shí)刷新屏幕。另外像動(dòng)畫之類的顯示效果侈咕,動(dòng)態(tài)文檔也無法提供公罕。
用于瀏覽器屏幕顯示的連續(xù)更新的有兩種技術(shù):
①服務(wù)器推送
這種技術(shù)是將所有的工作都交給服務(wù)器,服務(wù)器不斷地運(yùn)行與動(dòng)態(tài)文檔相關(guān)聯(lián)的應(yīng)用功能程序耀销,定期更新信息楼眷,并發(fā)送更新過的文檔。
缺點(diǎn):(1)為滿足很多用戶請(qǐng)求,服務(wù)器要運(yùn)行很多的服務(wù)器推送程序罐柳。這造成服務(wù)器開銷掌腰。(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語言——一項(xiàng)用于創(chuàng)建和運(yùn)行活動(dòng)文檔的技術(shù)。
小應(yīng)用程序(applet):描述活動(dòng)文檔程序燎斩。
Java技術(shù)共有三個(gè)主要組成部分:程序設(shè)計(jì)語言虱歪、運(yùn)行環(huán)境、類庫栅表。
程序設(shè)計(jì)語言——
從C++派生笋鄙,省去了復(fù)雜的、很少用的語言特點(diǎn)怪瓶。但和C萧落、C++不兼容。Java的編譯程序?qū)⒃闯绦蜣D(zhuǎn)換成Java字節(jié)碼,這是一種與機(jī)器無關(guān)的二進(jìn)制代碼找岖。計(jì)算機(jī)程序調(diào)用解釋程序讀取字節(jié)碼陨倡,并解釋執(zhí)行。
設(shè)計(jì)成與機(jī)器無關(guān)的原因:可使任何在計(jì)算機(jī)上運(yùn)行的瀏覽器程序能夠下載并運(yùn)行活動(dòng)文檔宣增;可保證活動(dòng)文檔在所有的瀏覽器上產(chǎn)生同樣的正確輸出玫膀;可大大降低活動(dòng)文檔的創(chuàng)建和測試費(fèi)用,因此不必為每一種計(jì)算機(jī)都制作一個(gè)副本爹脾。
運(yùn)行環(huán)境——可允許小應(yīng)用程序操縱用戶的顯示
類庫——包含提供高級(jí)圖形接口的軟件
運(yùn)行環(huán)境和類庫——抽象窗口工具箱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ī)的簡單循環(huán)泌霍。作用:①維持一個(gè)指令指針货抄,在初始化時(shí)指在小應(yīng)用程序的開始處,每一次循環(huán)操作朱转,就在指令指針指向的地址讀取字節(jié)碼蟹地,然后解釋程序?qū)ψ止?jié)碼進(jìn)行解碼,完成指明的操作藤为。②支持JAVA運(yùn)行環(huán)境怪与。即一個(gè)JAVA解釋程序必須能夠在屏幕上顯示圖形,接入到因特網(wǎng)缅疟,以及執(zhí)行I/O操作分别。③必須設(shè)計(jì)成使得小應(yīng)用程序能夠利用瀏覽器的設(shè)施來讀取和顯示靜態(tài)和動(dòng)態(tài)文檔。因此存淫,在瀏覽器中的JAVA解釋程序必須能夠與瀏覽器中的HTTP客戶以及HTML解釋程序進(jìn)行通信耘斩。
Ⅳ、瀏覽器的結(jié)構(gòu)
緩存缺點(diǎn):要占用磁盤大量的空間桅咆;瀏覽器性能改善只有在用戶再次查看緩存中的頁面時(shí)才有幫助括授;要耗費(fèi)時(shí)間吧文件不必要地存儲(chǔ)在磁盤上,這反而降低了瀏覽器的效率岩饼。
為了改善荚虚,瀏覽器允許用戶調(diào)整緩存策略。如設(shè)置時(shí)間限制忌愚,到期后刪除這些文件曲管。
5.萬維網(wǎng)的信息檢索系統(tǒng)
Ⅰ、全文檢索搜索與分類目錄搜索
全文檢索搜索——
工作原理:通過搜索軟件到因特網(wǎng)各網(wǎng)站收集信息→像蜘蛛爬行一樣硕糊,按一定規(guī)則建立很大的在線數(shù)據(jù)庫供查詢→輸入關(guān)鍵詞即可查詢
缺點(diǎn):查詢到的信息有些過時(shí)院水,必須定期維護(hù)
例如百度腊徙、谷歌
分類目錄搜索——
工作原理:利用各網(wǎng)站向搜索引擎提交的網(wǎng)站信息時(shí)填寫的關(guān)鍵詞和網(wǎng)站描述的信息,經(jīng)過人工審核編輯后檬某,如果認(rèn)為符合網(wǎng)站登錄的條件撬腾,則輸入到分類目錄的數(shù)據(jù)庫中,供網(wǎng)上用戶查詢恢恼。
優(yōu)點(diǎn):用戶可根據(jù)網(wǎng)站設(shè)計(jì)好的目錄有針對(duì)性地逐級(jí)查詢所需要的信息民傻,查詢時(shí)不需要使用關(guān)鍵詞,只需要按照分類(先找大類场斑,再找下面的小類)漓踢,因而查詢的準(zhǔn)確性好。
缺點(diǎn):查詢結(jié)果不是具體頁面漏隐,而是被收錄網(wǎng)站主頁的URL地址喧半,因而所得到的內(nèi)容就比較有限。
例如雅虎中國青责、新浪
垂直搜索引擎——
針對(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ù)器榨乎,在訪問高峰期怎燥,搜索速度減慢。而Google則利用在因特網(wǎng)上相互鏈接的PC機(jī)來快速查找每個(gè)搜索的答案蜜暑,并且成功地縮短了查找的響應(yīng)時(shí)間铐姚。Google的搜索軟件可同時(shí)進(jìn)行許多運(yùn)算,它的核心技術(shù)是PageRank肛捍,譯為網(wǎng)頁排名隐绵。
PageRank對(duì)搜索結(jié)果按重要性進(jìn)行排序。它把整個(gè)互聯(lián)網(wǎng)當(dāng)作了一個(gè)整體對(duì)待拙毫,檢查整個(gè)網(wǎng)絡(luò)鏈接的結(jié)構(gòu)依许,并確定哪些網(wǎng)頁重要性最高。更具體些缀蹄,就是如果有很多網(wǎng)站上的鏈接都指向頁面A峭跳,那么頁面A比較重要膘婶。
還要進(jìn)行超文本匹配分析,以確定哪些網(wǎng)頁與正在執(zhí)行的特定搜索相關(guān)蛀醉。Google把最相關(guān)悬襟、最可靠的搜索結(jié)果放在首位。
2.幾種常用的系統(tǒng)調(diào)用