弄懂HTTP、Socket、TCP的概念
1. 五层网络模型
A客户端向B服务器发送数据时,经过该五层网络模型。
- 应用层:使用什么功能,就使用什么协议。如request包 --> HTTP协议;发送电子邮件 --> SMTP协议…
- 传输层:传输层提供端到端的接口
- 网络层:当数据包从一个IP发向另一个IP的时候,选择哪个设备进行跳转,此时就要用到IP协议、RIP协议等。
- 数据链路层:错误检测。
- 物理层:中继器工作在该层。
A由上至下进行拆包,到达B服务器后,再由下至上进行组包。越上层的协议越依赖下层的协议。
socket
socket不属于任何一个协议,它是OS提供的一个api,使用TCP、UDP协议去完成上层协议如HTTP协议不能实现的功能。
HTTP协议是单向的,A向B发送一个请求以后,B回复消息;B有新消息回复给A使用http协议是不行的,聊天功能等不能实现。而使用TCP协议,A和B建立连接以后,A和B可以随时互相发送消息,而且建立的连接需要主动断开,不会自动断开。