简单说, 你浏览的网页(网址以HTTP:// 开头) 都是HTTP协议传输到你的浏览器的, 而HTTP是基于socket之上的, socket是一套完成TCP, UDP协议的接口.
HTTP协议: 简单对象访问协议, 对应于应用层, HTTP协议是基于TCP连接的.
TCP协议: 对应于传输层
IP协议: 对应于网络层
TCP/IP是传输层协议, 主要解决数据如何在网络中传输: 而HTTP是应用层协议, 主要解决如何包装数据.
socket是对TCP/IP协议的封装, socket本身并不是协议 , 而是一个调用接口(API), 通过socket, 我们才能使用TCP/IP协议.
HTTP连接: HTTP连接就是所谓的短连接, 即客户端向服务器端发送一次请求, 服务器端响应后连接即会断掉.
socket连接: socket连接就是所谓的长连接, 理论上客户端和服务器端一旦建立起连接将不会主动断掉, 但是由于各种环境因素可能会使连接断开, 比如说: 服务器端或者客户端主机down了, 网络故障, 或者两者之间长时间没有数据传输, 网络防火墙可能会断开该连接以释放网络资源, 所以当一个socket连接中没有数据传输, 那么为了维持连接需要发送心跳消息, 具体心跳消息是开发者自己定义的.
时间: 2024-10-26 11:35:50