網路基礎與協議入門——(1)HTTP協議重點

鍾超發表於2011-12-25

1. 概述

HTTP是超文字傳輸協議,由全球資訊網協會和Internet工作組合作發展,其中著名的RFC2616協議是HTTP協議的核心。


2. 使用者代理

HTTP使用者的客戶端,一般被稱為使用者代理,即user agent。


3. 源伺服器

HTTP伺服器端,一般被稱為源伺服器,即origin server。


4. 傳輸

HTTP協議所實現的,就是使用者代理和源伺服器之間的傳輸,期間可能經過網管、代理、反向代理等,比較複雜。但基本原理比較簡單,是CS模型。


5. HTTP協議是應用層的

我們都知道最通用的網路五層模型中,由下到上分別是:物理層、鏈路層、網路層、傳輸層、應用層。IP協議是網路層的,TCP和UDP是傳輸層的,HTTP是應用層的。由於網路層的透傳特性,我們只需要考慮HTTP與傳輸層的契合,以及HTTP對等的兩端的邏輯,其他的不需考慮。


6. HTTP協議使用TCP協議

HTTP協議使得使用者在開啟網頁時,需要按照順序傳送很多資料,TCP協議提供傳輸控制,可以組織資料的順序並就正常錯誤,而UDP不能做到。


7. 如何識別請求的是什麼?

HTTP或HTTPS協議請求的資源,採用URI(Uniform Resource Identifiers,統一資源識別符號)來標識。


8. HTTP請求方法

HTTP/1.1協議中提供了8中HTTP方法,分別是GET、POST、PUT、DELETE、TRACE、CONNECT、HEAD、OPTIONS。

GET:向指定的資源,發起一般請求。該請求不會改變HTTP伺服器上的資源。

POST:向指定的資源,發起處理請求。該請求會改變HTTP伺服器上的資源。

PUT:向指定的資源,上傳其最新內容。

DELETE:發起刪除指定資源的請求。

TRACE:回顯伺服器收到的請求,用於測試。

注意方法是大小寫敏感的,如果對某個指定的資源所發起的請求,並不被這個資源所支援,則返回405狀態碼(Method Not Allowed)。


9. HTTP狀態碼

1XX:訊息。請求已被伺服器接收,繼續處理。

2XX:成功。請求已成功被伺服器接收、理解並接受。

3XX:重定向。需要後續操作才能完成這一請求。

4XX:請求錯誤。請求含有詞法錯誤或無法被執行。

5XX:伺服器錯誤。伺服器在處理某個正確請求時發生錯誤。


200:OK。

403:伺服器理解請求,但是拒絕執行。

404:Not found。請求的資源在伺服器未被發現。

405:資源不支援方法。

500:Interval server error。伺服器內部錯誤。

501:Not implemented。無法識別方法/方法不被支援。

502:Bad gateway。適用於閘道器或代理伺服器,標識上游的伺服器響應無效。


10. HTTP版本

0.9 已經不再使用,只有GET一種方法。不指定版本號和請求頭。

1.0 第一個指定版本號的HTTP協議版本,至今仍在廣泛使用,尤其是在代理伺服器中。

1.1 當前的版本,預設採用持久連線。

相關文章