1. 程式人生 > >HTTP協議—— 簡單認識網路請求過程中使用的協議

HTTP協議—— 簡單認識網路請求過程中使用的協議

大學沒讀計算機專業,所以很多的專業知識都不知道。既然已經從事了IT這個行業,就勢必要去了解下網路底層,雖然實際工作中這些東西用不到。高樓大廈,起於平川。不積跬步,無以至千里,不積小流,無以成江海。我現在的知識結構,就如同空中樓閣。稍微遇到高層次的問題,可能就理解不了了。一棵大樹如果不在剛開始的時候深深的紮根,把所有的力量用到生長葉子開花上面。等到了大風來襲,網際網路低潮的時候,一切來自不易的生活,就輕而易舉的被傾覆。

我的理想是成為一個擁有淵博知識的人,擁有豐富的專業知識,足以應對工作中的難題。工作之餘,博覽群書,提升氣質談吐。

1、什麼是TCP/IP 

      如果要了解一個人,可以從他歸屬的集體聊起來。我們的HTTP協議就屬於TCP/IP協議家族中的一員,瞭解HTTP協議再整個網路流程中的地位,也能更加充分的理解HTTP協議。

      要想了解什麼是TCP/IP協議,就要知道為什麼有這個協議。中國人和中國人說話,要遵循漢語的的語法結構,使用漢語的發音。當我們和外國人交流時,就要適用外國的語言了,遵循外國的語法機構和發音。其實這就是一種協議,只不過我們稱之為語言。計算機再這方面體現的更為直觀,兩臺機器之間該如何通訊呢,就需要制定各種各樣的協議了。例如:檔案傳輸適用TCP協議。域名系統適用DNS協議。有了些協議的存在,各種資料流按照規則傳輸,計算機之間得意通訊。

       TCP/IP協議是一個協議集合。大家叫的時候方便說,所以統稱為TCP/IP。TCP/IP協議族中有一個重要的概念是分層,TCP/IP協議按照層次分為以下四層。應用層、傳輸層、網路層、資料鏈路層。為什麼要分層?這就如同鄧小平1978年的大包乾,責任到人。一個層只負責一個層次的問題,如果出問題了,和其他的層次無關,只要維護這個層次也就好了。其實程式語言裡也能體現這個分層理論,即封轉性、隔離。這裡不再延伸細談。下面我是製作的一個簡圖。

      

下面是從網路上找到的TCP/IP通訊資料流

2、HTTP 關係密切的協議 : IP、TCP 和 DNS

    IP協議:IP(Internet protocol),這裡的IP不是值得我們通常所說的192.168.1.1.這個IP指的是一種協議,而後面的數字值得是IP地址。IP協議的作用在於把各種資料包準確無誤的傳遞給對方,其中兩個重要的條件是IP地址,和MAC地址(Media Access Control Address)。由於IP地址是稀有資源,不可能每個人都擁有一個IP地址,所以我們通常的IP地址是路由器給我們生成的IP地址,路由器裡面會記錄我們的MAC地址。而MAC地址是全球唯一的,除去人為因素外不可能重複。舉一個現實生活中的例子,IP地址就如同是我們居住小區的地址,而MAC地址就是我們住的那棟樓那個房間那個人。關於MAC地址,如果我沒講清楚,

可點選連線,檢視百度。以下內容摘抄自《圖解HTTP》

   使用 ARP 協議憑藉 MAC 地址進行通訊

   IP 間的通訊依賴 MAC 地址。在網路上,通訊的雙方在同一區域網(LAN)內的情況是很少的,通常是經過多臺計算機和網路裝置中轉才能連線到對方。而在進行中轉時,會利用下一站中轉裝置的 MAC 地址來搜尋下一個中轉目標。這時,會採用 ARP 協議(Address Resolution Protocol)。ARP 是一種用以解析地址的協議,根據通訊方的 IP 地址就可以反查出對應的 MAC 地址

 你向另外一臺電腦傳送一條資訊,怎麼再茫茫人海中瞬間找到對方,以下是圖示:

TCP協議:如果說IP協議是找到對方的詳細地址。那麼TCP協議就是把安全的把東西帶給對方。各有分工,互不衝突。

      按層次分,TCP屬於傳輸層,提供可靠的位元組流服務。什麼叫位元組流服務呢?這個名字聽起來讓人不知所以然,下面聽下我通俗的解釋。所謂的位元組流,其實就類似於資訊切割。比如你是一個賣自行車的,你要去送貨。安裝好的自行車,太過龐大,又不穩定,容易損傷。不如直接把自行車拆開來,每個零件上都貼上收貨人的姓名。最後送到後按照把屬於同一個人的自行車再組裝起來,這個拆解、運輸、拼裝的過程其實就是TCP位元組流的過程。

     我們看下嚴謹的學術表達是怎樣的:

     所謂的位元組流服務(Byte Stream Service)是指,為了方便傳輸,將大塊資料分割成以報文段(segment)為單位的資料包進行管理。而可靠的傳輸服務是指,能夠把資料準確可靠地傳給對方。一言以蔽之,TCP 協議為了更容易傳送大資料才把資料分割,而且 TCP 協議能夠確認資料最終是否送達到對方。

     為了確保資訊能夠確保準確無誤的到達,TCP採用了著名的三次握手策略(three-way handshaking).下面我寫一段對話來模擬下這三次握手。

     

DNS:DNS(Domain names System) 和HTTP協議一樣是處於應用層的服務,提供域名到IP地址之間的解析服務。

網際網路之間是通過IP地址通訊的,但是IP地址並不符合認得記憶習慣,人喜歡記憶有意義的字詞。所以DNS服務就為了解決這個問題而生了。其實很好理解,形如我們電腦中host檔案。

192.168.1.11       roverliang.com  

當我們訪問roverliang.com 的時候,電腦便不會去外網伺服器上查詢了,直接去訪問192.168.1.111。這是一個簡單的域名劫持,足以說明DNS的涵義了。

下面是我們訪問一個網頁,各種協議在裡面起的作用。

 轉至:http://www.cnblogs.com/roverliang/p/5176456.html