1. 程式人生 > >第9章 應用層(4)_超文本傳輸協議HTTP

第9章 應用層(4)_超文本傳輸協議HTTP

span 關閉連接 多圖 帳戶 通過 從服務器 -668 傳輸協議 分享

5. 超文本傳輸協議HTTP

5.1 統一資源定位符URL

(1)URL的一般形式:<協議>://<主機>:<端口>/<路徑>

  ①協議後面必須寫上“://”,不能省略;

  ②主機是指該主機在因特網上的域名或IP地址;

  ③端口和路徑有時候可以省略。

(2)舉例

  ①HTTP的URL一般形式:http://<主機>:<端口>/<路徑>。其中端口默認為80,通常可省略。

  ②FTP的URL一般形式:ftp:// <主機>:<端口>/<路徑>。其中端口號默認為21。如ftp://user:[email protected]

:9921。

5.2 絕對路徑和相對路徑

(1)絕對路徑(URL):為文件提供完全的路徑,包括使用的協議,如http、ftp和rtsp等。如http://www.sohu.com,ftp://202.136.254.1。當鏈接到其他網站資源時,必須使用絕對路徑

(2)相對路徑:指向站點文件夾之內的文件(或文件夾)。只要是同一網站之下的,即使不在同一個目錄之下,相對路徑也非常合適。

  ①如果鏈接到同一目錄下,則只需要輸入要鏈接文檔的名稱。

  ②要鏈接到下一級目錄中的文件,只需先輸入目錄名,然後加“/”再輸入文件名。

  ③如果要鏈接到上一級目錄中的文件,則先輸入“../”,再輸入目錄名、文件名。

(3)根路徑:相對於網站的根目錄。以斜杠開頭,然後是文件夾名,最後寫文件名。如“/dir/file1.txt”

5.3 HTTP協議版本

(1)http1.0和http1.1的比較

  ①由於Web站點訪問量大,為了提高系統的效率,HTTP1.0規定瀏覽器與服務保持短暫連接,瀏覽器的每次請求都需要與服務器建立一個tcp連接。這也造成一些性能上的缺陷。比如,當一個包含許多圖像的網頁文件(如大量的<img>標簽),每下載一個圖像文件都必須單獨創建一個tcp連接,那怕圖像文件很小也如此。由於頻繁建立和關閉tcp連接會嚴重影響服務器的性能。

技術分享

  ②http1.1支持持續連接。指的是Web服務器在發送響應後的一段時間內仍保持這條連接,使同一客戶(瀏覽器)和該服務器的通信可以繼續使用該連接。這並不局限於傳送同一個頁面上鏈接的文檔,而只要這些文檔都在同一個服務器上就行,它減少了建立和關閉連接的浪費。(目前IE默認使用http1.1

,可在“工具”→“Internet選項”→“高級”→“HTTP1.1設置”中設置或取消,若取消則使用的是1.0版本)

(2)http1.1持續連接的兩種工作方式

技術分享

  ①非流水線方式的特點:客戶在收到前一個響應後才能發出下一個請求。因此在TCP連接建立後,客戶每訪問一次對象都要用去一個往返時間RTT。如果要下載的文件很多,服務器在發送完一個對象後,其TCP連接就處理空閑狀態,浪費了服務器資源。

  ②流水線方式的特點:客戶在收到http的響應報文 就能夠接著發送新的請求報文。於是一個接一個的請求報文到達服務器後,服務器就可以連接發回響應報文。這種方式使TCP連接的空閑時間減少,提高了文檔的下載效率。因此,下載速度比非流水線的快很多。

5.4 HTTP的請求報文和響應報文

(1)請求報文(從客戶端向服務器發送的請求報文)

技術分享

   ①由於http是面向文本的,因此在報文中的每個字段都是一些ASCII碼串,通常以\r\n結束

  ②http請求報文由三部分組成:A.開始行。主要用於區別是請求報文還是響應服文。B.首部行,用來說明瀏覽器、服務器或報文主體的一些信息。首部可以多行,也可以不使用。每一行都以“回車”和“換行”結束。整個部分行結束,還要有一個“回車”和“換行”。C.實體主體。在請求報文中一般不用這個字段,而響應報文中也可能沒有這個字段。

  ③“請求行”的“Request Method”共有8方法見上圖)。用來表示對“Request URI”指定的資源的不同操作方式,註意方法名是區別大小寫的!

(2)響應報文(從服務器到客戶端的應答)

技術分享

  ①響應報文的第1行是狀態行:包括http版本、狀態碼以及解釋狀態碼的簡單短語等三項內容。

  ②狀態碼(Status Code)共5大類33種

狀態碼

含義

1xx

表示通知信息。如請求收到了或正在進行處理

2xx

表示成功。如接受或知道了

3xx

表示重定向。如要完成請求還必須采取進一步的行動

4xx

表示客戶端的錯誤。如請求中有錯誤的語法或不能完成

5xx

表示服務器的差錯。如服務器失效無法完成請求

5.5 Cookie

(1)Cookie簡介:

  ①由於http是一種無狀態的協議。為了記錄信息,當客戶端請求服務器時,如果服務器記錄需要記錄該用戶的狀態,就使用response向客戶端瀏覽器頒發一個Cookie,客戶端瀏覽器會把Cookie保存起來。

  ②當瀏覽器再次請求該網站時,瀏覽器把請求的網址連同該Cookie一同提交給服務器。服務器會檢查該Cookie,還可以根據需要修改Cookie的內容。

(2)Cookie的導出和導入

  ①導出:瀏覽126郵箱,選擇“十天內免登錄”。然後“文件”→“導入和導出”→“導出Cookie” →指定保存位置

  ②導入:在另一臺計算機上,打開瀏覽器→“文件”→“導入和導出”→“導入Cookie”,然後打開126郵箱,該網站自動讀取Cookie並自動登錄。

(3)Cookie安全(刪除Cookie):“Internet選項”→“常規”→“刪除Cookie”

5.6 通過代理服務器訪問網站

(1)代理服務器應用場景

  ①使用代理服務器,繞過防火墻封鎖。由於國內防火墻攔截了到某些國外網站(如B)的流量。但國外有很多Web代理服務器(如C),國內用戶可以設置瀏覽器使用國外的代理服務器,然後再去訪問這些網站就能成功。

技術分享

  ②提高內網用戶的訪問速度。代理服務器可以緩存用戶訪問過的內容,當其他用戶再訪問相同的URL時,由代理服務器從緩存中找到要訪問的信息,傳給用戶,從而提高訪問速度。

技術分享

  ③隱藏真實IP。有些網站的論壇會記錄發貼人的IP地址,可以使用代理服務器去訪問,這樣網站只會記錄代理的地址,從而隱藏自己的IP。

(2)架設Web代理服務器

  ①將Win2003虛擬機架設成Web代理服務器:運行CCProxy軟件。(註意本機IP:192.16.80.20,運行該軟件後默認會在808端口監聽客戶端連接)

技術分享

  ②通常代理服務器有兩個網卡,一個連接Internet,一個連接內網。連接內網的網卡為內網計算機上網的代理地址。(本實驗Web代理服務器就一個網卡,因此需要指定哪個地址可以作為代理地址,方法是CCProxy→“帳戶” →在“允許範圍”中選擇“允許所有”)。

技術分享

(3)測試代理

  ①xp機上指定使用代理服務器:打開IE→“工具”→“Internet選項”→“連接”選項卡→“局域網設置”→在“代理服務器”中填入IP和端口(如上面的IP:192.168.80.20,端口808)

技術分享

  ②瀏覽網站。然後用netstat -an查看,就可以看到只有和Web代理建立的TCP連接了。也可以在Win2003的代理服務軟件的“監控”中看到這些信息。

技術分享

第9章 應用層(4)_超文本傳輸協議HTTP