第6章 應(yīng)用層
6.1 域名系統(tǒng)DNS
6.1.1 域名系統(tǒng)概述
- 許多應(yīng)用層軟件經(jīng)常直接使用域名系統(tǒng)DNS ,但計(jì)算機(jī)的用戶只是間接而不是直接使用域名系統(tǒng)。
- 互聯(lián)網(wǎng)采用層次結(jié)構(gòu)的命名樹(shù)作為主機(jī)的名字,并使用分布式的域名系統(tǒng) DNS。
- 名字到 IP 地址的解析是由若干個(gè)域名服務(wù)器程序完成的。域名服務(wù)器程序在專設(shè)的結(jié)點(diǎn)上運(yùn)行,運(yùn)行該程序的機(jī)器稱為域名服務(wù)器。
6.1.2 互聯(lián)網(wǎng)的域名結(jié)構(gòu)
- 互聯(lián)網(wǎng)采用了層次樹(shù)狀結(jié)構(gòu)的命名方法。
- 任何一個(gè)連接在互聯(lián)網(wǎng)上的主機(jī)或路由器,都有一個(gè)唯一的層次結(jié)構(gòu)的名字,即域名。
-
域名的結(jié)構(gòu)由標(biāo)號(hào)序列組成,各標(biāo)號(hào)之間用點(diǎn)隔開(kāi):image.png
- 各標(biāo)號(hào)分別代表不同級(jí)別的域名。
- 域名只是個(gè)邏輯概念,并不代表計(jì)算機(jī)所在的物理地點(diǎn)。
- 變長(zhǎng)的域名和使用有助記憶的字符串,是為了便于人來(lái)使用。而 IP 地址是定長(zhǎng)的 32 位二進(jìn)制數(shù)字則非常便于機(jī)器進(jì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
- 國(guó)家頂級(jí)域名 nTLD:.cn 表示中國(guó),.us 表示美國(guó),.uk 表示英國(guó),等等。
- 通用頂級(jí)域名 gTLD:.com (公司和企業(yè)),.net (網(wǎng)絡(luò)服務(wù)機(jī)構(gòu),.org (非贏利性組織),.edu (美國(guó)專用的教育機(jī)構(gòu)),.gov (美國(guó)專用的政府部門),.mil (美國(guó)專用的軍事部門),.int (國(guó)際組織)
- 基礎(chǔ)結(jié)構(gòu)域名:只有一個(gè),即 arpa,用于反向域名解析,因此又稱為反向域名。
- 反向域名解析:從IP地址到域名的映射。例如,一個(gè)IP地址為218.30.103.170,其逆向域名表達(dá)方式為:170.103.30.218.in-addr.arpa。
- 郵件服務(wù)器啟用此功能可拒絕接收所有沒(méi)有注冊(cè)域名的地址發(fā)來(lái)的信息。
- 互聯(lián)網(wǎng)的域名空間[圖片上傳中...(image.png-46f864-1592289941906-0)]
6.1.3 域名服務(wù)器
一個(gè)服務(wù)器所負(fù)責(zé)管轄的(或有權(quán)限的)范圍叫做區(qū)。
各單位根據(jù)具體情況來(lái)劃分自己管轄范圍的區(qū)。但在一個(gè)區(qū)中的所有節(jié)點(diǎn)必須是能夠連通的。
每一個(gè)區(qū)設(shè)置相應(yīng)的權(quán)限域名服務(wù)器,用來(lái)保存該區(qū)中的所有主機(jī)的域名到 IP 地址的映射。
DNS 服務(wù)器的管轄范圍不是以“域”為單位,而是以“區(qū)”為單位。
-
區(qū)的不同劃分方法舉例 image.png
-
樹(shù)狀結(jié)構(gòu)的 DNS 域名服務(wù)器image.png
-
域名服務(wù)器有以下四種類型
-
根域名服務(wù)器
- 根域名服務(wù)器是最高層次的域名服務(wù)器,也是最重要的域名服務(wù)器。所有的根域名服務(wù)器都知道所有的頂級(jí)域名服務(wù)器的域名和 IP 地址。
- 不管是哪一個(gè)本地域名服務(wù)器,若要對(duì)互聯(lián)網(wǎng)上任何一個(gè)域名進(jìn)行解析,只要自己無(wú)法解析,就首先求助于根域名服務(wù)器。
- 在互聯(lián)網(wǎng)上共有 13 個(gè)不同 IP 地址的根域名服務(wù)器,它們的名字是用一個(gè)英文字母命名,從 a 一直到 m(前 13 個(gè)字母)。
- 根域名服務(wù)器共有 13 套裝置,不是 13 個(gè)機(jī)器。
這些根域名服務(wù)器相應(yīng)的域名分別是:
a.rootservers.net
b.rootservers.net
…
m.rootservers.net - 到2016年2月,全世界已經(jīng)在 588 個(gè)地點(diǎn)安裝了根域名服務(wù)器,使世界上大部分 DNS 域名服務(wù)器都能就近找到一個(gè)根域名服務(wù)器。
-
頂級(jí)域名服務(wù)器
- 頂級(jí)域名服務(wù)器(即 TLD 服務(wù)器)負(fù)責(zé)管理在該頂級(jí)域名服務(wù)器注冊(cè)的所有二級(jí)域名。
- 當(dāng)收到 DNS 查詢請(qǐng)求時(shí),就給出相應(yīng)的回答(可能是最后的結(jié)果,也可能是下一步應(yīng)當(dāng)找的域名服務(wù)器的 IP 地址)。
-
權(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ù)器。
-
本地域名服務(wù)器
- 本地域名服務(wù)器對(duì)域名系統(tǒng)非常重要。
- 當(dāng)一個(gè)主機(jī)發(fā)出 DNS 查詢請(qǐng)求時(shí),這個(gè)查詢請(qǐng)求報(bào)文就發(fā)送給本地域名服務(wù)器。
- 每一個(gè)互聯(lián)網(wǎng)服務(wù)提供者 ISP,或一個(gè)大學(xué),甚至一個(gè)大學(xué)里的系,都可以擁有一個(gè)本地域名服務(wù)器,
- 這種域名服務(wù)器有時(shí)也稱為默認(rèn)域名服務(wù)器。
-
-
提高域名服務(wù)器的可靠性
- DNS 域名服務(wù)器都把數(shù)據(jù)復(fù)制到幾個(gè)域名服務(wù)器來(lái)保存,其中的一個(gè)是主域名服務(wù)器,其他的是輔助域名服務(wù)器。
- 當(dāng)主域名服務(wù)器出故障時(shí),輔助域名服務(wù)器可以保證 DNS 的查詢工作不會(huì)中斷。
- 主域名服務(wù)器定期把數(shù)據(jù)復(fù)制到輔助域名服務(wù)器中,而更改數(shù)據(jù)只能在主域名服務(wù)器中進(jìn)行。這樣就保證了數(shù)據(jù)的一致性。
-
域名的解析過(guò)程
- 主機(jī)向本地域名服務(wù)器的查詢一般都是采用遞歸查詢。如果主機(jī)所詢問(wèn)的本地域名服務(wù)器不知道被查詢域名的 IP 地址,那么本地域名服務(wù)器就以 DNS 客戶的身份,向其他根域名服務(wù)器繼續(xù)發(fā)出查詢請(qǐng)求報(bào)文。
- 本地域名服務(wù)器向根域名服務(wù)器的查詢通常是采用迭代查詢。當(dāng)根域名服務(wù)器收到本地域名服務(wù)器的迭代查詢請(qǐng)求報(bào)文時(shí),要么給出所要查詢的 IP 地址,要么告訴本地域名服務(wù)器:“你下一步應(yīng)當(dāng)向哪一個(gè)域名服務(wù)器進(jìn)行查詢”。然后讓本地域名服務(wù)器進(jìn)行后續(xù)的查詢。
-
本地域名服務(wù)器采用遞歸查詢(比較少用)image.png
-
名字的高速緩存
- 每個(gè)域名服務(wù)器都維護(hù)一個(gè)高速緩存,存放最近用過(guò)的名字以及從何處獲得名字映射信息的記錄。
- 可大大減輕根域名服務(wù)器的負(fù)荷,使互聯(lián)網(wǎng)上的 DNS 查詢請(qǐng)求和回答報(bào)文的數(shù)量大為減少。
- 為保持高速緩存中的內(nèi)容正確,域名服務(wù)器應(yīng)為每項(xiàng)內(nèi)容設(shè)置計(jì)時(shí)器,并處理超過(guò)合理時(shí)間的項(xiàng)(例如,每個(gè)項(xiàng)目只存放兩天)。
- 當(dāng)權(quán)限域名服務(wù)器回答一個(gè)查詢請(qǐng)求時(shí),在響應(yīng)中都指明綁定有效存在的時(shí)間值。增加此時(shí)間值可減少網(wǎng)絡(luò)開(kāi)銷,而減少此時(shí)間值可提高域名轉(zhuǎn)換的準(zhǔn)確性。
6.2 文件傳送協(xié)議
6.2.1 FTP概述
- 文件傳送協(xié)議 FTP 是互聯(lián)網(wǎng)上使用得最廣泛的文件傳送協(xié)議。
- FTP 提供交互式的訪問(wèn),允許客戶指明文件的類型與格式,并允許文件具有存取權(quán)限。
- FTP 屏蔽了各計(jì)算機(jī)系統(tǒng)的細(xì)節(jié),因而適合于在異構(gòu)網(wǎng)絡(luò)中任意計(jì)算機(jī)之間傳送文件。
- RFC 959 很早就成為了互聯(lián)網(wǎng)的正式標(biāo)準(zhǔn)。
6.2.2 FTP的基本工作原理
-
在兩個(gè)主機(jī)之間傳送文件往往非常困難。原因是眾多的計(jì)算機(jī)廠商研制出的文件系統(tǒng)多達(dá)數(shù)百種,且差別很大。 經(jīng)常遇到的問(wèn)題是:
- (1) 計(jì)算機(jī)存儲(chǔ)數(shù)據(jù)的格式不同。
- (2) 文件的目錄結(jié)構(gòu)和文件命名的規(guī)定不同。
- (3) 對(duì)于相同的文件存取功能,操作系統(tǒng)使用的命令不同。
- (4) 訪問(wèn)控制方法不同。
-
FTP 特點(diǎ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)行。
-
兩個(gè)連接image.png
- 控制連接在整個(gè)會(huì)話期間一直保持打開(kāi),F(xiàn)TP 客戶發(fā)出的傳送請(qǐng)求通過(guò)控制連接發(fā)送給服務(wù)器端的控制進(jìn)程,但控制連接不用來(lái)傳送文件。
- 實(shí)際用于傳輸文件的是“數(shù)據(jù)連接”。服務(wù)器端的控制進(jìn)程在接收到 FTP 客戶發(fā)送來(lái)的文件傳輸請(qǐng)求后就創(chuàng)建“數(shù)據(jù)傳送進(jìn)程”和“數(shù)據(jù)連接”,用來(lái)連接客戶端和服務(wù)器端的數(shù)據(jù)傳送進(jìn)程。
- 數(shù)據(jù)傳送進(jìn)程實(shí)際完成文件的傳送,在傳送完畢后關(guān)閉“數(shù)據(jù)傳送連接”并結(jié)束運(yùn)行。
-
兩個(gè)不同的端口號(hào)
- 當(dāng)客戶進(jìn)程向服務(wù)器進(jìn)程發(fā)出建立連接請(qǐng)求時(shí),要尋找連接服務(wù)器進(jìn)程的熟知端口(21),同時(shí)還要告訴服務(wù)器進(jìn)程自己的另一個(gè)端口號(hào)碼,用于建立數(shù)據(jù)傳送連接。
- 接著,服務(wù)器進(jìn)程用自己傳送數(shù)據(jù)的熟知端口(20) 與客戶進(jìn)程所提供的端口號(hào)碼建立數(shù)據(jù)傳送連接。
- 由于 FTP 使用了兩個(gè)不同的端口號(hào),所以數(shù)據(jù)連接與控制連接不會(huì)發(fā)生混亂。
- 使用兩個(gè)不同端口號(hào)的好處:使協(xié)議更加簡(jiǎn)單和更容易實(shí)現(xiàn)。在傳輸文件時(shí)還可以利用控制連接(例如,客戶發(fā)送請(qǐng)求終止傳輸)。
6.2.3 簡(jiǎn)單文件傳送協(xié)議TFTP
6.3 遠(yuǎn)程終端協(xié)議TELNET
- TELNET 是一個(gè)簡(jiǎn)單的遠(yuǎn)程終端協(xié)議,也是互聯(lián)網(wǎng)的正式標(biāo)準(zhǔn)。
- 用戶用 TELNET 就可在其所在地通過(guò) TCP 連接注冊(cè)(即登錄)到遠(yuǎn)地的另一個(gè)主機(jī)上(使用主機(jī)名或 IP 地址)。
- TELNET 能將用戶的擊鍵傳到遠(yuǎn)地主機(jī),同時(shí)也能將遠(yuǎn)地主機(jī)的輸出通過(guò) TCP 連接返回到用戶屏幕。這種服務(wù)是透明的,因?yàn)橛脩舾杏X(jué)到好像鍵盤和顯示器是直接連在遠(yuǎn)地主機(jī)上。
- 客戶-服務(wù)器方式:TELNET 也使用客戶-服務(wù)器方式。在本地系統(tǒng)運(yùn)行 TELNET 客戶進(jìn)程,而在遠(yuǎn)地主機(jī)則運(yùn)行 TELNET 服務(wù)器進(jìn)程。和 FTP 的情況相似,服務(wù)器中的主進(jìn)程等待新的請(qǐng)求,并產(chǎn)生從屬進(jìn)程來(lái)處理每一個(gè)連接。
- TELNET 使用網(wǎng)絡(luò)虛擬終端 NVT 格式
- 客戶軟件把用戶的擊鍵和命令轉(zhuǎn)換成 NVT 格式,并送交服務(wù)器。
- 服務(wù)器軟件把收到的數(shù)據(jù)和命令,從 NVT 格式轉(zhuǎn)換成遠(yuǎn)地系統(tǒng)所需的格式。
- 向用戶返回?cái)?shù)據(jù)時(shí),服務(wù)器把遠(yuǎn)地系統(tǒng)的格式轉(zhuǎn)換為 NVT 格式,本地客戶再?gòu)?NVT 格式轉(zhuǎn)換到本地系統(tǒng)所需的格式。
6.4 萬(wàn)維網(wǎng)WWW
6.4.1 萬(wàn)維網(wǎng)概述

- 萬(wàn)維網(wǎng) WWW 并非某種特殊的計(jì)算機(jī)網(wǎng)絡(luò)。
- 萬(wàn)維網(wǎng)是一個(gè)大規(guī)模的、聯(lián)機(jī)式的信息儲(chǔ)藏所。
- 萬(wàn)維網(wǎng)用鏈接的方法能非常方便地從互聯(lián)網(wǎng)上的一個(gè)站點(diǎn)訪問(wèn)另一個(gè)站點(diǎn),從而主動(dòng)地按需獲取豐富的信息。這種訪問(wèn)方式稱為“鏈接”。
- 超媒體與超文本
- 萬(wàn)維網(wǎng)是分布式超媒體 系統(tǒng),它是超文本系統(tǒng)的擴(kuò)充。
- 一個(gè)超文本由多個(gè)信息源鏈接成。利用一個(gè)鏈接可使用戶找到另一個(gè)文檔。這些文檔可以位于世界上任何一個(gè)接在互聯(lián)網(wǎng)上的超文本系統(tǒng)中。超文本是萬(wàn)維網(wǎng)的基礎(chǔ)。
- 超媒體與超文本的區(qū)別是文檔內(nèi)容不同。超文本文檔僅包含文本信息,而超媒體文檔還包含其他表示方式的信息,如圖形、圖像、聲音、動(dòng)畫,甚至活動(dòng)視頻圖像。
- 萬(wàn)維網(wǎng)的工作方式
- 萬(wàn)維網(wǎng)以客戶-服務(wù)器方式工作。
- 瀏覽器就是在用戶計(jì)算機(jī)上的萬(wàn)維網(wǎng)客戶程序。萬(wàn)維網(wǎng)文檔所駐留的計(jì)算機(jī)則運(yùn)行服務(wù)器程序,因此這個(gè)計(jì)算機(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)題
- (1) 怎樣標(biāo)志分布在整個(gè)互聯(lián)網(wǎng)上的萬(wàn)維網(wǎng)文檔?
- 使用統(tǒng)一資源定位符 URL來(lái)標(biāo)志萬(wàn)維網(wǎng)上的各種文檔。
- 使每一個(gè)文檔在整個(gè)互聯(lián)網(wǎng)的范圍內(nèi)具有唯一的標(biāo)識(shí)符 URL。
- (2) 用何協(xié)議實(shí)現(xiàn)萬(wàn)維網(wǎng)上各種超鏈的鏈接?
- 在萬(wàn)維網(wǎng)客戶程序與萬(wàn)維網(wǎng)服務(wù)器程序之間進(jìn)行交互所使用的協(xié)議,是超文本傳送協(xié)議。
- HTTP 是一個(gè)應(yīng)用層協(xié)議,它使用 TCP 連接進(jìn)行可靠的傳送。
- (3) 怎樣使各種萬(wàn)維網(wǎng)文檔都能在互聯(lián)網(wǎng)上的各種計(jì)算機(jī)上顯示出來(lái),同時(shí)使用戶清楚地知道在什么地方存在著超鏈?
- 超文本標(biāo)記語(yǔ)言 HTML 使得萬(wàn)維網(wǎng)頁(yè)面的設(shè)計(jì)者可以很方便地用一個(gè)超鏈從本頁(yè)面的某處鏈接到互聯(lián)網(wǎng)上的任何一個(gè)萬(wàn)維網(wǎng)頁(yè)面,并且能夠在自己的計(jì)算機(jī)屏幕上將這些頁(yè)面顯示出來(lái)。
- (4) 怎樣使用戶能夠很方便地找到所需的信息? 為了在萬(wàn)維網(wǎng)上方便地查找信息,用戶可使用各種的搜索工具(即搜索引擎)。
- (1) 怎樣標(biāo)志分布在整個(gè)互聯(lián)網(wǎng)上的萬(wàn)維網(wǎng)文檔?
6.4.2 統(tǒng)一資源定位符URL
1. URL的格式
資源定位符 URL 是對(duì)可以從互聯(lián)網(wǎng)上得到的資源的位置和訪問(wèn)方法的一種簡(jiǎn)潔表示。
URL 相當(dāng)于一個(gè)文件名在網(wǎng)絡(luò)范圍的擴(kuò)展。因此 URL 是與互聯(lián)網(wǎng)相連的機(jī)器上的任何可訪問(wèn)對(duì)象的一個(gè)指針。
-
URL 的一般形式
- 由以冒號(hào)隔開(kāi)的兩大部分組成,并且在 URL 中的字符對(duì)大寫或小寫沒(méi)有要求。
-
URL 的一般形式是:image.png
<端口>和<路徑>有時(shí)可省略。
6.4.3 超文本傳送協(xié)議HTTP
1. HTTP 的操作過(guò)程
為了使超文本的鏈接能夠高效率地完成,需要用 HTTP 協(xié)議來(lái)傳送一切必須的信息。
-
從層次的角度看,HTTP 是面向事務(wù)的應(yīng)用層協(xié)議,它是萬(wàn)維網(wǎng)上能夠可靠地交換文件(包括文本、聲音、圖像等各種多媒體文件)的重要基礎(chǔ)。
image.png 用戶點(diǎn)擊 URL http://www.tsinghua.edu.cn/chn/yxsz/index.htm后所發(fā)生的事件
(1) 瀏覽器分析超鏈指向頁(yè)面的 URL。
(2) 瀏覽器向 DNS 請(qǐng)求解析 www.tsinghua.edu.cn 的 IP 地址。
(3) 域名系統(tǒng) DNS 解析出清華大學(xué)服務(wù)器的 IP 地址。
(4) 瀏覽器與服務(wù)器建立 TCP 連接。
(5) 瀏覽器發(fā)出取文件命令:GET /chn/yxsz/index.htm。
(6) 服務(wù)器給出響應(yīng),把文件 index.htm 發(fā)給瀏覽器。
(7) TCP 連接釋放。
(8) 瀏覽器顯示“清華大學(xué)院系設(shè)置”文件 index.htm 中的所有文本。
2. HTTP 的報(bào)文結(jié)構(gòu)
-
HTTP 有兩類報(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)度都是不確定的。
-
HTTP 的報(bào)文結(jié)構(gòu)(請(qǐng)求報(bào)文) :報(bào)文由三個(gè)部分組成,即開(kāi)始行、首部行和實(shí)體主體。在請(qǐng)求報(bào)文中,開(kāi)始行就是請(qǐng)求行。
image.png-
“方法”是面向?qū)ο蠹夹g(shù)中使用的專門名詞。所謂“方法”就是對(duì)所請(qǐng)求的對(duì)象進(jìn)行的操作,因此這些方法實(shí)際上也就是一些命令。因此,請(qǐng)求報(bào)文的類型是由它所采用的方法決定的。
image.png “URL”是所請(qǐng)求的資源的 URL。
“版本”是 HTTP 的版本。
-
-
HTTP 的報(bào)文結(jié)構(gòu)(響應(yīng)報(bào)文) :響應(yīng)報(bào)文的開(kāi)始行是狀態(tài)行。狀態(tài)行包括三項(xiàng)內(nèi)容,即 HTTP 的版本,狀態(tài)碼,以及解釋狀態(tài)碼的簡(jiǎn)單短語(yǔ)。
image.png -
狀態(tài)碼都是三位數(shù)字
- 1xx 表示通知信息的,如請(qǐng)求收到了或正在進(jìn)行處理。
- 2xx 表示成功,如接受或知道了。
- 3xx 表示重定向,表示要完成請(qǐng)求還必須采取進(jìn)一步的行動(dòng)。
- 4xx 表示客戶的差錯(cuò),如請(qǐng)求中有錯(cuò)誤的語(yǔ)法或不能完成。
- 5xx 表示服務(wù)器的差錯(cuò),如服務(wù)器失效無(wú)法完成請(qǐng)求。
3. 在服務(wù)器上存放用戶的信息
- 萬(wàn)維網(wǎng)站點(diǎn)使用 Cookie 來(lái)跟蹤用戶。
- Cookie 表示在 HTTP 服務(wù)器和客戶之間傳遞的狀態(tài)信息。
- 使用 Cookie 的網(wǎng)站服務(wù)器為用戶產(chǎn)生一個(gè)唯一的識(shí)別碼。利用此識(shí)別碼,網(wǎng)站就能夠跟蹤該用戶在該網(wǎng)站的活動(dòng)。
6.4.4 萬(wàn)維網(wǎng)的文檔
1. 超文本標(biāo)記語(yǔ)言HTML
- 超文本標(biāo)記語(yǔ)言 HTML 中的 Markup 的意思就是“設(shè)置標(biāo)記”。
- HTML 定義了許多用于排版的命令(即標(biāo)簽)。
- HTML 把各種標(biāo)簽嵌入到萬(wàn)維網(wǎng)的頁(yè)面中。這樣就構(gòu)成了所謂的 HTML 文檔。HTML 文檔是一種可以用任何文本編輯器創(chuàng)建的 ASCII 碼文件。
- HTML 文檔
- 僅當(dāng) HTML 文檔是以 .html 或 .htm 為后綴時(shí),瀏覽器才對(duì)此文檔的各種標(biāo)簽進(jìn)行解釋。
- 如 HTML 文檔改換以 .txt 為其后綴,則 HTML 解釋程序就不對(duì)標(biāo)簽進(jìn)行解釋,而瀏覽器只能看見(jiàn)原來(lái)的文本文件。
- 當(dāng)瀏覽器從服務(wù)器讀取 HTML 文檔后,就按照 HTML 文檔中的各種標(biāo)簽,根據(jù)瀏覽器所使用的顯示器的尺寸和分辨率大小,重新進(jìn)行排版并恢復(fù)出所讀取的頁(yè)面。
- HTML還規(guī)定了鏈接的設(shè)置方法。每個(gè)鏈接都有一個(gè)起點(diǎn)和終點(diǎn)。
- 遠(yuǎn)程鏈接:超鏈的終點(diǎn)是其他網(wǎng)點(diǎn)上的頁(yè)面。
- 本地鏈接:超鏈指向本計(jì)算機(jī)中的某個(gè)文件。
- XML:是可擴(kuò)展標(biāo)記語(yǔ)言,它和HTML很相似。
- 但XML的設(shè)計(jì)宗旨是傳輸數(shù)據(jù),而不是顯示數(shù)據(jù)(HTML是為了在瀏覽器上顯示數(shù)據(jù))
- XML 不是要替換 HTML,而是對(duì) HTML 的補(bǔ)充。
- XHTML
- XHTML (Extensible HTML) 是可擴(kuò)展超文本標(biāo)記語(yǔ)言,它與 HTML 4.01 幾乎是相同的。
- 但 XHTML 是更嚴(yán)格的 HTML 版本,也是一個(gè) W3C 標(biāo)準(zhǔn)(2000年1月),是作為一種 XML 應(yīng)用被重新定義的 HTML,并將逐漸取代 HTML。
- 新的瀏覽器都支持 XHTML。
- CSS
- CSS (Cascading Style Sheets) 是層疊樣式表,它是一種樣式表語(yǔ)言,用于為 HTML 文檔定義布局。
- CSS 與 HTML 的區(qū)別就是:HTML 用于結(jié)構(gòu)化內(nèi)容,而 CSS 則用于格式化結(jié)構(gòu)化的內(nèi)容。
2. 動(dòng)態(tài)萬(wàn)維網(wǎng)文檔

- 靜態(tài)文檔是指該文檔創(chuàng)作完畢后就存放在萬(wàn)維網(wǎng)服務(wù)器中,在被用戶瀏覽的過(guò)程中,內(nèi)容不會(huì)改變。
- 動(dòng)態(tài)文檔是指文檔的內(nèi)容是在瀏覽器訪問(wèn)萬(wàn)維網(wǎng)服務(wù)器時(shí)才由應(yīng)用程序動(dòng)態(tài)創(chuàng)建。
- 動(dòng)態(tài)文檔和靜態(tài)文檔之間的主要差別體現(xiàn)在服務(wù)器一端。這主要是文檔內(nèi)容的生成方法不同。而從瀏覽器的角度看,這兩種文檔并沒(méi)有區(qū)別。
- 通用網(wǎng)關(guān)接口 CGI
- CGI 是一種標(biāo)準(zhǔn),它定義了動(dòng)態(tài)文檔應(yīng)如何創(chuàng)建,輸入數(shù)據(jù)應(yīng)如何提供給應(yīng)用程序,以及輸出結(jié)果應(yīng)如何使用。
- 萬(wàn)維網(wǎng)服務(wù)器與 CGI 的通信遵循 CGI 標(biāo)準(zhǔn)。
- “通用”:CGI 標(biāo)準(zhǔn)所定義的規(guī)則對(duì)其他任何語(yǔ)言都是通用的。
- “網(wǎng)關(guān)”:CGI 程序的作用像網(wǎng)關(guān)。
- “接口”:有一些已定義好的變量和調(diào)用等可供其他 CGI 程序使用。
- CGI 程序
- CGI 程序的正式名字是 CGI 腳本 。
- “腳本”指的是一個(gè)程序,它被另一個(gè)程序(解釋程序)而不是計(jì)算機(jī)的處理機(jī)來(lái)解釋或執(zhí)行。
- 腳本運(yùn)行起來(lái)要比一般的編譯程序要慢,因?yàn)樗拿恳粭l指令先要被另一個(gè)程序來(lái)處理(這就要一些附加的指令),而不是直接被指令處理器來(lái)處理。
3. 活動(dòng)萬(wàn)維網(wǎng)文檔

- 活動(dòng)文檔技術(shù)把所有的工作都轉(zhuǎn)移給瀏覽器端。
- 每當(dāng)瀏覽器請(qǐng)求一個(gè)活動(dòng)文檔時(shí),服務(wù)器就返回一段程序副本在瀏覽器端運(yùn)行。
- 活動(dòng)文檔程序可與用戶直接交互,并可連續(xù)地改變屏幕的顯示。
- 由于活動(dòng)文檔技術(shù)不需要服務(wù)器的連續(xù)更新傳送,對(duì)網(wǎng)絡(luò)帶寬的要求也不會(huì)太高。
6.4.5 萬(wàn)維網(wǎng)的信息檢索系統(tǒng)
6.4.6 博客和微博
6.4.7 社交網(wǎng)站
6.5 電子郵件
6.5.1 電子郵件概述
電子郵件 (e-mail) 是互聯(lián)網(wǎng)上使用得最多的和最受用戶歡迎的一種應(yīng)用。
電子郵件把郵件發(fā)送到收件人使用的郵件服務(wù)器,并放在其中的收件人郵箱中,收件人可隨時(shí)上網(wǎng)到自己使用的郵件服務(wù)器進(jìn)行讀取。
電子郵件不僅使用方便,而且還具有傳遞迅速和費(fèi)用低廉的優(yōu)點(diǎn)。
現(xiàn)在電子郵件不僅可傳送文字信息,而且還可附上聲音和圖像。
-
電子郵件的一些標(biāo)準(zhǔn)
- 發(fā)送郵件的協(xié)議:SMTP
- 讀取郵件的協(xié)議:POP3 和 IMAP
- MIME 在其郵件首部中說(shuō)明了郵件的數(shù)據(jù)類型(如文本、聲音、圖像、視像等),使用 MIME 可在郵件中同時(shí)傳送多種類型的數(shù)據(jù)。
-
電子郵件的最主要的組成構(gòu)件
image.png -
用戶代理 UA
- 用戶代理 UA 就是用戶與電子郵件系統(tǒng)的接口,是電子郵件客戶端軟件。
- 用戶代理的功能:撰寫、顯示、處理和通信。
- 郵件服務(wù)器的功能是發(fā)送和接收郵件,同時(shí)還要向發(fā)信人報(bào)告郵件傳送的情況(已交付、被拒絕、丟失等)。
- 郵件服務(wù)器按照客戶—服務(wù)器方式工作。郵件服務(wù)器需要使用發(fā)送和讀取兩個(gè)不同的協(xié)議。
-
發(fā)送和接收電子郵件的幾個(gè)重要步驟
- 發(fā)件人調(diào)用 PC 中的用戶代理撰寫和編輯要發(fā)送的郵件。
- 發(fā)件人的用戶代理把郵件用 SMTP 協(xié)議發(fā)給發(fā)送方郵件服務(wù)器,
- SMTP 服務(wù)器把郵件臨時(shí)存放在郵件緩存隊(duì)列中,等待發(fā)送。
- 發(fā)送方郵件服務(wù)器的 SMTP 客戶與接收方郵件服務(wù)器的 SMTP 服務(wù)器建立 TCP 連接,然后就把郵件緩存隊(duì)列中的郵件依次發(fā)送出去。
- 運(yùn)行在接收方郵件服務(wù)器中的SMTP服務(wù)器進(jìn)程收到郵件后,把郵件放入收件人的用戶郵箱中,等待收件人進(jìn)行讀取。
- 收件人在打算收信時(shí),就運(yùn)行 PC 機(jī)中的用戶代理,使用 POP3(或 IMAP)協(xié)議讀取發(fā)送給自己的郵件。
-
電子郵件的組成
- 電子郵件由信封 (envelope) 和內(nèi)容 (content) 兩部分組成。
- 電子郵件的傳輸程序根據(jù)郵件信封上的信息來(lái)傳送郵件。用戶在從自己的郵箱中讀取郵件時(shí)才能見(jiàn)到郵件的內(nèi)容。
- 在郵件的信封上,最重要的就是收件人的地址。
-
電子郵件地址的格式(TCP/IP)image.png
6.5.2 簡(jiǎn)單郵件傳送協(xié)議SMTP
- SMTP 所規(guī)定的就是在兩個(gè)相互通信的 SMTP 進(jìn)程之間應(yīng)如何交換信息。
- 由于 SMTP 使用客戶服務(wù)器方式,因此負(fù)責(zé)發(fā)送郵件的 SMTP 進(jìn)程就是 SMTP 客戶,而負(fù)責(zé)接收郵件的 SMTP 進(jìn)程就是 SMTP 服務(wù)器。
- SMTP 規(guī)定了 14 條命令和 21 種應(yīng)答信息。每條命令用 4 個(gè)字母組成,而每一種應(yīng)答信息一般只有一行信息,由一個(gè) 3 位數(shù)字的代碼開(kāi)始,后面附上(也可不附上)很簡(jiǎn)單的文字說(shuō)明。
- SMTP 通信的三個(gè)階段
- 連接建立:連接是在發(fā)送主機(jī)的 SMTP 客戶和接收主機(jī)的 SMTP 服務(wù)器之間建立的。SMTP不使用中間的郵件服務(wù)器。
- 郵件傳送
- 連接釋放:郵件發(fā)送完畢后,SMTP 應(yīng)釋放 TCP 連接。
6.5.3 電子郵件的信息格式
- RFC 822 只規(guī)定了郵件內(nèi)容中的首部(header) 格式,而對(duì)郵件的主體 (body )部分則讓用戶自由撰寫。
- 用戶寫好首部后,郵件系統(tǒng)將自動(dòng)地將信封所需的信息提取出來(lái)并寫在信封上。所以用戶不需要填寫電子郵件信封上的信息。
-
郵件內(nèi)容首部包括一些關(guān)鍵字,后面加上冒號(hào)。最重要的關(guān)鍵字是:To 和 Subject。image.png
6.5.4 郵件讀取協(xié)議POP3和IMAP
POP3協(xié)議
- 郵局協(xié)議 POP 是一個(gè)非常簡(jiǎn)單、但功能有限的郵件讀取協(xié)議,現(xiàn)在使用的是它的第三個(gè)版本 POP3。
- POP 也使用客戶-服務(wù)器的工作方式。
- 在接收郵件的用戶 PC 機(jī)中必須運(yùn)行 POP 客戶程序,而在用戶所連接的 ISP 的郵件服務(wù)器中則運(yùn)行 POP 服務(wù)器程序。
IMAP 協(xié)議
- IMAP (Internet Message Access Protocol) 也是按客戶服務(wù)器方式工作,現(xiàn)在較新的是版本 4,即 IMAP4。
- 用戶在自己的 PC 機(jī)上就可以操縱 ISP 的郵件服務(wù)器的郵箱,就像在本地操縱一樣。
- 因此 IMAP 是一個(gè)聯(lián)機(jī)協(xié)議。當(dāng)用戶 PC 機(jī)上的 IMAP 客戶程序打開(kāi) IMAP 服務(wù)器的郵箱時(shí),用戶就可看到郵件的首部。若用戶需要打開(kāi)某個(gè)郵件,則該郵件才傳到用戶的計(jì)算機(jī)上。
- IMAP 最大的好處就是用戶可以在不同的地方使用不同的計(jì)算機(jī)隨時(shí)上網(wǎng)閱讀和處理自己的郵件。
- IMAP 還允許收件人只讀取郵件中的某一個(gè)部分。例如,收到了一個(gè)帶有視像附件(此文件可能很大)的郵件。為了節(jié)省時(shí)間,可以先下載郵件的正文部分,待以后有時(shí)間再讀取或下載這個(gè)很長(zhǎng)的附件。
- IMAP 的缺點(diǎn)是如果用戶沒(méi)有將郵件復(fù)制到自己的 PC 上,則郵件一直是存放在 IMAP 服務(wù)器上。因此用戶需要經(jīng)常與 IMAP 服務(wù)器建立連接。
6.5.5 基于萬(wàn)維網(wǎng)的電子郵件
6.5.6 通用互聯(lián)網(wǎng)郵件擴(kuò)充MIME
- SMTP 有以下缺點(diǎn):
- SMTP 不能傳送可執(zhí)行文件或其他的二進(jìn)制對(duì)象。
- SMTP 限于傳送 7 位的 ASCII 碼。許多其他非英語(yǔ)國(guó)家的文字(如中文、俄文,甚至帶重音符號(hào)的法文或德文)就無(wú)法傳送。
- SMTP 服務(wù)器會(huì)拒絕超過(guò)一定長(zhǎng)度的郵件。
- 某些 SMTP 的實(shí)現(xiàn)并沒(méi)有完全按照[RFC 821]的 SMTP 標(biāo)準(zhǔn)。
1. MIME概述

- 通用互聯(lián)網(wǎng)郵件擴(kuò)充 MIME 并沒(méi)有改動(dòng) SMTP 或取代它。
- MIME 的意圖是繼續(xù)使用目前的 [RFC 822] 格式,但增加了郵件主體的結(jié)構(gòu),并定義了傳送非 ASCII 碼的編碼規(guī)則。
- MIME 主要包括三個(gè)部分
-
5 個(gè)新的郵件首部字段,它們可包含在 [RFC 822] 首部中。這些字段提供了有關(guān)郵件主體的信息。image.png
- 定義了許多郵件內(nèi)容的格式,對(duì)多媒體電子郵件的表示方法進(jìn)行了標(biāo)準(zhǔn)化。
- 定義了傳送編碼,可對(duì)任何內(nèi)容格式進(jìn)行轉(zhuǎn)換,而不會(huì)被郵件系統(tǒng)改變。
-
5 個(gè)新的郵件首部字段,它們可包含在 [RFC 822] 首部中。這些字段提供了有關(guān)郵件主體的信息。
2. 內(nèi)容傳送編碼
- 最簡(jiǎn)單的編碼就是 7 位 ASCII 碼,而每行不能超過(guò) 1000 個(gè)字符。MIME 對(duì)這種由 ASCII 碼構(gòu)成的郵件主體不進(jìn)行任何轉(zhuǎn)換。
- 另一種編碼稱為 quoted-printable,這種編碼方法適用于當(dāng)所傳送的數(shù)據(jù)中只有少量的非 ASCII 碼。
- 對(duì)于任意的二進(jìn)制文件,可用 base64 編碼。
3. 內(nèi)容類型

- MIME 著標(biāo)準(zhǔn)規(guī)定 Content-Type 說(shuō)明必須含有兩個(gè)標(biāo)識(shí)符,即內(nèi)容類型(type)和子類型(subtype),中間用“/”分開(kāi)。
- MIME 標(biāo)準(zhǔn)定義了 7 個(gè)基本內(nèi)容類型和 15 種子類型。













