【Java】【網路協議】Http,TCP/IP,Socket,XMMP
阿新 • • 發佈:2019-02-04
// 網路層次結構:應用層,傳輸層,網路層,資料鏈路層,物理層 // 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為實體來傳輸資料