- HTTP、Socket 和 TCP
五层网络模型(其实有七层,有两层用的很少)。从上往下进行拆包,从下往上进行组包。
![](https://img.haomeiwen.com/i244848/047a40d0f36f3308.png)
(TCP 和 UDP 的区别?)
操作系统为我们提供了 Socket 接口,它不属于以上的任何一种协议。通过 Socket 编程,可以使得我们可以和传输层进行交互。
(WebSocket)
Socket 不属于计算机网络中的协议,HTTP、TCP 等才属于计算机网络中的协议。HTTP 协议属于处于TCP协议之上的应用层协议。Socket 属于连接我们的应用 和 TCP 层,是的我们自己的应用可以和 TCP 层进行交互,这样的话就可以实现我们自己的协议,就没有必要在 HTTP 协议上进行开发。比如 QQ 就定义了自己的应用层协议,实现类与HTTP处于同一层级的协议。
- Socket 中 Client 和 Server 实现通信
(uwsgi 组件)
数据传输:服务器A 到 服务器B,之后由于每一个应用程序占用一个端口(端口机制),这样的话操作系统就可以将端口和应用程序绑定起来。
凡是使用 Socket 编程,都需要指定一个端口。
![](https://img.haomeiwen.com/i244848/e5a558b84b481c34.png)
HTTP 请求在很多时候不指明 keep-alive的话就默认会关闭。
QQ 采用 TCP 协议,早期使用 UDP 协议。
-
Socket 实现聊天和多用户聊天
-
Socket 模拟 http 请求
-
小结
网友评论