第一章 HTTP 概述
Web 瀏覽器、伺服器和相關的 Web 應用程式都是通過 HTTP 相互通訊的。HTTP 是現代全球因特網中使用的公共語言。本章特別介紹以下內容:
- Web 客戶端與伺服器是如何通訊的
- 資源來自何方
- Web 事務是怎樣工作的
- HTTP 通訊所用的報文格式
- 底層 TCP 網路傳輸
- 不同 HTTP 協議變體
- 因特網上安裝大量 HTTP 架構元件中的一部分
Web 客戶端和伺服器
Web 內容是儲存在 Web 伺服器上的,Web 伺服器所使用的是 HTTP 協議,因此經常會被稱為 HTTP 伺服器。客戶端向伺服器傳送 HTTP 請求,伺服器會在 HTTP 響應中會送所有請求資料。最常見的客戶端就是 Web 瀏覽器。
資源
Web 伺服器是 Web 資源的宿主。Web 資源是 Web 內容的源頭。最簡單的資源就是 Web 伺服器裡的靜態檔案。但資源不一定非得是靜態檔案,資源還可以是根據需要生成內容的軟體程式。這些動態內容資源可以根據你的身份、所請求的資訊或時段來產生內容。
媒體型別
因特網上有數千種不同的資料型別,HTTP 給每種要通過 Web 傳輸的物件打上了名為 MIME 型別的資料格式標籤。Web 伺服器會為所有的 HTTP 物件附加一個 MIME 型別,當 Web 瀏覽器從伺服器中取回一個物件時,會去檢視相關的 MIME 型別,看看它是否知道要如何處理這個物件。
MIME 型別是一種文字標記,表示一種主要物件型別和一個特定的子型別,中間由一條斜槓來分隔。
- Html 的文字文件由 text/heml 型別來標記
- GIF 格式的圖片為 image/gif 型別
URI
每個 Web 伺服器資源都有一個名字,這樣客戶端就可以說明它們感興趣的資源是什麼了。伺服器資源名被稱為***統一資源識別符號(Uniform Resource Identifier)。***
URI 有兩種形式,分別稱為 URL 和 URN。
URL
***統一資源定位符***是資源識別符號中最常見的形式。URL 描述了一臺特定伺服器上某資源的特定位置
大部分 URL 都遵循一種標準格式,這種格式包含三個部分:
- URL 的第一部分被稱為方案,說明了訪問資源所使用的協議型別。這部分通常就是 HTTP 協議(http://)。
- 第二部分給出了伺服器的因特網地址
- 其餘部分指定了因特網上的某個資源
事務
一個 HTTP 事務由一條(從客戶端發往伺服器的)請求命令和一個(從伺服器發回客戶端的)響應結果組成。這種通訊是通過名為 HTTP 報文的格式化資料塊進行的。
方法
HTTP 支援幾種不同的請求命令,這些命令被稱為 HTTP 方法。每條 HTTP 請求報文都包含一個方法,這個方法回告訴伺服器要執行什麼動作(獲取一個 Web 也面、執行一個網管程式、刪除一個檔案等)
HTTP 方法 | 描述 |
---|---|
GET | 從伺服器向客戶端傳送命名資源 |
PUT | 將來自客戶端的資料儲存到一個命名的伺服器資源中 |
DELETE | 從伺服器中產出命名資源 |
POST | 將客戶端資料傳送到一個伺服器閘道器應用程式 |
HEAD | 僅傳送命名資源響應中的 HTTP 首部 |
狀態碼
每條 HTTP 響應報文返回時都會攜帶一個狀態碼。狀態嗎是一個三位數字的程式碼,告知客戶端請求是否成功,或者是否需要採取其他動作。
HTTP 狀態碼 | 描述 |
---|---|
200 | OK,文件正確返回 |
302 | Redirct(重定向),到其他地方去獲取資源 |
404 | Not Foud,無法找到這個資源 |