简单说,你浏览的网页(网址以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连接中没有数据的传输,那么为了维持链接需要发送心跳消息~~~~具体心跳消息格式是开发者自己定义的。