回覆列表
-
1 # 修煉IT基本功
-
2 # 竹杖芒鞋輕勝馬啊
我們還是從計算機的網路層說起,主要是分為7個層分別是 物理層,資料鏈路層,網路層,傳輸層,會話層,表示層,應用層。
資料之間的互動主要在傳輸層這一塊。通常用到的底層協議有TCP和UDP這兩種協議。透過中間層SOCKET協議,進行包裝,再往上就是我們經常用到的HTTP協議。我們的網站就是透過HTTP協議進行客戶端和伺服器資料互動的。
HTTP協議是面向連線的協議基於TCP。按照三次握手四次揮手的規則進行資料互動。其中底層有用到網路套接字的概念。透過網路套接字,可以知道相互通訊的IP地址和埠,這樣就像你打電話一樣,知道對方的手機號才能打給指定的人。
上面這個就是我們網站的http協議請求,裡面有請求頭,請求體。按照標準的約定去給服務端傳送請求資料,然後服務端響應結果給客戶端。1. 建立套接字
2. 向伺服器傳送連線請求(connect)
3. 通訊(send/recv)
4. 關閉套接字
> 伺服器端步驟
1. 建立用於監聽的套接字(socket)
2. 將套接字繫結到本地地址和埠上(bind)
3. 將套接字設為監聽模式(listen)
4. 等待客戶請求(accept),此處要不斷的呼叫accept
5. 通訊(send/receive),完成後返回4
6. 關閉套接字(closesocket)
可以使用websocket協議,http協議,tcp協議,等等通訊協議
當時也有客戶端定時拉取模式,或者服務端主動推送模式