http和socket
阿新 • • 發佈:2018-10-07
客戶端 適用場景 udp info 支付 lis png 封裝數據 就是
TCP 連接一旦建立,在通訊雙方中的任何一方主動斷開連接之前 TCP 連接會一直保持下去。
要弄明白 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包,必須確認客戶的SYN(ack=j+1),同時自己也發送一個SYN包(syn=k),即SYN+ACK包,此時服務器進入SYN_RECV狀態;
第三次握手:客戶端收到服務器的SYN+ACK包,向服務器發送確認包ACK(ack=k+1),此包發送完畢,客戶端和服務器進入ESTABLISHED狀態,完成三次握手。
握手過程中並不傳輸數據,在握手後服務器與客戶端才開始傳輸數據,理想狀態下,
創建 Socket 連接的時候,可以指定傳輸層協議,可以是 TCP 或者 UDP,當用 TCP 連接,該Socket就是個TCP連接,反之。
Socket適用場景:網絡遊戲,銀行交互,支付。
http適用場景:公司OA服務,互聯網服務。
http和socket