【筆記】謝希仁—計網五版:chapter six 應用層(一)

先討論許多應用協議都要使用的域名系統。在介紹了文件傳送協議和遠程登錄協議后,就重點介紹萬維網的工作原理及其主要協議。接著討論用戶最常用的 因特網電子郵件。最后,介紹有關網絡管理方面的問題以及有關網絡編程的概念。

一、域名系統DNS(domain name system)

1.域名系統概述

背景——ARPANET時代,整個網絡上只有數百臺計算機,那時使用一個叫作hosts的文件,列出所有主機名字和相應的IP地址。只要用戶輸入一個主機名字,計算機就可很快地把這個主機名字轉換成機器能夠識別的二進制IP地址。

為什么機器在處理IP數據報時要使用IP地址而不使用域名呢?——IP地址的長度是固定的32位,而域名的長度并不是固定的,機器處理起來比較困難。

整個因特網為什么不只使用一個域名服務器?——會因過負荷而無法正常工作。↓

因特網域名系統DNS被設計成為一個聯機分布式數據庫系統,并采用客戶服務器方式。DNS使大多名字都在本地解析,僅少量解析需要在因特網上通信,因此DNS系統的效率很高。由于DNS是分布式系統,即使單個計算機出了故障,也不會妨礙整個DNS系統的正常運行。

域名到IP地址的解析是由分布在因特網上的許多域名服務器程序(可簡稱為域名服務器)共同完成的。域名服務器程序在專設的結點上運行,運行域名服務器程序的機器叫作域名服務器

怎么解析——當某一個應用進程需要把主機名解析為IP地址時,該應用進程就要調用解析程序,并成為DNS的一個客戶,把待解析的域名放在DNS請求報文中,以UDP用戶數據報方式發給本地域名服務器(使用UDP是為了減少開銷)。本地域名服務器在查找域名后,把對應的IP地址放在回答報文中返回。應用進程獲得目的主機的IP地址后即可進行通信。

若本地域名服務器不能回答該請求,則此域名服務器就暫時成為DNS中的另一個客戶,并向其他域名服務器發出查詢請求。這種過程直至找到能夠回答該請求的域名服務器為止。(查找過程后續還要討論)

2.因特網的域名結構

層次樹狀結構的命名方法

命名規則——域名中的標號都由英文字母和數字組成,每一個標號不超過63個字符(為記憶方便,規定12個字符),也不區分大小寫字母。標號中的除連字符(-)外不能使用其他的標點符號。級別低的寫在左邊,高的寫在右邊。由多個標號組成的完整域名總共不超過255個字符。

域名是一個邏輯概念——并不代表物理地點。域名中的“點”和點分十進制IP地址中的“點”并無一一對應的關系,點分十進制IP地址中一定是包含三個“點”,但每一個域名中“點”的數目則不一定正好是三個。

頂級域名TLD(top level domain)分為三類——①國家頂級域名nTLD,如cn中國、us美國、uk英國。②通用頂級域名gTLD,如com公司企業、net政府機構、org非營利性的組織、int國際組織、edu美國專用教育機構、gov美國的政府機構、mil美國的軍事部門。③基礎結構域名。

二級域名分為——①類別域名:ac科研機構、com工、商、金融等企業、edu中國的教育機構、gov中國的政府機構、mil中國的國防機構、net提供互連網絡服務的機構、org非營利性的組織。②行政區域名:適用于我國的各省、自治區、直轄市,bj北京。

3.域名服務器

區——一個服務器所負責管轄的范圍。在一個區中的所有結點必須是能夠連通的,每一個區設置相應的權限域名服務器,用來保存該區中的所有主機的域名到IP地址的映射(是部分)。區是域的子集。

Ⅰ、分類

(1)根域名服務器(root name sever)

所有的根域名服務器都知道所有的頂級域名服務器的域名和IP地址。不管是哪一個本地域名服務器,若要對因特網上任何一個域名進行解析(即轉換為IP地址),只要自己無法解析,就首先要求助于根域名服務器。

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

許多情況下,根域名服務器并不直接把待查詢的域名直接轉換成IP地址(根域名服務器也沒有存放這種信息),而是告訴本地域名服務器下一步應當找哪一個頂級域名服務器進行查詢。

(2)頂級域名服務器(TLD服務器)

收到DNS查詢請求時,就給出響應的回答(可能是最后結果,也可能是下一步應當找的域名服務器的IP地址)。

(3)權限域名服務器

負責一個區的域名服務器。當一個權限域名服務器還不能給出最后的查詢回答時,就會告訴發出查詢請求的DNS客戶,下一步應當找哪一個權限域名服務器。

(4)本地域名服務器

主機發出DNS查詢請求時,請求報文就發送給本地域名服務器。當所要查詢的主機屬于同一個本地ISP時,該本地域名服務器立即就能將所查詢的主機名轉換為它的IP地址,而不需要再去詢問其他的域名服務器。

為了提高域名服務器的可靠性,DNS域名服務器就把數據復制到幾個域名服務器來保存,其中的一個是主域名服務器(master name sever),其他的是輔助域名服務器(secondary name sever)。當主域名服務器出故障時,輔助域名服務器可以保證DNS的查詢工作不會中斷。主域名服務器定期把數據復制到輔助域名服務器中,而更改數據只能在主域名服務器中進行。這樣就保證了數據的一致性。

Ⅱ、兩種查詢

域名解析過程注意:

①主機向本地域名服務器的查詢一般都是采用遞歸查詢(recursive query)。如果主機所詢問的本地域名服務器不知道被查詢域名的IP地址,本地域名服務器就以DNS客戶的身份,向其他根域名服務器繼續發出查詢請求報文(即替該主機繼續查詢),而不是讓該主機自己進行下一步的查詢。因此,遞歸查詢返回的查詢結果或者是所要查詢的IP地址,或者是報錯,表示無法查詢到所需的IP地址。

②本地域名服務器向根域名服務器的查詢通常是采用迭代查詢(iterative query)。根域名服務器收到本地域名服務器發出的迭代查詢請求報文時,要么給出所要查詢的IP地址,要么告訴本地域名服務器下一步應當向哪一個域名服務器進行查詢,然后讓本地域名服務器進行后續的查詢(而不是替本地域名服務器進行后續的查詢)。根域名服務器通常是把自己知道的頂級域名服務器的IP地址告訴本地域名服務器的查詢請求后,要么給出所要查詢的IP地址,要么高速本地域名服務器下一步應當向哪一個權限域名服務器進行查詢。本地域名服務器就這樣進行迭代查詢。最后,知道了所要解析的域名的IP地址,然后把這個結果返回給發起查詢的主機。當然,本地域名服務器也可以采用遞歸查詢,這取決于最初的查詢請求報文的設置是要求使用哪一種查詢方式。

Ⅲ、高速緩存

為了提高DNS查詢效率,并減輕根域名服務器的負荷和減少因特網上的DNS查詢報文數量,在域名服務器中廣泛地使用了高速緩存(有時也成為高速緩存域名服務器)。高速緩存用來存放最近查詢過的域名以及從何處獲得域名映射信息的記錄。

保持高速緩存中的內容正確,域名服務器應為每項內容設置計時器并處理超過合理時間的項(例如,每個項目只存放兩天)。當域名服務器已從緩存中刪去某項信息后又被請求查詢該項信息,就必須重新到授權管理該項的域名服務器獲取綁定信息。當權限域名服務器回答一個查詢請求時,在響應中都指明綁定有效存在的時間值。增加此時間值可減少網絡開銷,而減少此時間值可提高域名轉換的準確性。

主機也有高速緩存。

二、文件傳送協議

1.FTP概述

文件傳送協議FTP(file transfer protocol),提供交互式的訪問,允許客戶指明文件的類型與格式,并允許文件具有存取權限,屏蔽了各計算機系統的細節。

文件共享協議中的一大類——FTP和TFTP,即復制整個文件。特點是:若要存取一個文件,就必須先獲得一個本地文件的文件副本。如果要修改文件,只能對文件的副本進行修改,然后再將修改后的文件副本傳回到原節點。

文件共享協議中的另一大類——聯機訪問(on-line access)。允許多個程序同時對一個文件進行存取。和數據庫系統不同之處是用戶不需要調用一個特殊的客戶進程,而是由操作系統提供對遠地共享文件進行訪問的服務,就如同對本地文件的訪問一樣。這就使用戶可以用遠地文件作為輸入和輸出來運行任何應用程序,而操作系統中的文件系統則提供對共享文件的透明存取。透明存儲優點是:將原來用于處理本地文件的應用程序用來處理遠地文件時,不需要對該應用程序作明顯的改動。屬于文件共享協議的有網絡文件系統NFS(network file system)。

2.FTP的基本工作原理

兩個主機傳送應用很難,因為計算機存儲數據格式不同、文件的目錄結構和文件命名的規定不同、相同文件存取功能的,操作系統使用的命令不同、訪問控制方法不同。

文件傳送協議FTP只提供傳送的一些基本的服務,它使用TCP可靠的運輸服務。FTP的主要功能是減少或消除在不同操作系統下處理文件的不兼容性。

FTP使用客戶服務器方式。一個FTP服務器進程可同時為多個客戶進程提供服務。FTP的服務器進程由兩大部分組成:一個主進程,負責接收新的請求;另外有若干個從屬進程,負責處理單個請求。

主進程工作步驟如下:①打開熟知端口(端口號為21),使客戶進程能夠連接上;②等待客戶進程發出連接請求;③啟動從屬進程來處理客戶進程發來的請求。從屬進程對客戶進程的請求處理完畢后即終止,但從屬進程在運行期間根據需要還可能創建其他一些子進程;④回到等待狀態,繼續接受其他客戶進程發來的請求,主進程與從屬進程的處理是并發地進行。

FTP并非對所有的數據傳輸都是最佳的。例如,計算機A上運行的應用程序要在遠地計算機B的一個很大的文件末尾添加一行信息。若使用FTP,則應先將此文件從計算機B傳送到計算機A,添加上這一行信息后,再用FTP將此文件傳送到計算機B,來回傳送這樣大的文件很花時間。實際上這種傳送是不必要的,因為計算機A并沒有使用該文件的內容。

然而網絡文件系統NFS則采用另一種思路。NFS允許應用進程打開一個遠地文件,并能在該文件的某一特定的位置上開始讀寫數據。這樣,NFS可使用戶只復制一個大文件中的一個很小的片段,而不需要復制整個大文件。對于上述例子 ,A的NFS客戶軟件,將要添加的數據和在文件后面寫數據的請求一起發送到遠地計算機B中的NFS服務器,NFS服務器更新文件后返回應答信息。在網絡上傳送的只是少量修改數據。

3.簡單文件傳送協議TFTP

(trivial file transfer protocol),是很小且易于實現的文件傳送協議。雖然TFTP也使用客戶服務器方式,但它使用UDP數據報,因此TFTP需要有自己的差錯改正措施。TFTP只支持文件傳輸而不支持交互,沒有一個龐大的命令集,沒有列目錄的功能,也不能對用戶進行身份鑒別。

TFTP主要優點:①可用于UDP環境,例如當需要將程序或文件同時向許多機器下載時就往往需要使用TFTP。②TFTP代碼所占的內存小,這對較小的計算機或某些特殊用途的設備是很重要的。這些設備不需要硬盤,只需要固化了TFTP、UDP、IP的小容量只讀存儲器即可。

TFTP主要特點:

①每次傳送的數據報文中有512字節的數據,但最后一次可不足512字節;

②數據報文按序編號,從1開始;

③支持ASCII碼或二進制傳送;

④可對文件進行讀或寫;

⑤使用很簡單的首部。

它的工作很像停止等待協議。發送完一個文加塊后就等待對方的確認,確認時應指明所確認的塊編號。發完數據后在規定時間內收不到確認就要重發數據PDU。發送確認PDU的一方若在規定時間內收不到下一個文件塊,也要重發確認PDU。這樣就可保證文件的傳送不致因某一個數據報的丟失而告失敗。

在一開始工作時。TFTP客戶進程發送一個讀請求報文或寫請求報文給TFTP服務器進程,其熟知端口號碼為69。TFTP服務器進程要選擇一個新的端口和TFTP客戶進程進行通信。若文件長度恰好為512字節的整數倍,則在文件傳送完畢后,還必須在最后發送一個只含首部而無數據的數據報文。若文件長度不是512字節的整數倍,則最后傳送數據報文中的數據字段一定不滿512字節,這正好可作為文件結束的標志。

三、遠程終端協議TELNET

用戶用TELNET就可在其所在地通過TCP連接注冊(即登錄)到遠地的另一個主機上(使用主機名或IP地址),這種服務是透明的,所以也叫終端仿真協議。

使用客戶服務器方式。能適應許多計算機和操作系統的差異,因為它定義了數據和命令怎樣通過因特網,這些定義就是網絡虛擬終端NVT(network virtual terminal)。

NVT的格式定義很簡單,所有通信都使用8位一個字節。在運轉時,NVT使用7位ASCII碼傳送數據,但當高位置1時用作控制命令。TELNET的選擇協商(option negotiation)使TELNET客戶和TELNET服務器可商定使用更多的終端功能,協商的雙方是平等的。

四、萬維網WWW

1.萬維網概述

world wide web,它用鏈接的方法能非常方便地從因特網上的一個站點訪問另一個站點,從而主動地按需獲取豐富的信息。

萬維網是一個分布式的超媒體(hypermedia),它是超文本(hypertext)系統的擴充。所謂超文本是包含指向其他文檔的鏈接的文本,是萬維網的基礎。超媒體與超文本的區別是文檔內容不同,超文本文檔僅包含文本信息,而超媒體文檔還包含其他表示方式的信息,如圖形、圖像、聲音、動畫、活動視頻圖像。

非分布式的超媒體系統中,各種信息都駐留在單個計算機的磁盤中。由于各種文檔都可以從本地獲得,因此這些文檔之間的鏈接可進行一致性檢查。所以,一個非分布式超媒體系統能夠保證所有的鏈接都是有效的和一致的。

萬維網把大量信息分布在整個因特網上。每臺主機上的文檔都獨立進行管理。對這些文檔的增加、修改、刪除或重新命名都不需要(實際上也不可能)通知到因特網上成千上萬的節點。這樣,萬維網文檔之間的鏈接就經常會不一致。

萬維網以客戶服務器方法工作。萬維網文檔所駐留的主機則運行服務器程序,因此這個主機也稱為萬維網服務器。客戶程序向服務器程序發出請求,服務器程序向客戶程序送回所要的萬維網文檔。在一個客戶程序主窗口上顯示出的萬維網文檔稱為頁面

于是,萬維網需解決以下問題:

①怎樣標志分布在整個因特網上的萬維網上的文檔?

——使用統一的定位符URL(uniform resource locator)來標志萬維網上的各種文檔,并使每一個文檔在整個因特網的范圍內具有唯一的標識符URL。

②用什么樣的協議來實現萬維網上各種連接?

——萬維網客戶程序與萬維網服務器程序之間的交互遵守嚴格的協議,這就是超文本協議HTTP(hypertext transfer protocol)。HTTP是應用層協議,使用TCP連接進行可靠的傳送。

③怎樣使不同作者創作的不同風格的萬維網文檔都能在因特網上的各種主機上顯示出來,同時使用戶清楚地知道在什么地方存在著鏈接?

——萬維網使用超文本標記語言HTML(hypertext market language),使得萬維網頁面的設計者可以很方便地用連接從本頁面的某處鏈接到因特網上的任何一個萬維網頁面,并且能夠在自己的主機屏幕上將這些頁面顯示出來。

④怎樣使用戶能夠很方便地找到所需的信息?

——用戶可以使用搜索工具在萬維網上方便地查找所需的信息。

2.統一資源定位符URL

Ⅰ、URL的格式

資源是指因特網上可以被訪問的任何對象,包括文件目錄、文件、文檔、圖像、聲音等,以及與因特網相連的任何形式的數據。

URL相當于一個文件名在網絡范圍的擴展。它是與因特網相連的機器上的任何可訪問對象的一個指針。由于訪問不同對象所使用的協議不同,所以URL還指出讀取某個對象時所使用的協議。URL的一般形式:

<協議>://<主機>:<端口>/<路徑>

<協議>指出使用什么協議來獲取該萬維網文檔,如HTTP、ftp。<主機>指出萬維網文檔是在哪一個主機上,就是指該主機在因特網上的域名。<端口>和<路徑>可省略。

Ⅱ、使用HTTP的URL

HTTP的URL的一般形式:http://<主機>:<端口>/<路徑>

HTTP的默認端口號是80,通常可省略。若再省略<路徑>,則URL就指到因特網上的某個主頁(home page)。如http://www.tsinghua.edu.cn。雖然URL里面的字母不分大小寫,但有的頁面為了讀者看起來方便,故意用了一些大寫字母,實際上這對使用windows的PC機用戶是沒有關系的。

用戶使用URL并非僅僅能夠訪問萬維網的頁面,還能通過URL使用其他的因特網應用程序,如FTP或USENET新聞組等。更重要的是,用戶在使用這些應用程序時,只使用一個程序,即瀏覽器。這顯然方便。

3.超文本傳送協議HTTP

Ⅰ、HTTP的操作過程

HTTP協議定義了瀏覽器(即萬維網客戶進程)怎樣向萬維網服務器請求萬維網文檔,以及服務器怎樣把文檔傳送給服務器。從層次角度看,HTTP是面向事務(事務指一系列的信息交換,而這一系列的信息交換是一個不可分割的整體,即要么所有的信息交換完成,要么一次交換都不進行)的應用層協議,它是萬維網上能夠可靠地交換文件(包括文本、聲音、圖像等各種多媒體文件)的重要基礎。

每個萬維網網點都有一個服務器進程,它不斷地監聽TCP的端口80,以便發現是否有瀏覽器(即萬維網客戶)向它發出連接建立請求。在瀏覽器和服務器之間的請求和響應的交互,必須按照規定的格式和遵循一定的規則,這些格式和規則就是超文本傳送協議HTTP

HTTP規定在HTTP客戶與HTTP服務器之間的每次交互,都由一個ASCII碼串構成的請求和一個“類MIME(MIME-like)”的響應組成。HTTP報文通常都使用TCP連接傳送。

用戶瀏覽頁面的方式有兩種,一種是在瀏覽器的地址窗口中鍵入所要找的頁面的URL,另一種是在某一個頁面中用鼠標點擊一個可選部分,這時瀏覽器會自動在因特網上找到所要鏈接的頁面。

假定,用戶用鼠標點擊了屏幕上的一個可選部分,他使用的鏈接指向了“清華大學院系設置”的頁面,其URL是http://www.tsinghua.edu.cn/chn/yxsz/index.htm。用戶點擊鼠標后,發生的事件(以HTTP1.0為例):

①瀏覽器分析鏈接指向頁面的URL;

②瀏覽器向DNS請求解析www.tsinghua.edu.cn的IP地址;

③域名系統DNS解析出清華大學服務器的IP地址為166.111.4.100;

④瀏覽器與服務器建立TCP連接(在服務器端IP地址是166.111.4.100,端口是80);

⑤瀏覽器發出取文件命令:GET/chn/yxsz/index.htm;

⑥服務器www.tsinghua.edu.cn給出響應,把文件index.htm發送給瀏覽器;

⑦釋放TCP連接;

⑧瀏覽器顯示“清華大學院系設置”文件index.htm中的所有文本。

HTTP使用了面向連接的TCP作為運輸層協議,保證了數據的可靠傳輸。HTTP不必考慮數據在傳輸過程中被丟棄后又怎樣被重傳。但是,HTTP協議本身是無連接的。這就是說,雖然HTTP使用了TCP連接,但通信的雙方在交換HTTP報文之前不需要先建立HTTP連接。

HTTP協議是無狀態的。也就是說,同一個用戶第二次訪問同一個服務器上的頁面時,服務器的響應與第一次被訪問時的相同(假定現在服務器還沒有把該頁面更新),因為服務器不記得曾經訪問過的這個客戶,也不記得為該客戶曾經服務過多少次。HTTP的無狀態特性簡化了服務器的設計,使服務器更容易支持大量并發的HTTP請求。

從上圖看出,請求一個萬維網文檔所需的時間是該文檔的傳輸時間(與文檔大小成正比)加上兩倍往返時間RTT。HTTP/1.0的缺點是每請求一個文檔就要有兩倍RTT的開銷,另外萬維網客戶和服務器為每一次建立新的TCP連接都要分配緩存和變量。特別是萬維網服務器往往要同時服務于大量客戶的請求,這樣會使萬維網服務器的負擔很重,好在瀏覽器提供了能夠打開5-10個并行的TCP連接,而每一個TCP連接處理客戶的一個請求,因此使用并行TCP連接能夠縮短響應時間。

HTTP/1.1協議較好解決了這個問題。它使用了持續連接,即萬維網服務器在發送響應后仍然在一段時間內保持這條連接,使同一個客戶(瀏覽器)和該服務器可以繼續在這條連接上傳送后續的HTTP請求報文和響應報文。

持續連接有兩種工作方式,即非流水線方式和流水線方式

非流水線方式,是客戶在收到前一個響應后才能發出下一個請求。因此,在TCP連接已建立后,客戶每訪問一次對象都要用去一個往返時間RTT。這比非持續連接的兩倍RTT的開銷節省了建立TCP連接所需的一個RTT時間。但非流水線方式還是有缺點的,因為服務器在發送完一個對象后,其TCP連接就處于空閑狀態,浪費了服務器資源。

流水線方式,是客戶在收到HTTP的響應報文之前就能夠接著發送新的請求報文。于是一個接一個的請求報文到達服務器后,服務器就可持續發回響應報文。因此,使用流水線方式時,客戶訪問所有的對象只需花費一個RTT時間。流水線工作方式使TCP連接中的空閑時間減少,提高了下載文檔效率。

Ⅱ、代理服務器(proxy sever)

作用——把最近的一些請求和響應暫存在本地磁盤中

工作地——客戶端、服務端、中間系統

過程——PC瀏覽器→代理服務器→源點服務器

解釋:PC機中的瀏覽器先向因特網的服務器請求服務時,就先和代理服務器建立TCP鏈接,并向代理服務器發出HTTP請求報文。若代理服務器存放了所請求對象,就把它放入HTTP響應報文中返回給PC機的瀏覽器。否則,就與因特網上的源點服務器建立TCP連接,并發送HTTP請求報文。代理服務器收到這個對象后,先復制在自己的本地磁盤中(留待以后用),再把這個對象放在HTTP響應報文中,通過已建立的TCP鏈接,返回給請求該對象的瀏覽器。

Ⅲ、HTTP的報文結構

兩類報文:①請求報文。從客戶向服務端發送請求報文。②響應報文。從服務端到客戶端。

HTTP是面向文本的,因此在報文中的每一個字段都是ASCII碼串,因而各個字段的長度都是不確定的。

各行結構:

開始行——用于區分是請求報文(叫請求行)還是響應報文(叫狀態行)。

首部行——用來說明瀏覽器、服務器或報文主體的一些信息。首部可以有好幾行,但也可以不使用。最后還要有空行來和后面的實體主體分開。

實體主體——在請求報文中一般不用這個字段,而在響應報文中也可能沒有這個字段。

請求報文的請求行:

請求行有三個內容:方法、請求資源的URL、HTTP的版本

方法:面向對象技術中使用的專有名詞。方法是對所請求的對象進行的操作,這些方法實際上也就是一些命令。所以請求報文的類型是由它所采用的方法決定的。

例如:

在請求行使用了相對URL(即省略了主機的域名)是因為下面的首部行(第2行)給出了主機的域名。第3行是告訴服務器不使用持續連接,表示瀏覽器希望服務器在傳送完所請求的對象后即關閉TCP連接。這個請求報文沒有實體主體。

HTTP響應報文的主要特點:

每一個請求報文發出后,都能收到一個響應報文,響應報文的第一行就是狀態行。狀態行包括:HTTP的版本、狀態碼、解釋狀態碼的簡單短語。

Ⅳ、在服務器上存放用戶的信息

上面講過,HTTP是無狀態的,這樣做雖簡化了服務器的設計,但實際工作中,一些萬維網站點卻常常希望能夠識別用戶。比如,購物車,推薦商品等。

可在HTTP中使用Coolie。當某用戶瀏覽某個使用Coolie的網站時,該網站的服務器就為用戶產生一個唯一的識別碼,并以此作為索引在服務器的后端數據庫中產生一個項目,接著再給用戶的HTTP響應報文中添加一個叫做Set-cookie的首部行,后面的值是識別碼。于是網站跟蹤用戶的活動。

4.萬維網的文檔

Ⅰ、超文本標記語言HTML

作用——頁面制作的標準化,消除不同計算機之間信息交流的障礙

HTML定義了許多用于排版的命令,即“標簽”。例如,表示后面開始用斜體字排版,表示斜體字排版到此結束。HTML就把各種標簽嵌入到萬維網的頁面中,這樣就構成了所謂的HTML文檔。是一種可以用任何文本編輯器(例如windows的記事本Notepad)創建的ASCII碼文件。

.html、.htm為后綴時,瀏覽器解釋;.txt為后綴時,不解釋,只能看見原來的文本文件。

特點:①允許在萬維網頁面中插入圖像。一個頁面本身帶有的圖像稱為內含圖像,HTML標準并沒有規定該圖像的格式。實際上,大多數瀏覽器支持GIF和JEPG文件,但存儲空間大,但改為經壓縮的.gif格式則減少了存儲空間。

②規定了鏈接的設置辦法。每個鏈接有一個起點和終點。起點說明在萬維網頁面中的什么地方可引出一個鏈接。容易識別(一般文字用黑色字時,鏈接起點用藍色字,有時還加上上下劃線)。終點可以是其他網絡上的頁面(遠程鏈接),也可以是本計算機中的某一個文件或本文件中的某處(本地鏈接)。

Ⅱ、動態萬維網文檔

背景——靜態文檔是指在文檔創作完畢后就存放在萬維網服務器中,在被用戶瀏覽的過程中,內容不會改變,因此用戶對靜態文檔的每次讀取所得到的返回結果都是相同的。

優點是簡單,可由不懂程序設計的人員來創建,缺點是不夠靈活,信息變化時就要由文檔的作者手工對文檔進行修改。

定義——是指文檔的內容是在瀏覽器訪問萬維網服務器時才由應用程序動態創建。當瀏覽器請求到達時,萬維網服務器要運行另一個程序,并把控制轉移到此應用程序。接著,該應用程序對瀏覽器發來的數據進行處理,并輸出HTTP格式的文檔,萬維網服務器就把應用程序的輸出作為對瀏覽器的響應。例子:天氣預報、股市行情。

與靜態文檔差別——服務器一端,文檔內容的生成方法不同。

要實現動態文檔應在以下兩方面對萬維網服務器的功能進行擴充:

①應增加另一個應用程序,用來處理瀏覽器發來的數據,并創建動態文檔;

②應增加一個機制,用來使萬維網服務器將瀏覽器發來的數據傳送給這個應用程序,然后萬維網服務器能夠解釋這個應用程序的輸出,并向瀏覽器返回HTML文檔。

舉例——

新增機制是通用網關接口CGI(common gateway interface),是一種標準,定義了動態文檔應如何創建,輸入數據應如何提供給應用程序,以及輸出結果應如何使用。

新增應用程序是CGI程序。取這個名字是因為萬維網服務器與CGI的通信遵循CGI標準。“通用”是說這個標準定義的規則對其他任何語言是通用的;“網關”是說CGI程序可能要訪問其他的服務器資源,如數據庫或圖形軟件包;“接口”是說有一些已定義好的變量和調用等可供其他CGI程序使用。CGI程序的正式名字是CGI腳本(script),“腳本”是指一個程序,它是被另一個程序(解釋程序)而不是計算機的處理機來解釋或執行,可更容易地更快地進行編碼,但運行起來比一般的編譯程序要慢,因為它每一條指令要被另一個程序來處理,而不是直接被指令處理器來處理。

Ⅲ、活動萬維網文檔

背景——動態文檔一旦建立,它所包含的信息內容也就固定下來而無法及時刷新屏幕。另外像動畫之類的顯示效果,動態文檔也無法提供。

用于瀏覽器屏幕顯示的連續更新的有兩種技術:

①服務器推送

這種技術是將所有的工作都交給服務器,服務器不斷地運行與動態文檔相關聯的應用功能程序,定期更新信息,并發送更新過的文檔。

缺點:(1)為滿足很多用戶請求,服務器要運行很多的服務器推送程序。這造成服務器開銷。(2)服務器推送技術要求服務器為每一個瀏覽器客戶維持一個不釋放的TCP連接,隨著TCP連接的數目增加,每一個連接所能分配到的網絡帶寬就下降,導致網絡傳輸時延增大。

②活動文檔技術

這種技術是把所有的工作都轉移給瀏覽器端。每當瀏覽器請求一個活動文檔時,服務器就返回一段活動文檔程序副本,使該程序副本在瀏覽器端運行。這時,活動文檔程序可與用戶直接交互,并可連續地改變屏幕的顯示。只要用戶運行活動文檔程序,活動文檔的內容就可以連續地改變。由于活動文檔技術不需要服務器的連續更新傳送,對網絡帶寬的要求也不會太高。

從傳送角度看,瀏覽器和服務器都把活動文檔看成是靜態文檔。在服務器上的活動文檔的內容是不變的,這點和動態文檔是不同的。瀏覽器可在本地緩存一份活動文檔的副本。活動文檔還可處理成壓縮形式,便于存儲和傳送。另一點要注意的是,活動文檔本身并不包括其運行所需的全部軟件,大部分的支持軟件是事先存放在瀏覽器中。

Java語言——一項用于創建和運行活動文檔的技術。

小應用程序(applet):描述活動文檔程序。

Java技術共有三個主要組成部分:程序設計語言、運行環境、類庫。

程序設計語言——

從C++派生,省去了復雜的、很少用的語言特點。但和C、C++不兼容。Java的編譯程序將源程序轉換成Java字節碼,這是一種與機器無關的二進制代碼。計算機程序調用解釋程序讀取字節碼,并解釋執行。

設計成與機器無關的原因:可使任何在計算機上運行的瀏覽器程序能夠下載并運行活動文檔;可保證活動文檔在所有的瀏覽器上產生同樣的正確輸出;可大大降低活動文檔的創建和測試費用,因此不必為每一種計算機都制作一個副本。

運行環境——可允許小應用程序操縱用戶的顯示

類庫——包含提供高級圖形接口的軟件

運行環境和類庫——抽象窗口工具箱AWT(abstract window toolkit)執行。出現原因:使用小應用程序主要是為了復雜的顯示,只要靜態顯示不能滿足要求時就要使用小應用程序;一個控制圖形現實的程序還必須指明很多的細節。

運行JAVA的瀏覽器需要兩個解釋程序——HTML解釋程序和JAVA小應用程序解釋程序

解釋程序——核心是一個模仿計算機的簡單循環。作用:①維持一個指令指針,在初始化時指在小應用程序的開始處,每一次循環操作,就在指令指針指向的地址讀取字節碼,然后解釋程序對字節碼進行解碼,完成指明的操作。②支持JAVA運行環境。即一個JAVA解釋程序必須能夠在屏幕上顯示圖形,接入到因特網,以及執行I/O操作。③必須設計成使得小應用程序能夠利用瀏覽器的設施來讀取和顯示靜態和動態文檔。因此,在瀏覽器中的JAVA解釋程序必須能夠與瀏覽器中的HTTP客戶以及HTML解釋程序進行通信。

Ⅳ、瀏覽器的結構

緩存缺點:要占用磁盤大量的空間;瀏覽器性能改善只有在用戶再次查看緩存中的頁面時才有幫助;要耗費時間吧文件不必要地存儲在磁盤上,這反而降低了瀏覽器的效率。

為了改善,瀏覽器允許用戶調整緩存策略。如設置時間限制,到期后刪除這些文件。

5.萬維網的信息檢索系統

Ⅰ、全文檢索搜索與分類目錄搜索

全文檢索搜索——

工作原理:通過搜索軟件到因特網各網站收集信息→像蜘蛛爬行一樣,按一定規則建立很大的在線數據庫供查詢→輸入關鍵詞即可查詢

缺點:查詢到的信息有些過時,必須定期維護

例如百度、谷歌

分類目錄搜索——

工作原理:利用各網站向搜索引擎提交的網站信息時填寫的關鍵詞和網站描述的信息,經過人工審核編輯后,如果認為符合網站登錄的條件,則輸入到分類目錄的數據庫中,供網上用戶查詢。

優點:用戶可根據網站設計好的目錄有針對性地逐級查詢所需要的信息,查詢時不需要使用關鍵詞,只需要按照分類(先找大類,再找下面的小類),因而查詢的準確性好。

缺點:查詢結果不是具體頁面,而是被收錄網站主頁的URL地址,因而所得到的內容就比較有限。

例如雅虎中國、新浪

垂直搜索引擎——

針對某一特定領域、特定人群或某一特定需求提供搜索服務

元搜索引擎——

把用戶提交的檢索請求發送到多個獨立的搜索引擎上去搜索,并把檢索結果集中統一處理,以統一的格式提供給用戶,因此是搜索引擎之上的搜索引擎。主要精力放在提高搜索速度、智能化處理搜索結果、個性化搜索功能的設置和用戶檢索界面的友好性上。查全率和準確率高。

Ⅱ、Google搜索技術的特點

以往大多數搜索引擎是使用少量大型服務器,在訪問高峰期,搜索速度減慢。而Google則利用在因特網上相互鏈接的PC機來快速查找每個搜索的答案,并且成功地縮短了查找的響應時間。Google的搜索軟件可同時進行許多運算,它的核心技術是PageRank,譯為網頁排名。

PageRank對搜索結果按重要性進行排序。它把整個互聯網當作了一個整體對待,檢查整個網絡鏈接的結構,并確定哪些網頁重要性最高。更具體些,就是如果有很多網站上的鏈接都指向頁面A,那么頁面A比較重要。

還要進行超文本匹配分析,以確定哪些網頁與正在執行的特定搜索相關。Google把最相關、最可靠的搜索結果放在首位。



2.幾種常用的系統調用

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,546評論 6 533
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,570評論 3 418
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,505評論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,017評論 1 313
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,786評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,219評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,287評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,438評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,971評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,796評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,995評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,540評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,230評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,662評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,918評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,697評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,991評論 2 374

推薦閱讀更多精彩內容