先說一些概念知識:
網絡上的請求就是通過Socket來建立連接然后互相通信,訪問ip地址(網絡上主機設備的唯一標識)
端口號:(定位程序)用于標示進程的邏輯地址,不同進程的標示
有效端口:0~65535,其中0~1024由系統使用或者保留端口,開發中建議使用1024以上的端口
傳輸協議(用什么樣的方式進行交互)通訊的規則,常見協議:TCP、UDP
http:超文本傳輸協議,它的底層就是通過socket建立連接通信管道,他屬于socket層上協議,屬于應用層的協議,格式類似于json,有content-type,body等。
XMPP協議:即時通訊協議,同http一樣屬于應用層協議,格式為xml,環信就是基于xmpp進行的二次開發。
在這里附上tcp和udp的概念
TCP(傳輸控制協議)
建立連接,形成傳輸數據的通道
在連接中進行大數據傳輸(數據不受限制)
通過三次握手完成連接,是可靠協議,安全送達
必須建立連接,效率會稍低
UDP(用戶數據報協議)
將數據及源和目的封裝成數據包中,不需要建立連接
每個數據報的大小限制在64K之內
因為無需連接,因此是不可靠協議
不需要建立連接,速度快
tcp和udp都屬于傳輸層協議,他和http、xmpp等的區別在于,tcp和udp是描述該協議的傳輸方式,比如是否要建立連接等,而http則表示在該協議下進行數據傳送時的數據格式。
那么什么是socket,所謂socket就是套接字,網絡上的兩個程序通過一個雙向的通信連接實現數據的交換,這個連接的一端稱為一個socket。
通信管道建立的時候也就是socket連接的時候。
下面這張就是TCP協議下的整個流程圖,
首先由客戶端發起請求,服務端會時刻處于監聽狀態,當客戶端將請求發送到服務端時,服務端將判斷該請求是否正常,若請求正常則會建立連接,開啟數據傳輸,具體可以參閱上圖。