1. 程式人生 > >http和socket

http和socket

客戶端 適用場景 udp info 支付 lis png 封裝數據 就是

要弄明白 http socket 首先要熟悉網絡七層

技術分享圖片

HTTP 協議:超文本傳輸協議,對應於應用層,用於如何封裝數據.

TCP/UDP 協議:傳輸控制協議,對應於傳輸層,主要解決數據在網絡中的傳輸。

IP 協議:對應於網絡層,同樣解決數據在網絡中的傳輸

Socket是對TCP/IP協議的封裝,Socket本身並不是協議,而是一個調用接口(API),通過Socket,我們才能使用TCP/IP協議

HTTP 協議

http 為短連接:客戶端發送請求都需要服務器端回送響應.請求結束後,主動釋放鏈接,因此為短連接。

HTTP連接使用的是"請求-響應"方式,不僅在請求時建立連接,而且客戶端向服務器端請求後,服務器才返回數據。

Socket 連接

要想明白 Socket,必須要理解 TCP 連接。

TCP 三次握手:

第一次握手:客戶端發送syn(syn=j)到服務器,並進入SYN_SEND狀態,等待服務器確認;
第二次握手:服務器收到syn包,必須確認客戶的SYNack=j+1),同時自己也發送一個SYN包(syn=k),即SYN+ACK包,此時服務器進入SYN_RECV狀態;
第三次握手:客戶端收到服務器的SYNACK包,向服務器發送確認包ACK(ack=k+1),此包發送完畢,客戶端和服務器進入ESTABLISHED狀態,完成三次握手。

握手過程中並不傳輸數據,在握手後服務器與客戶端才開始傳輸數據,理想狀態下,

TCP 連接一旦建立,在通訊雙方中的任何一方主動斷開連接之前 TCP 連接會一直保持下去。

創建 Socket 連接的時候,可以指定傳輸層協議,可以是 TCP 或者 UDP,當用 TCP 連接,該Socket就是個TCP連接,反之。

Socket適用場景:網絡遊戲,銀行交互,支付。

http適用場景:公司OA服務,互聯網服務。

http和socket