1. 程式人生 > >【Java】【網路協議】Http,TCP/IP,Socket,XMMP

【Java】【網路協議】Http,TCP/IP,Socket,XMMP

// 網路層次結構:應用層,傳輸層,網路層,資料鏈路層,物理層

// Http協議:應用層協議,定義資料如何包裝
// TCP/IP協議:傳輸層協議,定義資料如何傳輸
// UDP協議:也是傳輸層協議,定義資料如何傳輸
// Socket:一組對TCP/IP協議進行操作的介面

// TCP連線三次握手:客戶端,服務端通過反覆確認來建立安全連線的一種方法
// 1. 【客戶端】傳送【同步包】到【服務端】,【客戶端】進入【SYN_SEND】狀態
// 2. 【服務端】傳送【確認包+同步包】到【客戶端】,【服務端】進入【SYN_RECV】狀態
// 3. 【客戶端】傳送【確認包】到【服務端】,【客戶端】【服務端】同時進入【ESTABLISHED】狀態

// TCP協議和UDP協議區別:
// TCP協議是面向連線的,儘量保證連線安全,UDP協議則是一種無連線,不可靠的傳輸協議
// UDP協議不事先建立連線,直接向對方傳送資料,接收到資料也不傳送確認訊號
// UDP協議的優點在於開銷小,傳輸效率高,實時性更好
// 雖然UDP協議的安全性無法保證,但程式可以手動對UDP的資料收發進行驗證

// Socket和Http協議區別:
// Socket是傳輸層介面,Http是應用層協議
// Http往往用於短連線場景:比如請求一次資料就斷開
// Socket往往用於長連線場景:比如聊天,遊戲,Client&Server需要隨時保持互動

// XMPP協議:一個基於XML的即時通訊協議,以XML為實體來傳輸資料