1. 程式人生 > >TCP-Socket-HTTP的關係

TCP-Socket-HTTP的關係

1、TCP連線

手機能夠使用聯網功能是因為手機底層實現了TCP/IP協議,可以使手機終端通過無線網路建立TCP連線。TCP協議可以對上層網路提供介面,使上層網路資料的傳輸建立在“無差別”的網路之上。
建立起一個TCP連線需要經過“三次握手”
釋放一個TCP連線需要經過“四次握手”

2.HTTP連線

HTTP 協議即超文字傳送協議(Hypertext Transfer Protocol ),是Web聯網的基礎,也是手機聯網常用的協議之一,

HTTP協議是建立在TCP協議之上的一種應用。

由於HTTP在每次請求結束後都會主動釋放連線, 因此HTTP連線是一種“短連線”,要保持客戶端程式的線上狀態,需要不斷地向伺服器發起連線請求。

HTTP 是應用層協議,TCP 是傳輸層協議(位於應用層之下)。

這裡寫圖片描述

3.socket

TCP/IP協議族包括運輸層,網路層,鏈路層.現在你知道TCP/IP與UDP的關係了吧.
Socket在哪裡呢?
在上圖中,我們沒有看到Socket的影子,那麼它到底在哪裡呢?還是用圖來說話/一目瞭然。
這裡寫圖片描述
Socket是應用層與TCP/IP協議族通訊的中間軟體抽象層,
它是一組介面.在設計模式中,Socket其實就是一個門面模式,它把複雜的TCP/IP協議族隱藏在Socket介面後面,對使用者來說,一組簡單的介面就是全部,讓Socket去組織資料,以符合指定的協議.

4.總結

socket是一組連線http協議(應用層)和tpc/ip協議(傳輸層)的介面
有人這樣比喻
HTTP是轎車,提供了封裝或者顯示資料的具體形式;Socket是發動機,提供了網路通訊的能力。