HTTP協議 簡介

    Internet是由各個協議連接起來的,而我們現在使用最廣的莫過於HTTP協議了,也就是超文本傳輸協議,與FTP(文件傳輸協議)不同,由於主要用於超文本傳輸,因此HTTP協議顯得更簡單一點。今天我們來介紹一下HTTP協議的基本格式。
  在這裏,我們所談及的HTTP協議以HTTP/1.1爲標準,並且使用Net Vampire Pro 4.0來取得與HTTP服務器的通信Log,您也可以使用其它的HTTP下載工具來取得通信Log。
  在HTTP協議中,服務端是指提供HTTP服務的部分,客戶端是指你使用的瀏覽器或者下載工具等等。在通訊時,由客戶端發出請求連接,服務端建立連接;然後,客戶端發出HTTP請求(Request),服務端返回響應信息(Respond),由此完成一個HTTP操作。我們來通過一個例子來了解這個過程:(以下是Net Vampire進行的一次連接,以下紅色字體爲作者添加)
P 01-5-26 16:10:43 Connecting to go2.163.com ...          //連接服務器
P 01-5-26 16:10:44 Connected to go2.163.com [61.129.65.148]     //解析IP地址,以下爲HTTP操作
S 01-5-26 16:10:44 GET /~minift/epretty/pretty.zip HTTP/1.1    //請求行(Request Line),表示使用GET方式取得文件,使用HTTP/1.1協議 
//以下爲請求頭部(Request Head)
S 01-5-26 16:10:44 Connection: close                //表示非持續性連接
S 01-5-26 16:10:44 Host: go2.163.com                //主機名稱
S 01-5-26 16:10:44 Accept: */*                   //接受的數據類型
S 01-5-26 16:10:44 Pragma: no-cache                //參數(與以前的服務器兼容)
S 01-5-26 16:10:44 Cache-Control: no-cache             //不使用緩存
S 01-5-26 16:10:44 Referer: http://go2.163.com/~minift/epretty  //從該網址轉來
S 01-5-26 16:10:44 User-Agent: Mozilla/4.04 [en] (Win95; I ;Nav) //客戶端標識
S 01-5-26 16:10:44 Cookie: AdId=ACDDAAAAAAA
S 01-5-26 16:10:44                         //以下爲Respond
R 01-5-26 16:10:47 HTTP/1.0 200 OK                 //響應行(Respond Line),服務器使用HTTP/1.0協議,狀態值(Status Code)爲200,狀態爲OK,表示文件可以讀取
R 01-5-26 16:10:47 Date: Sat, 26 May 2001 08:15:54 GMT       //現在的時間,用格林威治時間表示
R 01-5-26 16:10:47 Server: Apache/1.3.14 (Unix) mod_layout/2.9.9  //服務器類型
R 01-5-26 16:10:47 Last-Modified: Fri, 04 May 2001 02:42:56 GMT   //文件最後更新時間
R 01-5-26 16:10:47 ETag: "e614cf-37965-3af21730"
R 01-5-26 16:10:47 Accept-Ranges: bytes              //接受的範圍單位
R 01-5-26 16:10:47 Content-Length: 227685             //文件長度 
R 01-5-26 16:10:47 Content-Type: application/zip          //MIME類型
R 01-5-26 16:10:47 X-Cache: MISS from shca8
R 01-5-26 16:10:47 X-Cache-Lookup: MISS from shca8:80
R 01-5-26 16:10:47 Connection: close                //表示文件傳輸完畢就關閉連接。
R 01-5-26 16:10:47                         //以下爲文件傳輸
P 01-5-26 16:10:47 Data transfer started 
  下面來講解使用的格式(LRCF=@13@10,即回車,SP=SPACE,即空格)
Request:
協議方式 SP 文件URI SP 協議版本 LRCF (請求行)
(以下爲頭部)
頭部類型 : 頭部值 LRCF
頭部類型 : 頭部值 LRCF
頭部類型 : 頭部值 LRCF
...... 
LRCF 表示頭部結束
(如果有體部,以下爲體部)

Respond:
協議版本 SP 狀態值 SP 狀態描述 LRCF (響應行)
(以下爲頭部)
頭部類型 : 頭部值 LRCF
頭部類型 : 頭部值 LRCF
頭部類型 : 頭部值 LRCF
...... 
LRCF 表示頭部結束
(如果有體部,以下爲體部)


  由上可見,請求與相應的格式只有部分不同,是很容易理解的,現在你應該基本瞭解HTTP協議了吧,也能看懂那些通信Log了吧,下一次我們講專門講解在響應行中的狀態值含義及一些特殊情況。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章