- HTTP舌劳、Socket 和 TCP
五層網(wǎng)絡(luò)模型(其實(shí)有七層牲证,有兩層用的很少)研叫。從上往下進(jìn)行拆包锤窑,從下往上進(jìn)行組包。
(TCP 和 UDP 的區(qū)別?)
操作系統(tǒng)為我們提供了 Socket 接口嚷炉,它不屬于以上的任何一種協(xié)議渊啰。通過 Socket 編程,可以使得我們可以和傳輸層進(jìn)行交互申屹。
(WebSocket)
Socket 不屬于計(jì)算機(jī)網(wǎng)絡(luò)中的協(xié)議绘证,HTTP、TCP 等才屬于計(jì)算機(jī)網(wǎng)絡(luò)中的協(xié)議哗讥。HTTP 協(xié)議屬于處于TCP協(xié)議之上的應(yīng)用層協(xié)議嚷那。Socket 屬于連接我們的應(yīng)用 和 TCP 層,是的我們自己的應(yīng)用可以和 TCP 層進(jìn)行交互忌栅,這樣的話就可以實(shí)現(xiàn)我們自己的協(xié)議车酣,就沒有必要在 HTTP 協(xié)議上進(jìn)行開發(fā)。比如 QQ 就定義了自己的應(yīng)用層協(xié)議索绪,實(shí)現(xiàn)類與HTTP處于同一層級(jí)的協(xié)議湖员。
- Socket 中 Client 和 Server 實(shí)現(xiàn)通信
(uwsgi 組件)
數(shù)據(jù)傳輸:服務(wù)器A 到 服務(wù)器B,之后由于每一個(gè)應(yīng)用程序占用一個(gè)端口(端口機(jī)制)瑞驱,這樣的話操作系統(tǒng)就可以將端口和應(yīng)用程序綁定起來娘摔。
凡是使用 Socket 編程,都需要指定一個(gè)端口唤反。
HTTP 請(qǐng)求在很多時(shí)候不指明 keep-alive的話就默認(rèn)會(huì)關(guān)閉凳寺。
QQ 采用 TCP 協(xié)議,早期使用 UDP 協(xié)議彤侍。
Socket 實(shí)現(xiàn)聊天和多用戶聊天
Socket 模擬 http 請(qǐng)求
小結(jié)