HTTP 概述
HTTP超文本傳輸協(xié)議
HTTP 使用的是可靠的數(shù)據(jù)傳輸協(xié)議
-
資源
1.1 媒體類型
因特網(wǎng)上有數(shù)千種不同的數(shù)據(jù)類型籽暇,HTTP 仔細地給每種要通過 Web 傳輸?shù)膶?br> 象都打上了名為 MIME 類型(MIME type)的數(shù)據(jù)格式標簽MIME 類型是一種文本標記蒿叠,表示一種主要的對象類型和一個特定的子類型缭召,中間
由一條斜杠來分隔滋捶。
? HTML 格式的文本文檔由 text/html 類型來標記疟丙。
? 普通的 ASCII 文本文檔由 text/plain 類型來標記鸟雏。
? JPEG 版本的圖片為 image/jpeg 類型享郊。
? GIF 格式的圖片為 image/gif 類型。
? Apple 的 QuickTime 電影為 video/quicktime 類型孝鹊。
? 微軟的 PowerPoint 演示文件為 application/vnd.ms-powerpoint 類型-
1.2 URI
統(tǒng)一資源標識符(Uniform Resource Identifier炊琉,URI)
URI 就像因特網(wǎng)上的郵政地址一樣又活,在世界范圍內唯一標識并定位信息資源。這是 Joe 的五金商店的 Web 服務器上一個圖片資源的 URI:
http://www.joes-hardware.com/specials/saw-blade.gif
-
-
1.3 URL
統(tǒng)一資源定位符(Uniform Resource locator悼泌,URL) URL 描述了一臺特定服務器上某資源的特定位置- URL 的第一部分被稱為方案(scheme)夹界,說明了訪問資源所使用的協(xié)議類型。這 部分通常就是 HTTP 協(xié)議(http://)可柿。
- 第二部分給出了服務器的因特網(wǎng)地址(比如,www.joes-hardware.com)营密。
- 其余部分指定了 Web 服務器上的某個資源(比如目锭,/specials/saw-blade.gif)。
-
事務
一個 HTTP 事務由一條(從客戶端發(fā)往服務器的)請求命令和一個(從服務器 發(fā)回客戶端的)響應結果組成痢虹。這種通信是通過名為 HTTP 報文(HTTP message) 的格式化數(shù)據(jù)塊進行的
-
2.1 方法
HTTP 支持幾種不同的請求命令奖唯,這些命令被稱為 HTTP 方法(HTTP method)- GET 從服務器向客戶端發(fā)送命名資源
- PUT 將來自客戶端的數(shù)據(jù)存儲到一個命名的服務器資源中去 DELETE 從服務器中刪除命名資源
- POST 將客戶端數(shù)據(jù)發(fā)送到一個服務器網(wǎng)關應用程序
- HEAD 僅發(fā)送命名資源響應中的 HTTP 首部
2.2 狀態(tài)碼
每條 HTTP 響應報文返回時都會攜帶一個狀態(tài)碼(比如404)
-
-
報文
從 Web 客戶端發(fā)往 Web 服務器的 HTTP 報文稱為請求報文(request message)。從 服務器發(fā)往客戶端的報文稱為響應報文(response message),HTTP 報文包括以下三個部分寂汇。
1)起始行 報文的第一行就是起始行捣染,在請求報文中用來說明要做些什么,在響應報文中說 明出現(xiàn)了什么情況液斜。
2)首部字段 起始行后面有零個或多個首部字段。每個首部字段都包含一個名字和一個值臼膏,為 了便于解析示损,兩者之間用冒號(:)來分隔。首部以一個空行結束检访。添加一個首 部字段和添加新行一樣簡單。
?3)主體 空行之后就是可選的報文主體了医清,其中包含了所有類型的數(shù)據(jù)卖氨。請求主體中包括 了要發(fā)送給 Web 服務器的數(shù)據(jù);響應主體中裝載了要返回給客戶端的數(shù)據(jù)。起 始行和首部都是文本形式且都是結構化的筒捺,而主體則不同,主體中可以包含任意 的二進制數(shù)據(jù)(比如圖片五嫂、視頻肯尺、音軌、軟件程序)蟆盹。當然闺金,主體中也可以包含 文本。 -
連接
-
4.1 TCP/IP
只要建立了 TCP 連接寨昙,客戶端和服務器之間的報文交換就不會丟失、不會被破壞欢顷, 也不會在接收時出現(xiàn)錯序了捉蚤。【三次握手】HTTP 協(xié)議位于 TCP 的上層缆巧。HTTP 使用 TCP 來傳輸其報文 據(jù)
4.2 連接陕悬、IP地址及端口號
在 HTTP 客戶端向服務器發(fā)送報文之前,需要用網(wǎng)際協(xié)議(Internet Protocol捉超,IP) 地址和端口號在客戶端和服務器之間建立一條 TCP/IP 連接。
怎么獲得 HTTP 服務器的 IP 地址和端口號呢?當然是通過 URL 了!
-
http://207.200.83.29:80/index.html
http://www.netscape.com:80/index.html
http://www.netscape.com/index.html
第一個 URL 使用了機器的 IP 地址枝誊,207.200.83.29 以及端口號 80惜纸。
第二個 URL 沒有使用數(shù)字形式的 IP 地址,它使用的是文本形式的域名堪簿,或者稱為 主機名(www.netscape.com)。主機名就是 IP 地址比較人性化的別稱哪审÷瞧伲可以通過一 種稱為域名服務(Domain Name Service,DNS)的機制方便地將主機名轉換為 IP 地址叽奥,這樣所有問題就都解決了痛侍。第 2 章會介紹更多有關 DNS 和 URL 的內容。
最后一個 URL 沒有端口號。HTTP 的 URL 中沒有端口號時待德,可以假設默認端口號是 80枫夺。