摘要:文章描述了一種在Windows環(huán)境下利用“超級終端”工具驗證剖析WWW工作過程中HTTP協(xié)議的工作過程,使學生在學習過程中能通過實踐驗證的方式加深對HTTP協(xié)議的理解。
關鍵詞:超文本傳輸協(xié)議;客戶/服務器模式;統(tǒng)一資源定位器;遠程登陸;超級終端
中圖分類號:TP393文獻標識碼:A 文章編號:1009-3044(2008)11-20287-01
在計算機網(wǎng)絡基礎課程的教學過程中,我們對計算機網(wǎng)絡體系結構和相關協(xié)議的教學經(jīng)常停留在理論介紹和分析的模式下,使學生總是感覺理論成分過高,卻不知道這些理論知識如何在真實網(wǎng)絡環(huán)境中得到體現(xiàn)。在本人從教計算機網(wǎng)絡課程的幾年中,經(jīng)常有學生就TCP/IP (Transfer Control Protocol/Internet Pprotocol)協(xié)議簇的應用層協(xié)議HTTP (HyperText Transport Protocol)提出問題:WWW服務器使用的主要協(xié)議是HTTP協(xié)議,如何在實際中理解其工作過程?用戶一般使用網(wǎng)頁瀏覽器(如Internet Explorer,F(xiàn)irefox,Opera等)查看Web頁面(網(wǎng)頁),而瀏覽器對用戶屏蔽了和目標HTTP服務器建立TCP連接及請求并獲取頁面文件的細節(jié)過程。通過瀏覽器瀏覽網(wǎng)頁的過程中HTTP協(xié)議到底是如何工作的?我們可以通過Telnet客戶端程序與HTTP服務器通信來分析它的工作工程[1]。雖然在UNIX環(huán)境下容易通過實驗對其進行分析和驗證,但在windows環(huán)境下,相關資料就非常少。本文先就HTTP協(xié)議工作原理做一個簡單介紹,然后介紹一種在windows環(huán)境下用實驗法剖析相關的工作原理的方法。
1 HTTP協(xié)議工作原理
HTTP協(xié)議采用C/S(Client/Server,客戶/服務器)工作模式。在該模式中,信息資源以頁面(網(wǎng)頁或Web頁)的形式存儲在Web服務器(Server)中;用戶查詢信息時執(zhí)行一個簡單的客戶端程序,簡稱為客戶程序(Client,也稱為瀏覽器Browser程序)。客戶向服務器請求服務時,只需傳送請求方法和路徑。Client向Server發(fā)出請求,Server根據(jù)Client的請求內容,將保存在Server中的某個頁面返回給Client,Client接收到頁面后對其進行解釋,最終將圖片、文字、聲音等畫面呈現(xiàn)在用戶面前。在上述傳輸過程中基本上就是一次HTTP協(xié)議工作過程。Client向Server的請求方法有GET、HEAD、POST、PUT、DELETE、OPTIONS、TRACE等[2],每種方法規(guī)定了客戶與服務器聯(lián)系的類型不同。同學們對其中POST、PUT方法可能有印象,在網(wǎng)頁制作中經(jīng)常被用來向服務器提交信息。概括的講,上述Web瀏覽器向WWW服務器請求頁面的過程需經(jīng)過以下幾個步驟:
(1)用戶打開瀏覽器在地址欄輸入網(wǎng)頁的URL(Uniform Resource Location,統(tǒng)一資源定位器,俗稱網(wǎng)址。其格式為:“協(xié)議://主機名(或IP地址)[:端口號]/路徑/文件名”),若輸入的網(wǎng)址是不完整的URL,瀏覽器將按照缺省情況自動補全,如輸入: www.ahcme.cn回車后,瀏覽器地址欄變?yōu)閔ttp://www.ahcme.cn。此時采用默認端口號80,缺省請求服務器的默認主頁。
(2)瀏覽器首先向DNS服務器(域名服務器,就是我們在對主機進行網(wǎng)絡配置時輸入的DNS地址,如安徽蕪湖市電信DNS服務器地址為202.102.192.68)發(fā)出域名解析請求,要求把www.ahcme.cn解析為它所對應的IP地址。DNS進行查詢后,向瀏覽器回送應答。如www.ahcme.cn對應的IP地址為218.22.71.211。
(3)在獲取www.ahcme.cn的IP地址后,瀏覽器向主機218.22.71.211的80端口建立TCP連接。
(4)連接建立成功后,瀏覽器發(fā)出HTTP請求命令,如:GET /HTTP/1.0 (簡單的請求,表示請求服務器的默認主頁)
(5)服務器斷收到請求后,查看相應資源,若存在,則向瀏覽器發(fā)送響應HTML文件;否則向瀏覽器報告錯誤代碼。隨后服務器關閉本次TCP連接。
(6)瀏覽器收到響應的HTML文件后解釋并顯示出網(wǎng)頁。若包含圖片,還要進行TCP連接來獲取圖片信息。
2 實驗驗證WWW工作過程,學習HTTP協(xié)議
在Unix/Linux環(huán)境下,Telnet 客戶端具有本地回顯,因此驗證該過程非常容易。但Windows環(huán)境下Telnet客戶端工具默認設置沒有本地回顯,所以Unix環(huán)境下的驗證方法不能直接套用。事實上,很多老師和學生對Unix/Linux并不熟悉。因此在學習到相關知識時就停留在純粹理論上,并造成一種理論和實際脫節(jié)的錯覺。其實在Windows環(huán)境下也可以利用Telnet 來學習HTTP的工作原理,但Windows環(huán)境下Telnet的默認設置沒有本地回顯,所以操作起來不具直觀性。本人在教學中就利用Windows自帶的工具“超級終端”(可以作為Telnet工具使用,且方便設置本地回顯)進行驗證。上述的工作過程可以如下驗證:
(1)進入命令行界面(“開始”/“運行”中輸入“cmd.exe”),運行nslookup www.ahcme.cn進行域名解析,獲取其IP地址(如圖1)。
(2)打開超級終端:開始/程序/附件/通訊/超級終端。出現(xiàn)位輸入位置信息時選擇“取消”,確認“取消”后選擇“確定”后,按照提示為連接取個名稱(如“http 實驗”),將再次需要你確認不輸入位置信息。確認后出現(xiàn)“連接到”對話框(如圖2),在“連接時使用”處選擇“TCP/IP (Winsock)”后“連接到” 對話框發(fā)生變化(圖3),填上第一步中解析出的www.ahcme.cn對應的IP地址218.22.71.211,并將默認的端口號由23改為80后確定。在圖4的“文件”下拉菜單中選擇“屬性”,設置“允許遠程主機啟動文件傳輸”,并在“ASCII碼設置”中設置“本地回顯”即可。
(3)鍵盤大寫狀態(tài)下輸入HTTP請求方法:GET/ HTTP/1.0 (結束加兩次回車發(fā)送)。在超級終端界面上即可以看到服務器返回相應頁面的HTML源文件。
(4)將超級終端里HTML源文件和從WEB瀏覽器處獲取的源文件進行比較(為了方便進行比較,還可以在超級終端中設置捕獲數(shù)據(jù)到指定文件),結果是二者相同。
3 效果討論
通過上述實驗過程,可以非常清晰的看到WEB瀏覽器獲取網(wǎng)頁HTML源文件的過程,而WEB瀏覽器進一步對HTML文件解釋并顯示出我們平時所見到的網(wǎng)頁效果。在此基礎上可以進一步解釋為什么同一個網(wǎng)頁在不同的瀏覽器中看到的效果可能不同:不是瀏覽器獲取的頁面信息不同,而是由于對HTML標記語言的解釋可能有所不同而所造成的。
而善于思考的同學可能馬上就對瀏覽器獲取服務器頁面HTML文件的其他方法(如HEAD、PUT等)和HTTP服務器返回的各種響應代碼[3]比較感興趣,因此還可以進一步引導同學們學習和理解HTTP協(xié)議中客戶機向服務器資源請求的各種方法的具體使用,并做出相似的實驗驗證,從而加深對HTTP協(xié)議的理解并為今后相關方面的網(wǎng)絡編程打下良好的基礎。
參考文獻:
[1] 胡谷雨,譯. TCP/IP Illustrated vol 3:TCP for Transactions,HTTP,NNTP,and the UNIX Domain Protocols[M].北京:機械工業(yè)出版社,2002.129-136.
[2] 熊桂喜,王小虎,譯.計算機網(wǎng)絡(第3版)[M]. 北京:清華大學出版社,2002.526-537.
[3] 任泰明. TCP/IP協(xié)議與網(wǎng)絡編程[M].西安:西安電子科技大學出版社,2004.82-86.
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文